Hello,
according to the documentation it should be possible to map SRVs of dynamic buffers with NO_OVERWRITE in D3D11.1. Does it mean, that it is possible to map contents of the texture with NO_OVERWRITE? But when I try to map 3d texture resource, it returns error E_INVALIDARG, and this debug information:
D3D11 ERROR: ID3D11DeviceContext::Map: Map cannot be called with MAP_WRITE_NO_OVERWRITE access, because it can only be used by D3D11_USAGE_DYNAMIC Resources which were created with GPU Input BindFlags that were restricted to only D3D11_BIND_VERTEX_BUFFER and D3D11_BIND_INDEX_BUFFER. Buffer resources created with bind flag D3D11_BIND_CONSTANT_BUFFER or D3D11_BIND_SHADER_RESOURCE also support MAP_WRITE_NO_OVERWRITE access when supported by the driver (when CheckFeatureSupport with D3D11_FEATURE_D3D11_OPTIONS returns D3D11_FEATURE_DATA_D3D11_OPTIONS.MapNoOverwriteOnDynamicConstantBuffer = TRUE or D3D11_FEATURE_DATA_D3D11_OPTIONS.MapNoOverwriteOnDynamicBufferSRV = TRUE, as appropriate). [ RESOURCE_MANIPULATION ERROR #2097210: RESOURCE_MAP_INVALIDMAPTYPE]
I was checking these flags (D3D11_FEATURE_DATA_D3D11_OPTIONS.MapNoOverwriteOnDynamicConstantBuffer and D3D11_FEATURE_DATA_D3D11_OPTIONS.MapNoOverwriteOnDynamicBufferSRV) and both returns true. Also, map doesnt accept ID3D11ShaderResourceView parameter.
Does anyone know how to map it?
Thanks, Michal.