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.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/471#note_52336
--
v12: vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
tests/shader-runner: Add tests for 64-bit casts.
vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/459