This is the first part of !608, which I decided to separate to ease review.
It consists of improvements to SM1 testing, mainly:
- Correctly passing int and bool uniforms as IEEE 754 floats to SM1 profiles.
- The introduction of the "only" qualifier to avoid abusing `[require]` blocks in case tests retrieve different results for different shader models.
- Allowing some of the tests we already have for SM4/SM6 to run in SM1 after those improvements.
--
v2: tests: Remove [require] directives for tests that use int and bool uniforms.
tests/shader-runner: Introduce "if" qualifier.
tests: Don't ignore SM1 on a non-const-indexing.shader_test test.
tests/vkd3d-shader: Set uninitialized uniforms to zero.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/616
Mainly to implement `GetResourceAllocationInfo1()`, but we can introduce `Device7` without much risk of apps failing on unimplemented methods, and doing that separately would conflict with `GetResourceAllocationInfo1()`.
--
v2: vkd3d: Implement GetResourceAllocationInfo1().
tests/d3d12: Add tests for GetResourceAllocationInfo1().
vkd3d: Support multiple descriptions in GetResourceAllocationInfo().
tests/d3d12: Test multiple descriptions in test_resource_allocation_info().
vkd3d: Add ID3D12Device7 interface stubs.
vkd3d: Add ID3D12Device6 interface stub.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/617
Avoids value truncation in 32-bit builds and fixes clang warning:
```
../libs/vkd3d/libs/vkd3d/device.c:2157:14: warning: result of comparison of constant 4294967296 with expression of type 'size_t' (aka 'unsigned int') is always true [-Wtautological-constant-out-of-range-compare]
if (size <= VKD3D_VA_SLAB_SIZE && allocator->free_slab)
~~~~ ^ ~~~~~~~~~~~~~~~~~~
```
--
v2: vkd3d: Use uint64_t for the size in vkd3d_gpu_va_allocator_allocate.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/621
--
v6: vkd3d-shader/dxil: Implement DX intrinsic SplitDouble.
tests/shader-runner: Add an asuint() test to the 64-bit cast tests.
tests/shader-runner: Support testing for integer pixel data.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/589