Currently we are not properly handling register(cX) reservations for SM1, this is one of the things required for the SNK shaders (CW Bug Bug 18092).
register(cX) reservations also change the offset in the $Globals buffer in SM4, so support for this is also included.
---
Patch 1/4 is required to specify:
```
[require]
shader model < 4.0
```
so that the tests that follow do not get run with the vulkan backend on SM4. I think nobody disagreed with that patch.
--
v5: vkd3d-shader/hlsl: Turn register(cX) reservations into buffer offset for SM4.
vkd3d-shader/hlsl: Make register(cX) reservations work for SM1.
tests: Test register(cX) reservations.
tests: Rename register-reservations.shader_test to register-reservations-resources.shader_test.
tests/shader-runner: Run compilation tests with SM1 when SM1 models are selected.
tests/shader-runner: Allow passing (sm<4) and (sm>=4) to "fail" and "todo" qualifiers.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/458
> Because it doesn't really matter,
On what grounds?
> and it makes our implementation simpler.
It makes our implementation simpler to type E_INVALIDARG rather than HRESULT_FROM_WIN32(ERROR_INVALID_NAME)?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4343#note_52414
On Wed Nov 15 20:52:54 2023 +0000, Zebediah Figura wrote:
> > assume that ERROR_INVALID_NAME is broken behavior, and make Wine
> return E_INVALIDARG in this situation.
> Why?
Because it doesn't really matter, and it makes our implementation simpler.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4343#note_52413
Currently we are not properly handling register(cX) reservations for SM1, this is one of the things required for the SNK shaders (CW Bug Bug 18092).
register(cX) reservations also change the offset in the $Globals buffer in SM4, so support for this is also included.
---
Patch 1/4 is required to specify:
```
[require]
shader model < 4.0
```
so that the tests that follow do not get run with the vulkan backend on SM4. I think nobody disagreed with that patch.
--
v4: vkd3d-shader/hlsl: Turn register(cX) reservations into buffer offset for SM4.
vkd3d-shader/hlsl: Make register(cX) reservations work for SM1.
tests: Test register(cX) reservations.
tests: Rename register-reservations.shader_test to register-reservations-resources.shader_test.
tests/vkd3d-shader: Allow passing (sm<4) and (sm>=4) to "fail" and "todo" qualifiers.
tests/shader-runner: Discern between the minimum_shader_model and the selected_shader_model.
tests/shader-runner: Add missing requirement checks for backends.
ci: Execute the shader runner on the correct test data on Windows.
ci: Deduplicate the CI configuration for Windows.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/458
--
v13: 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