mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests: Add tests for DeviceMemoryBarrierWithGroupSync().
This commit is contained in:
committed by
Henri Verbeet
parent
b89f0bc730
commit
e6db0ab614
Notes:
Henri Verbeet
2025-05-05 15:28:08 +02:00
Approved-by: Conor McCarthy (@cmccarthy) Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1470
@@ -13,3 +13,89 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
|||||||
AllMemoryBarrier();
|
AllMemoryBarrier();
|
||||||
AllMemoryBarrierWithGroupSync();
|
AllMemoryBarrierWithGroupSync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[uav 2]
|
||||||
|
format r32g32b32a32-float
|
||||||
|
size (buffer, 3)
|
||||||
|
|
||||||
|
0.1 0.2 0.3 0.4
|
||||||
|
0.1 0.2 0.3 0.4
|
||||||
|
0.1 0.2 0.3 0.4
|
||||||
|
|
||||||
|
[compute shader]
|
||||||
|
RWBuffer<float4> u : register(u2);
|
||||||
|
|
||||||
|
[numthreads(1024, 1, 1)]
|
||||||
|
void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||||
|
{
|
||||||
|
u[0] = 100;
|
||||||
|
|
||||||
|
DeviceMemoryBarrierWithGroupSync();
|
||||||
|
|
||||||
|
if (local_idx == 1)
|
||||||
|
{
|
||||||
|
// With this many threads, it is unlikely that this will be the last
|
||||||
|
// write to u[0] if the barrier doesn't work.
|
||||||
|
u[0] = 42;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[test]
|
||||||
|
todo(glsl | msl) dispatch 1 1 1
|
||||||
|
probe uav 2 (0) rgba(42.0, 42.0, 42.0, 42.0)
|
||||||
|
|
||||||
|
[require]
|
||||||
|
shader model >= 5.0
|
||||||
|
format r32-uint uav-load
|
||||||
|
|
||||||
|
[uav 3]
|
||||||
|
format r32-uint
|
||||||
|
size (buffer, 1024)
|
||||||
|
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
[compute shader]
|
||||||
|
RWBuffer<uint> u : register(u3);
|
||||||
|
|
||||||
|
[numthreads(1024, 1, 1)]
|
||||||
|
void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||||
|
{
|
||||||
|
InterlockedAdd(u[0], 1);
|
||||||
|
DeviceMemoryBarrierWithGroupSync();
|
||||||
|
u[local_idx] = u[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
[test]
|
||||||
|
todo(glsl) dispatch 1 1 1
|
||||||
|
probe uav 3 (0, 0, 1024, 1) rui(1024)
|
||||||
|
Reference in New Issue
Block a user