Add more subgroup testing

Touch test all subgroup builtins in vert, tesc, tese, geom, frag, compute shaders
before and after enabling extensions to make sure the correct errors are generated
and then not generated (after enablement).
This commit is contained in:
Daniel Koch 2019-05-30 00:24:33 -04:00
parent 6d88284607
commit 51760c88ca
12 changed files with 5410 additions and 274 deletions

View file

@ -1,24 +1,649 @@
glsl.450.subgroup.vert
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 86 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
0:? Sequence
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of uint)
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:10 Constant:
0:10 0 (const uint)
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
0:10 Construct uvec4 ( temp 4-component vector of uint)
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 0 (const uint)
Requested GL_KHR_shader_subgroup_clustered
Requested GL_KHR_shader_subgroup_quad
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:3 Function Parameters:
0:3 'f4' ( in 4-component vector of float)
0:? Sequence
0:6 'gl_SubgroupSize' ( in uint unknown built-in variable)
0:7 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
0:8 subgroupBarrier ( global void)
0:9 subgroupMemoryBarrier ( global void)
0:10 subgroupMemoryBarrierBuffer ( global void)
0:11 subgroupMemoryBarrierImage ( global void)
0:12 subgroupElect ( global bool)
0:13 'gl_NumSubgroups' ( temp float)
0:14 'gl_SubgroupID' ( temp float)
0:15 Constant:
0:15 0.000000
0:17 subgroupAll ( global bool)
0:17 Constant:
0:17 true (const bool)
0:18 subgroupAny ( global bool)
0:18 Constant:
0:18 false (const bool)
0:19 subgroupAllEqual ( global bool)
0:19 'f4' ( in 4-component vector of float)
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
0:26 subgroupBroadcast ( global 4-component vector of float)
0:26 'f4' ( in 4-component vector of float)
0:26 Constant:
0:26 0 (const uint)
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
0:27 'f4' ( in 4-component vector of float)
0:28 Sequence
0:28 move second child to first child ( temp 4-component vector of uint)
0:28 'ballot' ( temp 4-component vector of uint)
0:28 subgroupBallot ( global 4-component vector of uint)
0:28 Constant:
0:28 false (const bool)
0:29 subgroupInverseBallot ( global bool)
0:29 Constant:
0:29 1 (const uint)
0:29 1 (const uint)
0:29 1 (const uint)
0:29 1 (const uint)
0:30 subgroupBallotBitExtract ( global bool)
0:30 'ballot' ( temp 4-component vector of uint)
0:30 Constant:
0:30 0 (const uint)
0:31 subgroupBallotBitCount ( global uint)
0:31 'ballot' ( temp 4-component vector of uint)
0:32 subgroupBallotInclusiveBitCount ( global uint)
0:32 'ballot' ( temp 4-component vector of uint)
0:33 subgroupBallotExclusiveBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotFindLSB ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotFindMSB ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:37 subgroupShuffle ( global 4-component vector of float)
0:37 'f4' ( in 4-component vector of float)
0:37 Constant:
0:37 0 (const uint)
0:38 subgroupShuffleXor ( global 4-component vector of float)
0:38 'f4' ( in 4-component vector of float)
0:38 Constant:
0:38 1 (const uint)
0:39 subgroupShuffleUp ( global 4-component vector of float)
0:39 'f4' ( in 4-component vector of float)
0:39 Constant:
0:39 1 (const uint)
0:40 subgroupShuffleDown ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:42 move second child to first child ( temp 4-component vector of float)
0:42 'result' ( temp 4-component vector of float)
0:42 subgroupAdd ( global 4-component vector of float)
0:42 'f4' ( in 4-component vector of float)
0:43 subgroupMul ( global 4-component vector of float)
0:43 'f4' ( in 4-component vector of float)
0:44 subgroupMin ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMax ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupAnd ( global 4-component vector of uint)
0:46 'ballot' ( temp 4-component vector of uint)
0:47 subgroupOr ( global 4-component vector of uint)
0:47 'ballot' ( temp 4-component vector of uint)
0:48 subgroupXor ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
0:49 'f4' ( in 4-component vector of float)
0:50 subgroupInclusiveMul ( global 4-component vector of float)
0:50 'f4' ( in 4-component vector of float)
0:51 subgroupInclusiveMin ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMax ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
0:53 'ballot' ( temp 4-component vector of uint)
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
0:54 'ballot' ( temp 4-component vector of uint)
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
0:56 'f4' ( in 4-component vector of float)
0:57 subgroupExclusiveMul ( global 4-component vector of float)
0:57 'f4' ( in 4-component vector of float)
0:58 subgroupExclusiveMin ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMax ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
0:60 'ballot' ( temp 4-component vector of uint)
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
0:61 'ballot' ( temp 4-component vector of uint)
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:64 subgroupClusteredAdd ( global 4-component vector of float)
0:64 'f4' ( in 4-component vector of float)
0:64 Constant:
0:64 2 (const uint)
0:65 subgroupClusteredMul ( global 4-component vector of float)
0:65 'f4' ( in 4-component vector of float)
0:65 Constant:
0:65 2 (const uint)
0:66 subgroupClusteredMin ( global 4-component vector of float)
0:66 'f4' ( in 4-component vector of float)
0:66 Constant:
0:66 2 (const uint)
0:67 subgroupClusteredMax ( global 4-component vector of float)
0:67 'f4' ( in 4-component vector of float)
0:67 Constant:
0:67 2 (const uint)
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
0:68 'ballot' ( temp 4-component vector of uint)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredOr ( global 4-component vector of uint)
0:69 'ballot' ( temp 4-component vector of uint)
0:69 Constant:
0:69 2 (const uint)
0:70 subgroupClusteredXor ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
0:72 'f4' ( in 4-component vector of float)
0:72 Constant:
0:72 0 (const uint)
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:73 'f4' ( in 4-component vector of float)
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:77 Sequence
0:77 move second child to first child ( temp 4-component vector of uint)
0:77 'parti' ( temp 4-component vector of uint)
0:77 subgroupPartitionNV ( global 4-component vector of uint)
0:77 'f4' ( in 4-component vector of float)
0:78 ERROR: Bad aggregation op
( global 4-component vector of float)
0:78 'f4' ( in 4-component vector of float)
0:78 'parti' ( temp 4-component vector of uint)
0:79 ERROR: Bad aggregation op
( global 4-component vector of float)
0:79 'f4' ( in 4-component vector of float)
0:79 'parti' ( temp 4-component vector of uint)
0:80 ERROR: Bad aggregation op
( global 4-component vector of float)
0:80 'f4' ( in 4-component vector of float)
0:80 'parti' ( temp 4-component vector of uint)
0:81 ERROR: Bad aggregation op
( global 4-component vector of float)
0:81 'f4' ( in 4-component vector of float)
0:81 'parti' ( temp 4-component vector of uint)
0:82 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:82 'ballot' ( temp 4-component vector of uint)
0:82 'parti' ( temp 4-component vector of uint)
0:83 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:83 'ballot' ( temp 4-component vector of uint)
0:83 'parti' ( temp 4-component vector of uint)
0:84 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:84 'ballot' ( temp 4-component vector of uint)
0:84 'parti' ( temp 4-component vector of uint)
0:85 ERROR: Bad aggregation op
( global 4-component vector of float)
0:85 'f4' ( in 4-component vector of float)
0:85 'parti' ( temp 4-component vector of uint)
0:86 ERROR: Bad aggregation op
( global 4-component vector of float)
0:86 'f4' ( in 4-component vector of float)
0:86 'parti' ( temp 4-component vector of uint)
0:87 ERROR: Bad aggregation op
( global 4-component vector of float)
0:87 'f4' ( in 4-component vector of float)
0:87 'parti' ( temp 4-component vector of uint)
0:88 ERROR: Bad aggregation op
( global 4-component vector of float)
0:88 'f4' ( in 4-component vector of float)
0:88 'parti' ( temp 4-component vector of uint)
0:89 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:89 'ballot' ( temp 4-component vector of uint)
0:89 'parti' ( temp 4-component vector of uint)
0:90 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:90 'ballot' ( temp 4-component vector of uint)
0:90 'parti' ( temp 4-component vector of uint)
0:91 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:91 'ballot' ( temp 4-component vector of uint)
0:91 'parti' ( temp 4-component vector of uint)
0:92 ERROR: Bad aggregation op
( global 4-component vector of float)
0:92 'f4' ( in 4-component vector of float)
0:92 'parti' ( temp 4-component vector of uint)
0:93 ERROR: Bad aggregation op
( global 4-component vector of float)
0:93 'f4' ( in 4-component vector of float)
0:93 'parti' ( temp 4-component vector of uint)
0:94 ERROR: Bad aggregation op
( global 4-component vector of float)
0:94 'f4' ( in 4-component vector of float)
0:94 'parti' ( temp 4-component vector of uint)
0:95 ERROR: Bad aggregation op
( global 4-component vector of float)
0:95 'f4' ( in 4-component vector of float)
0:95 'parti' ( temp 4-component vector of uint)
0:96 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:96 'ballot' ( temp 4-component vector of uint)
0:96 'parti' ( temp 4-component vector of uint)
0:97 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:97 'ballot' ( temp 4-component vector of uint)
0:97 'parti' ( temp 4-component vector of uint)
0:98 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:98 'ballot' ( temp 4-component vector of uint)
0:98 'parti' ( temp 4-component vector of uint)
0:100 Branch: Return with expression
0:100 'result' ( temp 4-component vector of float)
0:109 Function Definition: main( ( global void)
0:109 Function Parameters:
0:111 Sequence
0:111 move second child to first child ( temp 4-component vector of uint)
0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
0:111 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:111 Constant:
0:111 0 (const uint)
0:111 'gl_VertexID' ( gl_VertexId int VertexId)
0:111 Construct uvec4 ( temp 4-component vector of uint)
0:111 'gl_SubgroupSize' ( in uint unknown built-in variable)
0:111 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
0:111 Constant:
0:111 0 (const uint)
0:111 Constant:
0:111 0 (const uint)
0:112 subgroupBarrier ( global void)
0:113 subgroupMemoryBarrier ( global void)
0:114 subgroupMemoryBarrierBuffer ( global void)
0:115 subgroupMemoryBarrierImage ( global void)
0:116 subgroupElect ( global bool)
0:120 Function Definition: ballot_works(vf4; ( global void)
0:120 Function Parameters:
0:120 'f4' ( in 4-component vector of float)
0:121 Sequence
0:121 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
0:122 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
0:123 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
0:124 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
0:125 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
0:126 subgroupBroadcast ( global 4-component vector of float)
0:126 'f4' ( in 4-component vector of float)
0:126 Constant:
0:126 0 (const uint)
0:127 subgroupBroadcastFirst ( global 4-component vector of float)
0:127 'f4' ( in 4-component vector of float)
0:128 Sequence
0:128 move second child to first child ( temp 4-component vector of uint)
0:128 'ballot' ( temp 4-component vector of uint)
0:128 subgroupBallot ( global 4-component vector of uint)
0:128 Constant:
0:128 false (const bool)
0:129 subgroupInverseBallot ( global bool)
0:129 Constant:
0:129 1 (const uint)
0:129 1 (const uint)
0:129 1 (const uint)
0:129 1 (const uint)
0:130 subgroupBallotBitExtract ( global bool)
0:130 'ballot' ( temp 4-component vector of uint)
0:130 Constant:
0:130 0 (const uint)
0:131 subgroupBallotBitCount ( global uint)
0:131 'ballot' ( temp 4-component vector of uint)
0:132 subgroupBallotInclusiveBitCount ( global uint)
0:132 'ballot' ( temp 4-component vector of uint)
0:133 subgroupBallotExclusiveBitCount ( global uint)
0:133 'ballot' ( temp 4-component vector of uint)
0:134 subgroupBallotFindLSB ( global uint)
0:134 'ballot' ( temp 4-component vector of uint)
0:135 subgroupBallotFindMSB ( global uint)
0:135 'ballot' ( temp 4-component vector of uint)
0:139 Function Definition: vote_works(vf4; ( global void)
0:139 Function Parameters:
0:139 'f4' ( in 4-component vector of float)
0:141 Sequence
0:141 subgroupAll ( global bool)
0:141 Constant:
0:141 true (const bool)
0:142 subgroupAny ( global bool)
0:142 Constant:
0:142 false (const bool)
0:143 subgroupAllEqual ( global bool)
0:143 'f4' ( in 4-component vector of float)
0:148 Function Definition: shuffle_works(vf4; ( global void)
0:148 Function Parameters:
0:148 'f4' ( in 4-component vector of float)
0:150 Sequence
0:150 subgroupShuffle ( global 4-component vector of float)
0:150 'f4' ( in 4-component vector of float)
0:150 Constant:
0:150 0 (const uint)
0:151 subgroupShuffleXor ( global 4-component vector of float)
0:151 'f4' ( in 4-component vector of float)
0:151 Constant:
0:151 1 (const uint)
0:152 subgroupShuffleUp ( global 4-component vector of float)
0:152 'f4' ( in 4-component vector of float)
0:152 Constant:
0:152 1 (const uint)
0:153 subgroupShuffleDown ( global 4-component vector of float)
0:153 'f4' ( in 4-component vector of float)
0:153 Constant:
0:153 1 (const uint)
0:157 Function Definition: arith_works(vf4; ( global void)
0:157 Function Parameters:
0:157 'f4' ( in 4-component vector of float)
0:? Sequence
0:160 subgroupAdd ( global 4-component vector of float)
0:160 'f4' ( in 4-component vector of float)
0:161 subgroupMul ( global 4-component vector of float)
0:161 'f4' ( in 4-component vector of float)
0:162 subgroupMin ( global 4-component vector of float)
0:162 'f4' ( in 4-component vector of float)
0:163 subgroupMax ( global 4-component vector of float)
0:163 'f4' ( in 4-component vector of float)
0:164 subgroupAnd ( global 4-component vector of uint)
0:164 'ballot' ( temp 4-component vector of uint)
0:165 subgroupOr ( global 4-component vector of uint)
0:165 'ballot' ( temp 4-component vector of uint)
0:166 subgroupXor ( global 4-component vector of uint)
0:166 'ballot' ( temp 4-component vector of uint)
0:167 subgroupInclusiveAdd ( global 4-component vector of float)
0:167 'f4' ( in 4-component vector of float)
0:168 subgroupInclusiveMul ( global 4-component vector of float)
0:168 'f4' ( in 4-component vector of float)
0:169 subgroupInclusiveMin ( global 4-component vector of float)
0:169 'f4' ( in 4-component vector of float)
0:170 subgroupInclusiveMax ( global 4-component vector of float)
0:170 'f4' ( in 4-component vector of float)
0:171 subgroupInclusiveAnd ( global 4-component vector of uint)
0:171 'ballot' ( temp 4-component vector of uint)
0:172 subgroupInclusiveOr ( global 4-component vector of uint)
0:172 'ballot' ( temp 4-component vector of uint)
0:173 subgroupInclusiveXor ( global 4-component vector of uint)
0:173 'ballot' ( temp 4-component vector of uint)
0:174 subgroupExclusiveAdd ( global 4-component vector of float)
0:174 'f4' ( in 4-component vector of float)
0:175 subgroupExclusiveMul ( global 4-component vector of float)
0:175 'f4' ( in 4-component vector of float)
0:176 subgroupExclusiveMin ( global 4-component vector of float)
0:176 'f4' ( in 4-component vector of float)
0:177 subgroupExclusiveMax ( global 4-component vector of float)
0:177 'f4' ( in 4-component vector of float)
0:178 subgroupExclusiveAnd ( global 4-component vector of uint)
0:178 'ballot' ( temp 4-component vector of uint)
0:179 subgroupExclusiveOr ( global 4-component vector of uint)
0:179 'ballot' ( temp 4-component vector of uint)
0:180 subgroupExclusiveXor ( global 4-component vector of uint)
0:180 'ballot' ( temp 4-component vector of uint)
0:184 Function Definition: clustered_works(vf4; ( global void)
0:184 Function Parameters:
0:184 'f4' ( in 4-component vector of float)
0:186 Sequence
0:186 Sequence
0:186 move second child to first child ( temp 4-component vector of uint)
0:186 'ballot' ( temp 4-component vector of uint)
0:186 Constant:
0:186 85 (const uint)
0:186 0 (const uint)
0:186 0 (const uint)
0:186 0 (const uint)
0:187 subgroupClusteredAdd ( global 4-component vector of float)
0:187 'f4' ( in 4-component vector of float)
0:187 Constant:
0:187 2 (const uint)
0:188 subgroupClusteredMul ( global 4-component vector of float)
0:188 'f4' ( in 4-component vector of float)
0:188 Constant:
0:188 2 (const uint)
0:189 subgroupClusteredMin ( global 4-component vector of float)
0:189 'f4' ( in 4-component vector of float)
0:189 Constant:
0:189 2 (const uint)
0:190 subgroupClusteredMax ( global 4-component vector of float)
0:190 'f4' ( in 4-component vector of float)
0:190 Constant:
0:190 2 (const uint)
0:191 subgroupClusteredAnd ( global 4-component vector of uint)
0:191 'ballot' ( temp 4-component vector of uint)
0:191 Constant:
0:191 2 (const uint)
0:192 subgroupClusteredOr ( global 4-component vector of uint)
0:192 'ballot' ( temp 4-component vector of uint)
0:192 Constant:
0:192 2 (const uint)
0:193 subgroupClusteredXor ( global 4-component vector of uint)
0:193 'ballot' ( temp 4-component vector of uint)
0:193 Constant:
0:193 2 (const uint)
0:197 Function Definition: quad_works(vf4; ( global void)
0:197 Function Parameters:
0:197 'f4' ( in 4-component vector of float)
0:199 Sequence
0:199 subgroupQuadBroadcast ( global 4-component vector of float)
0:199 'f4' ( in 4-component vector of float)
0:199 Constant:
0:199 0 (const uint)
0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:200 'f4' ( in 4-component vector of float)
0:201 subgroupQuadSwapVertical ( global 4-component vector of float)
0:201 'f4' ( in 4-component vector of float)
0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:202 'f4' ( in 4-component vector of float)
0:206 Function Definition: partitioned_works(vf4; ( global void)
0:206 Function Parameters:
0:206 'f4' ( in 4-component vector of float)
0:208 Sequence
0:208 Sequence
0:208 move second child to first child ( temp 4-component vector of uint)
0:208 'parti' ( temp 4-component vector of uint)
0:208 subgroupPartitionNV ( global 4-component vector of uint)
0:208 'f4' ( in 4-component vector of float)
0:209 Sequence
0:209 move second child to first child ( temp 4-component vector of uint)
0:209 'ballot' ( temp 4-component vector of uint)
0:209 Constant:
0:209 85 (const uint)
0:209 0 (const uint)
0:209 0 (const uint)
0:209 0 (const uint)
0:210 ERROR: Bad aggregation op
( global 4-component vector of float)
0:210 'f4' ( in 4-component vector of float)
0:210 'parti' ( temp 4-component vector of uint)
0:211 ERROR: Bad aggregation op
( global 4-component vector of float)
0:211 'f4' ( in 4-component vector of float)
0:211 'parti' ( temp 4-component vector of uint)
0:212 ERROR: Bad aggregation op
( global 4-component vector of float)
0:212 'f4' ( in 4-component vector of float)
0:212 'parti' ( temp 4-component vector of uint)
0:213 ERROR: Bad aggregation op
( global 4-component vector of float)
0:213 'f4' ( in 4-component vector of float)
0:213 'parti' ( temp 4-component vector of uint)
0:214 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:214 'ballot' ( temp 4-component vector of uint)
0:214 'parti' ( temp 4-component vector of uint)
0:215 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:215 'ballot' ( temp 4-component vector of uint)
0:215 'parti' ( temp 4-component vector of uint)
0:216 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:216 'ballot' ( temp 4-component vector of uint)
0:216 'parti' ( temp 4-component vector of uint)
0:217 ERROR: Bad aggregation op
( global 4-component vector of float)
0:217 'f4' ( in 4-component vector of float)
0:217 'parti' ( temp 4-component vector of uint)
0:218 ERROR: Bad aggregation op
( global 4-component vector of float)
0:218 'f4' ( in 4-component vector of float)
0:218 'parti' ( temp 4-component vector of uint)
0:219 ERROR: Bad aggregation op
( global 4-component vector of float)
0:219 'f4' ( in 4-component vector of float)
0:219 'parti' ( temp 4-component vector of uint)
0:220 ERROR: Bad aggregation op
( global 4-component vector of float)
0:220 'f4' ( in 4-component vector of float)
0:220 'parti' ( temp 4-component vector of uint)
0:221 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:221 'ballot' ( temp 4-component vector of uint)
0:221 'parti' ( temp 4-component vector of uint)
0:222 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:222 'ballot' ( temp 4-component vector of uint)
0:222 'parti' ( temp 4-component vector of uint)
0:223 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:223 'ballot' ( temp 4-component vector of uint)
0:223 'parti' ( temp 4-component vector of uint)
0:224 ERROR: Bad aggregation op
( global 4-component vector of float)
0:224 'f4' ( in 4-component vector of float)
0:224 'parti' ( temp 4-component vector of uint)
0:225 ERROR: Bad aggregation op
( global 4-component vector of float)
0:225 'f4' ( in 4-component vector of float)
0:225 'parti' ( temp 4-component vector of uint)
0:226 ERROR: Bad aggregation op
( global 4-component vector of float)
0:226 'f4' ( in 4-component vector of float)
0:226 'parti' ( temp 4-component vector of uint)
0:227 ERROR: Bad aggregation op
( global 4-component vector of float)
0:227 'f4' ( in 4-component vector of float)
0:227 'parti' ( temp 4-component vector of uint)
0:228 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:228 'ballot' ( temp 4-component vector of uint)
0:228 'parti' ( temp 4-component vector of uint)
0:229 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:229 'ballot' ( temp 4-component vector of uint)
0:229 'parti' ( temp 4-component vector of uint)
0:230 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:230 'ballot' ( temp 4-component vector of uint)
0:230 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
@ -29,25 +654,38 @@ Linked vertex stage:
Shader version: 450
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
0:? Sequence
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of uint)
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:10 Constant:
0:10 0 (const uint)
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
0:10 Construct uvec4 ( temp 4-component vector of uint)
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 0 (const uint)
Requested GL_KHR_shader_subgroup_clustered
Requested GL_KHR_shader_subgroup_quad
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:109 Function Definition: main( ( global void)
0:109 Function Parameters:
0:111 Sequence
0:111 move second child to first child ( temp 4-component vector of uint)
0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
0:111 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:111 Constant:
0:111 0 (const uint)
0:111 'gl_VertexID' ( gl_VertexId int VertexId)
0:111 Construct uvec4 ( temp 4-component vector of uint)
0:111 'gl_SubgroupSize' ( in uint unknown built-in variable)
0:111 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
0:111 Constant:
0:111 0 (const uint)
0:111 Constant:
0:111 0 (const uint)
0:112 subgroupBarrier ( global void)
0:113 subgroupMemoryBarrier ( global void)
0:114 subgroupMemoryBarrierBuffer ( global void)
0:115 subgroupMemoryBarrierImage ( global void)
0:116 subgroupElect ( global bool)
0:? Linker Objects
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)