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
--
v3: dmsynth: Use FLUID_MOD_KEY for CONN_SRC_KEYNUMBER.
dmsynth: Fall back to the Standard drum set when there is no matching instrument or region.
dmsynth: Factor out instrument and region search.
dmsynth: Get rid of instrument reference counting.
dmsynth: Move instrument search to synth_preset_noteon().
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375
Recent change to make unixlibs use hidden visibility made DECLSPEC_EXPORT being used in more cases. This means that it's used for PE modules as well, which is meant to be ignored since we use .spec files and winebuild-generated .edata anyway. This has some side effects:
- LLD correctly ignores dllexport when it detects .edata presence, but it also issues a warning:
`lld-link: warning: literal .edata sections override exports`
- AFAIR (I didn't verify), GNU LD would still generate its own .edata entries, but the one provided by winebuild will be actually used by PE header
- non-mingw builds will use default visibility for those symbols in PE modules
--
v2: include: Don't use dllexport attribute for Wine PE modules.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4401