我的Windows 8.1系统安装了Directx11,但我的视频卡是Directx 9.我试图使用SharpDX库并且输入的参数不正确'错误新增了一个VertexShader对象。
以下是我尝试的内容
运行Directx 9并使用这些库。 Microsoft现在不允许从他们的网站下载Directx 9库。
使用软件模拟运行。这是早期开发,所以我在这个阶段可以使用该软件模拟。此尝试因另一个错误而失败。
这是电话。 d3dDevice和vertexShaderByteCode是非空的
new D3D11.VertexShader(d3dDevice, vertexShaderByteCode);
问题0.有没有办法确定它不喜欢的参数?我使用理论上有效的教程代码。
问题1.错误是否来自视频卡?
问题2.这是一个已知问题吗?
感谢,
约翰
答案 0 :(得分:1)
如果启用Direct3D调试层,您应该获得有关调用失败原因的更多信息。
您的视频卡名称是什么?您的视频卡是Direct3D hardware feature level的内容? 9.1,9.2,9.3?您可以通过从Visual Studio命令提示符运行dxcapsviewer
来进行检查。 DirectX 11可以支持9.1 - 12.1的功能级别,因此很可能至少某些功能可以在您的硬件上运行。
答案 1 :(得分:1)
我明白了。我正在使用DirectX 11的示例代码,并且像素和顶点着色器的版本与我拥有的DirectX 9卡不兼容。在编译着色器的调用中,像素着色器的版本是ps_5_0,我需要ps_4_0_level_9_1,顶点着色器的版本是vs_5_0,我需要vs__4_0_level_9_1。 '无效参数'是编译后的着色器代码。