Add VK_Workgroup_Zoo unit tests for subgroup Vote operations

subgroupAny()
subgroupAll()
subgroupBallot()
This commit is contained in:
Jake Turner
2025-04-06 15:16:18 +01:00
parent b70254174f
commit 001539a3cd
+19 -1
View File
@@ -290,11 +290,29 @@ void main()
}
else if(IsTest(9))
{
// Query function : unit tests
// Query functions : unit tests
data.x = float(gl_SubgroupSize);
data.y = float(gl_SubgroupInvocationID);
data.z = float(subgroupElect());
}
else if(IsTest(10))
{
// Vote functions : unit tests
data.x = float(subgroupAny(id*2 > id+10));
data.y = float(subgroupAll(id < gl_SubgroupSize));
if (id > 10)
{
data.z = float(subgroupAll(id > 10));
uvec4 ballot = subgroupBallot(id > 20);
data.w = bitCount(ballot.x) + bitCount(ballot.y) + bitCount(ballot.z) + bitCount(ballot.w);
}
else
{
data.z = float(subgroupAll(id > 3));
uvec4 ballot = subgroupBallot(id > 4);
data.w = bitCount(ballot.x) + bitCount(ballot.y) + bitCount(ballot.z) + bitCount(ballot.w);
}
}
SetOuput(data);
}