无法创建计算着色器 - Shader Model 5.1,DirectX 11.3 [英] Failed to create compute shader - Shader Model 5.1, DirectX 11.3
问题描述
我打电话时是
Hi,
when I call
ID3D11Device3::CreateComputeShader
它因调试层声明错误而失败:
it fails with an error from debug layer stating:
" D3D11错误:ID3D11Device :: CreateComputeShader:着色器必须是cs_4_0,cs_4_1或cs_5_0。提供的着色器版本:UNRECOGNIZED [STATE_CREATION ERROR#2097323:CREATECOMPUTESHADER_INVALIDSHADERTYPE]"
$
"D3D11 ERROR: ID3D11Device::CreateComputeShader: Shader must be cs_4_0, cs_4_1 or cs_5_0. Shader version provided: UNRECOGNIZED [ STATE_CREATION ERROR #2097323: CREATECOMPUTESHADER_INVALIDSHADERTYPE]"
当我传递为Shader Model 5.1编译的着色器字节码时会发生这种情况。
适用于Shader Model 5.0 。
This happens when I pass shader bytecode compiled for Shader Model 5.1. It works just fine for Shader Model 5.0.
我的设置:
Windows 10,
Windows SDK版本10.0.14393.0,
Microsoft Visual Studio 2015 Update 3,
NVIDIA GeForce GTX 1080,
GeForce Game Ready Driver 375.95,发布日期:2016年11月18日。
Windows 10,
Windows SDK version 10.0.14393.0,
Microsoft Visual Studio 2015 Update 3,
NVIDIA GeForce GTX 1080,
GeForce Game Ready Driver 375.95, release date: 11/18/2016.
我的项目配置为使用最新的SDK。我在Visual Studio中使用fxc.exe编译着色器。但是当我在运行时编译着色器时也失败了。
My project is configured to use the newest SDK. I compiled the shader using fxc.exe from within Visual Studio. But it failed also when I compiled shaders in runtime.
我使用D3D_FEATURE_LEVEL_11_1作为功能级别和D3D11_SDK_VERSION创建我的设备,等于7.我还成功使用了其他DirectX 11.3功能(从无人机加载向量)。
I create my device using D3D_FEATURE_LEVEL_11_1 as feature level and D3D11_SDK_VERSION, which equals to 7. I also succeeded at using other DirectX 11.3 feature (loading vectors from UAVs).
我对导致此错误的原因以及为什么DirectX API无法将cs_5_1识别为正确的着色器模型一无所知。我试图重新安装Windows SDK,但它没有帮助。我也尝试过施展我的ComPtr< ID3D11Device>指向 ComPtr<
ID3D11Device3>使用ComPtr :: As方法,但它也没有帮助。
I am clueless as to what causes this error and why DirectX API doesn't recognize cs_5_1 as a correct shader model. I tried to reinstall the Windows SDK, but it didn't help. I also tried to cast my ComPtr< ID3D11Device > pointer to ComPtr< ID3D11Device3 > using ComPtr::As method, but it didn't help either.
推荐答案
不幸的是Shader模型5.1仅适用于DirectX 12.尽管在DX11.3的文档中提到过。
Unfortunately Shader Model 5.1 is only available in DirectX 12. Despite it being mentioned in documentation for DX11.3.
这篇关于无法创建计算着色器 - Shader Model 5.1,DirectX 11.3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!