You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description
I am trying to copy data from a ConstantBuffer fetched from the ResourceDescriptorHeap into another variable, however, the data always becomes zeroed.
I can see the ConstantBuffer in RenderDoc, but when debugging in RenderDoc, the copied values are zero.
SPIR-V can be hard to read. It loads descriptor array ResourceDescriptorHeap_0 at index 1, and then loads the member at index 1, which is data1. That is then store to the first element in storage buffer at ResourceDescritporHeap[0].
I'm not sure how the code should be generated differently. This is the same code that is generated when the two resources are declared separately. See https://godbolt.org/z/TPj7qKn5h. This is also the came code as if the copy is removed: https://godbolt.org/z/rK1b7d6bb.
Note that this features requires VK_EXT_mutable_descriptor_type. Make sure that is enabled an correctly handled by the driver.
If the problem is that RenderDoc shows the value of tempData to be all zeros, even if the output from the shader is correct, that is because you did not generate the debug info. The compiler optimized away tempData so there is nothing for RenderDoc to see. If you want see the value even if it is optimized aways, you can try -fspv-debug=vulkan-with-source, which seem to be failing now (https://godbolt.org/z/fh9Gden6q).
We will be waiting to hear what the specific problem is.
And var in the ConstantBuffer is set to for example 5, the output of the StructuredBuffer is 0.
But if I declare the ConstantBuffer as its own binding:
ConstantBuffer<CBData> cb : register(b0, space1);
The output of the StructuredBuffer is correct.
The extension is setup properly, if the SPIR-V looks correct to you, the issue is probably elsewhere, maybe something in the driver.
Thanks for looking it over!
Description
I am trying to copy data from a ConstantBuffer fetched from the ResourceDescriptorHeap into another variable, however, the data always becomes zeroed.
I can see the ConstantBuffer in RenderDoc, but when debugging in RenderDoc, the copied values are zero.
Steps to Reproduce
Simple reproduction shader.
https://godbolt.org/z/axzMhz5MT
Actual Behavior
When copying from the ConstantBuffer into the temp variable the data becomes zero.
Environment
The text was updated successfully, but these errors were encountered: