无法创建计算着色器 - Shader Model 5.1,DirectX 11.3 [英] Failed to create compute shader - Shader Model 5.1, DirectX 11.3

查看:356
本文介绍了无法创建计算着色器 - 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆