Skip to content

Commit 001539a

Browse files
committed
Add VK_Workgroup_Zoo unit tests for subgroup Vote operations
subgroupAny() subgroupAll() subgroupBallot()
1 parent b702541 commit 001539a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

util/test/demos/vk/vk_subgroup_zoo.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,11 +290,29 @@ void main()
290290
}
291291
else if(IsTest(9))
292292
{
293-
// Query function : unit tests
293+
// Query functions : unit tests
294294
data.x = float(gl_SubgroupSize);
295295
data.y = float(gl_SubgroupInvocationID);
296296
data.z = float(subgroupElect());
297297
}
298+
else if(IsTest(10))
299+
{
300+
// Vote functions : unit tests
301+
data.x = float(subgroupAny(id*2 > id+10));
302+
data.y = float(subgroupAll(id < gl_SubgroupSize));
303+
if (id > 10)
304+
{
305+
data.z = float(subgroupAll(id > 10));
306+
uvec4 ballot = subgroupBallot(id > 20);
307+
data.w = bitCount(ballot.x) + bitCount(ballot.y) + bitCount(ballot.z) + bitCount(ballot.w);
308+
}
309+
else
310+
{
311+
data.z = float(subgroupAll(id > 3));
312+
uvec4 ballot = subgroupBallot(id > 4);
313+
data.w = bitCount(ballot.x) + bitCount(ballot.y) + bitCount(ballot.z) + bitCount(ballot.w);
314+
}
315+
}
298316
SetOuput(data);
299317
}
300318

0 commit comments

Comments
 (0)