vkd3d-shader/spirv: Clamp push constant CBV sizes to those of the push constant ranges backing them.

Otherwise invalid SPIR-V may be generated, because the CBV field in
"push_cb_struct" may end up overlapping with a subsequent one.
This commit is contained in:
Giovanni Mascellani
2025-11-12 13:43:59 +01:00
committed by Henri Verbeet
parent 2903831f79
commit 7f377879fc
Notes: Henri Verbeet 2025-11-12 15:31:45 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1826
3 changed files with 11 additions and 5 deletions

View File

@@ -110,6 +110,7 @@ enum vkd3d_shader_error
VKD3D_SHADER_WARNING_SPV_INVALID_SWIZZLE = 2300,
VKD3D_SHADER_WARNING_SPV_INVALID_UAV_FLAGS = 2301,
VKD3D_SHADER_WARNING_SPV_IGNORING_FLAG = 2302,
VKD3D_SHADER_WARNING_SPV_INVALID_SIZE = 2303,
VKD3D_SHADER_ERROR_RS_OUT_OF_MEMORY = 3000,
VKD3D_SHADER_ERROR_RS_INVALID_VERSION = 3001,