On Wed Nov 15 06:54:38 2023 +0000, Henri Verbeet wrote:
This needs spirv changes to make any tests pass, but this series is
already long enough. Not sure what to do about initialisers; we can't use `DCL_IMMEDIATE_CONSTANT_BUFFER` because it emits a variable, Is the issue purely that the shader may write to the variable, or are there other reasons that can't work? If what we want is essentially a writeable icb, we could perhaps consider adding a "data[]" field to the vkd3d_shader_indexable_temp structure, analogous to struct vkd3d_shader_immediate_constant_buffer.
What it really needed was a new value type to hold ICBs. Storing an ICB in the indexable temp declaration works well now. Constant arrays should be declared with `DCL_IMMEDIATE_CONSTANT_BUFFER`, but that must wait for the next MR. It's not broken, just ignores the constant attribute.