tests/hlsl: Add tests to check the void return type of atomic ops.

This commit is contained in:
Shaun Ren
2025-01-07 16:19:37 -05:00
committed by Henri Verbeet
parent 728cf1dcfe
commit b3c13b443f
Notes: Henri Verbeet 2025-01-20 16:18:51 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Elizabeth Figura (@zfigura)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1330

View File

@@ -254,3 +254,44 @@ if(sm<6) probe uav 2 (1) ri (0)
if(sm<6) probe uav 2 (2) ri (0)
probe uav 2 (3) ri (-1)
if(sm<6) probe uav 2 (4) ri (-1)
% Interlocked* functions return void.
[compute shader fail]
RWBuffer<uint> u : register(u1);
[numthreads(3, 1, 1)]
void main()
{
uint err = InterlockedAdd(u[0], 1);
}
[compute shader fail]
RWBuffer<uint> u : register(u1);
[numthreads(3, 1, 1)]
void main()
{
uint old;
uint err = InterlockedAdd(u[0], 1, old);
}
[compute shader fail]
RWBuffer<uint> u : register(u1);
[numthreads(3, 1, 1)]
void main()
{
uint err = InterlockedCompareStore(u[0], 0, 1);
}
[compute shader fail]
RWBuffer<uint> u : register(u1);
[numthreads(3, 1, 1)]
void main()
{
uint old;
uint err = InterlockedCompareExchange(u[0], 0, 1, old);
}