UnorderedAccessView的纹理

时间:2015-05-17 15:37:03

标签: c# directx sharpdx

我需要创建一个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。

1 个答案:

答案 0 :(得分:0)

该设备是在功能级别9_3创建的,它不支持无人机或计算着色器。