Skip to content

Commit 7240cf8

Browse files
committed
Add VK_Workgroup_Zoo unit tests for Quad Shuffle operations
subgroupQuadBroadcast() subgroupQuadSwapDiagonal() subgroupQuadSwapHorizontal() subgroupQuadSwapVertical()
1 parent e9f5c93 commit 7240cf8

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

util/test/demos/vk/vk_subgroup_zoo.cpp

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,34 @@ layout(location = 0, index = 0) out vec4 Color;
104104
105105
void main()
106106
{
107+
uint subgroupId = gl_SubgroupInvocationID;
108+
107109
vec4 fragdata = vec4(0);
108110
109111
if(IsTest(1) || IsTest(2))
110-
fragdata = vec4(gl_SubgroupInvocationID, 0, 0, 1);
112+
{
113+
fragdata = vec4(subgroupId, 0, 0, 1);
114+
}
111115
else if(IsTest(4))
112-
fragdata = vec4(subgroupAdd(gl_SubgroupInvocationID), 0, 0, 0);
116+
{
117+
fragdata = vec4(subgroupAdd(subgroupId), 0, 0, 0);
118+
}
119+
else if(IsTest(5))
120+
{
121+
// subgroupQuadBroadcast : unit tests
122+
fragdata.x = float(subgroupQuadBroadcast(subgroupId, 0));
123+
fragdata.y = float(subgroupQuadBroadcast(subgroupId, 1));
124+
fragdata.z = float(subgroupQuadBroadcast(subgroupId, 2));
125+
fragdata.w = float(subgroupQuadBroadcast(subgroupId, 3));
126+
}
127+
else if(IsTest(6))
128+
{
129+
// subgroupQuadSwapDiagonal, subgroupQuadSwapHorizontal, subgroupQuadSwapVertical : unit tests
130+
fragdata.x = float(subgroupQuadSwapDiagonal(subgroupId));
131+
fragdata.y = float(subgroupQuadSwapHorizontal(subgroupId));
132+
fragdata.z = float(subgroupQuadSwapVertical(subgroupId));
133+
fragdata.w = subgroupQuadBroadcast(fragdata.x, 2);
134+
}
113135
114136
Color = vertdata + fragdata;
115137
}

0 commit comments

Comments
 (0)