|
|
@@ -4582,12 +4582,28 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
desc.CPUAccessFlags = 0;
|
|
|
desc.MiscFlags = 0;
|
|
|
|
|
|
+ if (renderTarget)
|
|
|
+ {
|
|
|
+ desc.BindFlags |= D3D11_BIND_RENDER_TARGET;
|
|
|
+ desc.Usage = D3D11_USAGE_DEFAULT;
|
|
|
+ desc.MiscFlags |= 0
|
|
|
+ | (1 < numMips ? D3D11_RESOURCE_MISC_GENERATE_MIPS : 0)
|
|
|
+ ;
|
|
|
+ }
|
|
|
+
|
|
|
if (computeWrite)
|
|
|
{
|
|
|
desc.BindFlags |= D3D11_BIND_UNORDERED_ACCESS;
|
|
|
desc.Usage = D3D11_USAGE_DEFAULT;
|
|
|
}
|
|
|
|
|
|
+ if (readBack)
|
|
|
+ {
|
|
|
+ desc.BindFlags = 0;
|
|
|
+ desc.Usage = D3D11_USAGE_STAGING;
|
|
|
+ desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
|
|
|
+ }
|
|
|
+
|
|
|
srvd.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D;
|
|
|
srvd.Texture3D.MipLevels = numMips;
|
|
|
|