我需要创建一个UnorderedAccessView
作为计算着色器的输出:
var target = new Texture2D(device, new Texture2DDescription() {
Width = bitmap.PixelWidth,
Height = bitmap.PixelHeight,
ArraySize = 1,
MipLevels = 1,
Format = Format.R8G8B8A8_UNorm,
SampleDescription = new SampleDescription() { Count = 1, Quality = 0 },
BindFlags = BindFlags.UnorderedAccess | BindFlags.ShaderResource,
Usage = ResourceUsage.Dynamic
});
var targetView = new UnorderedAccessView(device, target);
第一行会导致参数不正确异常。调试设备和层已打开,没有更多有用的调试或错误消息。在没有BindFlags.UnorderedAccess
的情况下创建纹理有效,但这不是我需要的。
我尝试了所有可能的标志组合,包括但不限于:
Format = Format.B8G8R8A8_UNorm,
BindFlags = BindFlags.UnorderedAccess,
Usage = ResourceUsage.Default
如果要求BindFlags.UnorderedAccess
,则无法运行。
DX11.2,Shader 5。
答案 0 :(得分:0)
该设备是在功能级别9_3创建的,它不支持无人机或计算着色器。