I have noticed an inconsistency in the stride values of m_GBuffer used in the following files:
|
m_GBuffer = graphics::resources::create_graphics_buffer(m_Device, numPixels * sizeof(uint16_t) * numChannels, sizeof(uint16_t), GraphicsBufferType::Default); |
The elementSize (stride) in create_graphics_buffer is written as sizeof(uint16_t) =
2 bytes.
|
RWStructuredBuffer<uint4> _OutputBufferRW: register(OUTPUT_BUFFER_BINDING); |
But the format used for m_GBuffer as outputBuffer in Inference shader is uint4, and its stride is
16 bytes.
https://microsoft.github.io/DirectX-Specs/d3d/ResourceBinding.html#unordered-access-view Spec requires StructureByteStride for UAV.
The stride values in those places are different, which might lead to unexpected behavior or quality issues.
Could you please verify if this is intentional or if it needs to be corrected?
How about using RWByteAddressBuffer instead, like Cooperative Vector does?
Thank you for your attention to this matter.
Reactions are currently unavailable
I have noticed an inconsistency in the stride values of m_GBuffer used in the following files:
TextureSetNeuralCompressionSample/sdk/src/render_pipeline/dino_renderer.cpp
Line 170 in 2ce5bfb
TextureSetNeuralCompressionSample/shaders/GBuffer/Textures/Inference.compute
Line 44 in 2ce5bfb
https://microsoft.github.io/DirectX-Specs/d3d/ResourceBinding.html#unordered-access-view Spec requires StructureByteStride for UAV.
The stride values in those places are different, which might lead to unexpected behavior or quality issues.
Could you please verify if this is intentional or if it needs to be corrected?
How about using RWByteAddressBuffer instead, like Cooperative Vector does?
Thank you for your attention to this matter.