Giovanni Mascellani
5b2d62e59a
vkd3d: Explicitly call the appropriate waiting function in the fence worker.
...
Avoid using an indirect call that makes the code less clear for no
real advantage.
2025-01-21 14:09:29 +01:00
Shaun Ren
f3f2880261
vkd3d-shader/d3d-asm: Print vocp registers with subscript.
2025-01-21 14:05:21 +01:00
Shaun Ren
f0070cd595
tests: Test invalid out const parameters.
2025-01-21 14:03:44 +01:00
Shaun Ren
a9d7c65eb8
vkd3d-shader/hlsl: Forbid declaring parameters as both out and const.
...
Note that inout const parameters are allowed.
2025-01-21 14:03:44 +01:00
Giovanni Mascellani
22d0841412
vkd3d: Support signalling a fence once all outstanding work is submitted to Vulkan.
...
When the client acquires the Vulkan queue it has to ensure that
it is not submitting work before other work it depends on already
submitted through the Direct3D 12 API but currently in the internal
vkd3d queue. Currently we suggest to enqueue signalling a fence and
than wait for it before acquiring the Vulkan queue, which is
correct but excessive: it will wait not just for the work currently
in the queue to be submitted, but for it to be executed too,
introducing useless dependencies.
By adding a way to enqueue signalling a fence on the CPU side we
allow the client to wait for the currently outstanding work to
be submitted to Vulkan, but nothing more.
2025-01-21 14:02:22 +01:00
Giovanni Mascellani
bdb8291f6c
vkd3d: Release queued fences when stopping the fence worker.
2025-01-21 13:45:33 +01:00
Giovanni Mascellani
ed7a846e2e
vkd3d: Only call d3d12_fence_garbage_collect_vk_semaphores_locked() when using binary semaphores.
...
The function is specific to binary semaphores, and will unconditionally
access the "u.binary" field of struct vkd3d_signaled_semaphore.
2025-01-21 13:45:27 +01:00
Shaun Ren
4fbfb44681
vkd3d-shader/spirv: Emit the tessellator domain for domain shaders.
...
Commit 1ed8d907b3
inadvertently dropped
emitting the tessellator domain for domain shaders. Although Vulkan
environments allow us to write the tessellator domain from the hull
shader, the domain shader, or both, that's not generally true for OpenGL
environments.
2025-01-20 15:50:04 +01:00
Shaun Ren
802d7317cb
vkd3d-shader/hlsl: Implement the InterlockedXor() intrinsic.
2025-01-20 15:42:45 +01:00
Shaun Ren
cbd504e888
vkd3d-shader/hlsl: Implement the InterlockedOr() intrinsic.
2025-01-20 15:42:45 +01:00
Shaun Ren
5b9634a7b7
vkd3d-shader/hlsl: Implement the InterlockedMin() intrinsic.
2025-01-20 15:42:43 +01:00
Shaun Ren
63fbe161f2
vkd3d-shader/hlsl: Implement the InterlockedMax() intrinsic.
2025-01-20 15:42:07 +01:00
Shaun Ren
b447fdce51
vkd3d-shader/hlsl: Implement the InterlockedExchange() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
3fb47373a1
vkd3d-shader/hlsl: Implement the InterlockedCompareStore() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
22ab08f4d8
vkd3d-shader/hlsl: Implement the InterlockedCompareExchange() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
3b19a4aaf3
vkd3d-shader/hlsl: Implement the InterlockedAnd() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
660a71ef22
vkd3d-shader/hlsl: Implement the InterlockedAdd() intrinsic.
2025-01-20 15:40:34 +01:00
Shaun Ren
5f943e9110
tests/hlsl: Add tests for valid destination types of atomic operations.
2025-01-20 15:30:54 +01:00
Shaun Ren
b3c13b443f
tests/hlsl: Add tests to check the void return type of atomic ops.
2025-01-20 15:26:10 +01:00
Shaun Ren
728cf1dcfe
tests/hlsl: Add tests to check the types of the value arguments of atomic ops.
2025-01-20 15:26:10 +01:00
Shaun Ren
c8b87f9bd9
tests/hlsl: Add a test for UAV InterlockedCompareExchange().
2025-01-20 15:26:10 +01:00
Shaun Ren
24653b88f3
tests/shader_runner_gl: Bind buffer UAVs for compute shaders.
2025-01-20 15:25:56 +01:00
Shaun Ren
9fab6e4383
tests/shader_runner_gl: Add "opengl" tag.
2025-01-20 15:23:09 +01:00
Shaun Ren
31c3d46925
tests/shader_runner_vulkan: Check if create_shader_stage() fails in create_compute_pipeline().
2025-01-20 14:59:12 +01:00
Conor McCarthy
10edcec030
vkd3d: Do not require the ALLOW_DEPTH_STENCIL flag for depth/stencil formats in GetCopyableFootprints().
2025-01-20 14:37:13 +01:00