Yeah, I can see the SPIR-V validation error with SPIRV-Tools and `force_validation`: ``` vkd3d:3746511:trace:spirv_compiler_generate_spirv Structure id 45 decorated as Block for variable in PushConstant storage class must follow standard storage buffer layout rules: member 1 at offset 64 overlaps previous member ending at offset 79 vkd3d:3746511:trace:spirv_compiler_generate_spirv %push_cb_struct = OpTypeStruct %_arr_v4float_uint_5 %_arr_uint_uint_1 ``` This warning seems related too: ``` vkd3d:3746511:warn:spirv_compiler_emit_cbv_declaration Constant buffer size 76 exceeds push constant size 64. ```
I never read into detail our code to allocate constant buffers in SPIR-V, but problems related to the push constants are popping every now and then and make me suspect that that part needs some revising. Notice also the Mesa reduced `maxPushConstantsSize` to 128 for Intel GPUs some time ago, which is often less than we assume is available.