Add AST tests for ray tracing shaders

with subgroup touch tests (error and non-error cases)
Currently the subgroup built-ins are NOT giving the correct output.
This is fixed in the next commit.
This commit is contained in:
Daniel Koch 2019-05-30 19:40:20 -04:00
parent 3418cb4c98
commit c3e60ad9b6
13 changed files with 6250 additions and 0 deletions

View File

@ -0,0 +1,824 @@
glsl.460.subgroup.rahit
ERROR: 0:7: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:8: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:22: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:23: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:24: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:25: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:26: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:133: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:134: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:144: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:145: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:146: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:147: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:148: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 93 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:4 Function Parameters:
0:4 'f4' ( in 4-component vector of float)
0:? Sequence
0:7 'gl_SubgroupSize' ( temp float)
0:8 'gl_SubgroupInvocationID' ( temp float)
0:9 subgroupBarrier ( global void)
0:10 subgroupMemoryBarrier ( global void)
0:11 subgroupMemoryBarrierBuffer ( global void)
0:12 subgroupMemoryBarrierImage ( global void)
0:13 subgroupElect ( global bool)
0:14 'gl_NumSubgroups' ( temp float)
0:15 'gl_SubgroupID' ( temp float)
0:16 Constant:
0:16 0.000000
0:18 subgroupAll ( global bool)
0:18 Constant:
0:18 true (const bool)
0:19 subgroupAny ( global bool)
0:19 Constant:
0:19 false (const bool)
0:20 subgroupAllEqual ( global bool)
0:20 'f4' ( in 4-component vector of float)
0:22 'gl_SubgroupEqMask' ( temp float)
0:23 'gl_SubgroupGeMask' ( temp float)
0:24 'gl_SubgroupGtMask' ( temp float)
0:25 'gl_SubgroupLeMask' ( temp float)
0:26 'gl_SubgroupLtMask' ( temp float)
0:27 subgroupBroadcast ( global 4-component vector of float)
0:27 'f4' ( in 4-component vector of float)
0:27 Constant:
0:27 0 (const uint)
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
0:28 'f4' ( in 4-component vector of float)
0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of uint)
0:29 'ballot' ( temp 4-component vector of uint)
0:29 subgroupBallot ( global 4-component vector of uint)
0:29 Constant:
0:29 false (const bool)
0:30 subgroupInverseBallot ( global bool)
0:30 Constant:
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:31 subgroupBallotBitExtract ( global bool)
0:31 'ballot' ( temp 4-component vector of uint)
0:31 Constant:
0:31 0 (const uint)
0:32 subgroupBallotBitCount ( global uint)
0:32 'ballot' ( temp 4-component vector of uint)
0:33 subgroupBallotInclusiveBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotExclusiveBitCount ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotFindLSB ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:36 subgroupBallotFindMSB ( global uint)
0:36 'ballot' ( temp 4-component vector of uint)
0:38 subgroupShuffle ( global 4-component vector of float)
0:38 'f4' ( in 4-component vector of float)
0:38 Constant:
0:38 0 (const uint)
0:39 subgroupShuffleXor ( 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 subgroupShuffleUp ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:41 subgroupShuffleDown ( global 4-component vector of float)
0:41 'f4' ( in 4-component vector of float)
0:41 Constant:
0:41 1 (const uint)
0:43 move second child to first child ( temp 4-component vector of float)
0:43 'result' ( temp 4-component vector of float)
0:43 subgroupAdd ( global 4-component vector of float)
0:43 'f4' ( in 4-component vector of float)
0:44 subgroupMul ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMin ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupMax ( global 4-component vector of float)
0:46 'f4' ( in 4-component vector of float)
0:47 subgroupAnd ( global 4-component vector of uint)
0:47 'ballot' ( temp 4-component vector of uint)
0:48 subgroupOr ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupXor ( global 4-component vector of uint)
0:49 'ballot' ( temp 4-component vector of uint)
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
0:50 'f4' ( in 4-component vector of float)
0:51 subgroupInclusiveMul ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMin ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveMax ( global 4-component vector of float)
0:53 'f4' ( in 4-component vector of float)
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
0:54 'ballot' ( temp 4-component vector of uint)
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
0:56 'ballot' ( temp 4-component vector of uint)
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
0:57 'f4' ( in 4-component vector of float)
0:58 subgroupExclusiveMul ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMin ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveMax ( global 4-component vector of float)
0:60 'f4' ( in 4-component vector of float)
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
0:61 'ballot' ( temp 4-component vector of uint)
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
0:63 'ballot' ( temp 4-component vector of uint)
0:65 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( 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 subgroupClusteredMax ( global 4-component vector of float)
0:68 'f4' ( in 4-component vector of float)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredAnd ( 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 subgroupClusteredOr ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:71 subgroupClusteredXor ( global 4-component vector of uint)
0:71 'ballot' ( temp 4-component vector of uint)
0:71 Constant:
0:71 2 (const uint)
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
0:73 'f4' ( in 4-component vector of float)
0:73 Constant:
0:73 0 (const uint)
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:76 'f4' ( in 4-component vector of float)
0:78 Sequence
0:78 move second child to first child ( temp 4-component vector of uint)
0:78 'parti' ( temp 4-component vector of uint)
0:78 subgroupPartitionNV ( global 4-component vector of uint)
0:78 'f4' ( in 4-component vector of float)
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 float)
0:82 'f4' ( in 4-component vector of float)
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 uint)
0:85 'ballot' ( temp 4-component vector of uint)
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 float)
0:89 'f4' ( in 4-component vector of float)
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 uint)
0:92 'ballot' ( temp 4-component vector of uint)
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 float)
0:96 'f4' ( in 4-component vector of float)
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:99 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:99 'ballot' ( temp 4-component vector of uint)
0:99 'parti' ( temp 4-component vector of uint)
0:101 Branch: Return with expression
0:101 'result' ( temp 4-component vector of float)
0:106 Function Definition: main( ( global void)
0:106 Function Parameters:
0:108 Sequence
0:108 Sequence
0:108 move second child to first child ( temp 3-component vector of uint)
0:108 'v0' ( temp 3-component vector of uint)
0:108 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:109 Sequence
0:109 move second child to first child ( temp 3-component vector of uint)
0:109 'v1' ( temp 3-component vector of uint)
0:109 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:110 Sequence
0:110 move second child to first child ( temp int)
0:110 'v2' ( temp int)
0:110 'gl_PrimitiveID' ( in int PrimitiveID)
0:111 Sequence
0:111 move second child to first child ( temp int)
0:111 'v3' ( temp int)
0:111 'gl_InstanceID' ( in int InstanceId)
0:112 Sequence
0:112 move second child to first child ( temp int)
0:112 'v4' ( temp int)
0:112 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
0:113 Sequence
0:113 move second child to first child ( temp 3-component vector of float)
0:113 'v5' ( temp 3-component vector of float)
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:114 Sequence
0:114 move second child to first child ( temp 3-component vector of float)
0:114 'v6' ( temp 3-component vector of float)
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v7' ( temp 3-component vector of float)
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v8' ( temp 3-component vector of float)
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp float)
0:117 'v9' ( temp float)
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:118 Sequence
0:118 move second child to first child ( temp float)
0:118 'v10' ( temp float)
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v11' ( temp float)
0:119 'gl_HitTNV' ( in float HitTNV)
0:120 Sequence
0:120 move second child to first child ( temp uint)
0:120 'v12' ( temp uint)
0:120 'gl_HitKindNV' ( in uint HitKindNV)
0:121 Sequence
0:121 move second child to first child ( temp 4X3 matrix of float)
0:121 'v13' ( temp 4X3 matrix of float)
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
0:122 Sequence
0:122 move second child to first child ( temp 4X3 matrix of float)
0:122 'v14' ( temp 4X3 matrix of float)
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
0:123 move second child to first child ( temp 4-component vector of float)
0:123 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
0:123 Constant:
0:123 0.500000
0:123 0.500000
0:123 0.500000
0:123 0.500000
0:124 Test condition and select ( temp void)
0:124 Condition
0:124 Compare Equal ( temp bool)
0:124 'v2' ( temp int)
0:124 Constant:
0:124 1 (const int)
0:124 true case
0:125 ignoreIntersectionNV ( global void)
0:124 false case
0:127 terminateRayNV ( global void)
0:131 Function Definition: basic_works( ( global void)
0:131 Function Parameters:
0:133 Sequence
0:133 'gl_SubgroupSize' ( temp float)
0:134 'gl_SubgroupInvocationID' ( temp float)
0:135 subgroupBarrier ( global void)
0:136 subgroupMemoryBarrier ( global void)
0:137 subgroupMemoryBarrierBuffer ( global void)
0:138 subgroupMemoryBarrierImage ( global void)
0:139 subgroupElect ( global bool)
0:143 Function Definition: ballot_works(vf4; ( global void)
0:143 Function Parameters:
0:143 'f4' ( in 4-component vector of float)
0:144 Sequence
0:144 'gl_SubgroupEqMask' ( temp float)
0:145 'gl_SubgroupGeMask' ( temp float)
0:146 'gl_SubgroupGtMask' ( temp float)
0:147 'gl_SubgroupLeMask' ( temp float)
0:148 'gl_SubgroupLtMask' ( temp float)
0:149 subgroupBroadcast ( global 4-component vector of float)
0:149 'f4' ( in 4-component vector of float)
0:149 Constant:
0:149 0 (const uint)
0:150 subgroupBroadcastFirst ( global 4-component vector of float)
0:150 'f4' ( in 4-component vector of float)
0:151 Sequence
0:151 move second child to first child ( temp 4-component vector of uint)
0:151 'ballot' ( temp 4-component vector of uint)
0:151 subgroupBallot ( global 4-component vector of uint)
0:151 Constant:
0:151 false (const bool)
0:152 subgroupInverseBallot ( global bool)
0:152 Constant:
0:152 1 (const uint)
0:152 1 (const uint)
0:152 1 (const uint)
0:152 1 (const uint)
0:153 subgroupBallotBitExtract ( global bool)
0:153 'ballot' ( temp 4-component vector of uint)
0:153 Constant:
0:153 0 (const uint)
0:154 subgroupBallotBitCount ( global uint)
0:154 'ballot' ( temp 4-component vector of uint)
0:155 subgroupBallotInclusiveBitCount ( global uint)
0:155 'ballot' ( temp 4-component vector of uint)
0:156 subgroupBallotExclusiveBitCount ( global uint)
0:156 'ballot' ( temp 4-component vector of uint)
0:157 subgroupBallotFindLSB ( global uint)
0:157 'ballot' ( temp 4-component vector of uint)
0:158 subgroupBallotFindMSB ( global uint)
0:158 'ballot' ( temp 4-component vector of uint)
0:162 Function Definition: vote_works(vf4; ( global void)
0:162 Function Parameters:
0:162 'f4' ( in 4-component vector of float)
0:164 Sequence
0:164 subgroupAll ( global bool)
0:164 Constant:
0:164 true (const bool)
0:165 subgroupAny ( global bool)
0:165 Constant:
0:165 false (const bool)
0:166 subgroupAllEqual ( global bool)
0:166 'f4' ( in 4-component vector of float)
0:171 Function Definition: shuffle_works(vf4; ( global void)
0:171 Function Parameters:
0:171 'f4' ( in 4-component vector of float)
0:173 Sequence
0:173 subgroupShuffle ( global 4-component vector of float)
0:173 'f4' ( in 4-component vector of float)
0:173 Constant:
0:173 0 (const uint)
0:174 subgroupShuffleXor ( global 4-component vector of float)
0:174 'f4' ( in 4-component vector of float)
0:174 Constant:
0:174 1 (const uint)
0:175 subgroupShuffleUp ( global 4-component vector of float)
0:175 'f4' ( in 4-component vector of float)
0:175 Constant:
0:175 1 (const uint)
0:176 subgroupShuffleDown ( global 4-component vector of float)
0:176 'f4' ( in 4-component vector of float)
0:176 Constant:
0:176 1 (const uint)
0:180 Function Definition: arith_works(vf4; ( global void)
0:180 Function Parameters:
0:180 'f4' ( in 4-component vector of float)
0:? Sequence
0:183 subgroupAdd ( global 4-component vector of float)
0:183 'f4' ( in 4-component vector of float)
0:184 subgroupMul ( global 4-component vector of float)
0:184 'f4' ( in 4-component vector of float)
0:185 subgroupMin ( global 4-component vector of float)
0:185 'f4' ( in 4-component vector of float)
0:186 subgroupMax ( global 4-component vector of float)
0:186 'f4' ( in 4-component vector of float)
0:187 subgroupAnd ( global 4-component vector of uint)
0:187 'ballot' ( temp 4-component vector of uint)
0:188 subgroupOr ( global 4-component vector of uint)
0:188 'ballot' ( temp 4-component vector of uint)
0:189 subgroupXor ( global 4-component vector of uint)
0:189 'ballot' ( temp 4-component vector of uint)
0:190 subgroupInclusiveAdd ( global 4-component vector of float)
0:190 'f4' ( in 4-component vector of float)
0:191 subgroupInclusiveMul ( global 4-component vector of float)
0:191 'f4' ( in 4-component vector of float)
0:192 subgroupInclusiveMin ( global 4-component vector of float)
0:192 'f4' ( in 4-component vector of float)
0:193 subgroupInclusiveMax ( global 4-component vector of float)
0:193 'f4' ( in 4-component vector of float)
0:194 subgroupInclusiveAnd ( global 4-component vector of uint)
0:194 'ballot' ( temp 4-component vector of uint)
0:195 subgroupInclusiveOr ( global 4-component vector of uint)
0:195 'ballot' ( temp 4-component vector of uint)
0:196 subgroupInclusiveXor ( global 4-component vector of uint)
0:196 'ballot' ( temp 4-component vector of uint)
0:197 subgroupExclusiveAdd ( global 4-component vector of float)
0:197 'f4' ( in 4-component vector of float)
0:198 subgroupExclusiveMul ( global 4-component vector of float)
0:198 'f4' ( in 4-component vector of float)
0:199 subgroupExclusiveMin ( global 4-component vector of float)
0:199 'f4' ( in 4-component vector of float)
0:200 subgroupExclusiveMax ( global 4-component vector of float)
0:200 'f4' ( in 4-component vector of float)
0:201 subgroupExclusiveAnd ( global 4-component vector of uint)
0:201 'ballot' ( temp 4-component vector of uint)
0:202 subgroupExclusiveOr ( global 4-component vector of uint)
0:202 'ballot' ( temp 4-component vector of uint)
0:203 subgroupExclusiveXor ( global 4-component vector of uint)
0:203 'ballot' ( temp 4-component vector of uint)
0:207 Function Definition: clustered_works(vf4; ( global void)
0:207 Function Parameters:
0:207 'f4' ( in 4-component vector of float)
0:209 Sequence
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 subgroupClusteredAdd ( global 4-component vector of float)
0:210 'f4' ( in 4-component vector of float)
0:210 Constant:
0:210 2 (const uint)
0:211 subgroupClusteredMul ( global 4-component vector of float)
0:211 'f4' ( in 4-component vector of float)
0:211 Constant:
0:211 2 (const uint)
0:212 subgroupClusteredMin ( global 4-component vector of float)
0:212 'f4' ( in 4-component vector of float)
0:212 Constant:
0:212 2 (const uint)
0:213 subgroupClusteredMax ( global 4-component vector of float)
0:213 'f4' ( in 4-component vector of float)
0:213 Constant:
0:213 2 (const uint)
0:214 subgroupClusteredAnd ( global 4-component vector of uint)
0:214 'ballot' ( temp 4-component vector of uint)
0:214 Constant:
0:214 2 (const uint)
0:215 subgroupClusteredOr ( global 4-component vector of uint)
0:215 'ballot' ( temp 4-component vector of uint)
0:215 Constant:
0:215 2 (const uint)
0:216 subgroupClusteredXor ( global 4-component vector of uint)
0:216 'ballot' ( temp 4-component vector of uint)
0:216 Constant:
0:216 2 (const uint)
0:220 Function Definition: quad_works(vf4; ( global void)
0:220 Function Parameters:
0:220 'f4' ( in 4-component vector of float)
0:222 Sequence
0:222 subgroupQuadBroadcast ( global 4-component vector of float)
0:222 'f4' ( in 4-component vector of float)
0:222 Constant:
0:222 0 (const uint)
0:223 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:223 'f4' ( in 4-component vector of float)
0:224 subgroupQuadSwapVertical ( global 4-component vector of float)
0:224 'f4' ( in 4-component vector of float)
0:225 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:225 'f4' ( in 4-component vector of float)
0:229 Function Definition: partitioned_works(vf4; ( global void)
0:229 Function Parameters:
0:229 'f4' ( in 4-component vector of float)
0:231 Sequence
0:231 Sequence
0:231 move second child to first child ( temp 4-component vector of uint)
0:231 'parti' ( temp 4-component vector of uint)
0:231 subgroupPartitionNV ( global 4-component vector of uint)
0:231 'f4' ( in 4-component vector of float)
0:232 Sequence
0:232 move second child to first child ( temp 4-component vector of uint)
0:232 'ballot' ( temp 4-component vector of uint)
0:232 Constant:
0:232 85 (const uint)
0:232 0 (const uint)
0:232 0 (const uint)
0:232 0 (const uint)
0:233 ERROR: Bad aggregation op
( global 4-component vector of float)
0:233 'f4' ( in 4-component vector of float)
0:233 'parti' ( temp 4-component vector of uint)
0:234 ERROR: Bad aggregation op
( global 4-component vector of float)
0:234 'f4' ( in 4-component vector of float)
0:234 'parti' ( temp 4-component vector of uint)
0:235 ERROR: Bad aggregation op
( global 4-component vector of float)
0:235 'f4' ( in 4-component vector of float)
0:235 'parti' ( temp 4-component vector of uint)
0:236 ERROR: Bad aggregation op
( global 4-component vector of float)
0:236 'f4' ( in 4-component vector of float)
0:236 'parti' ( temp 4-component vector of uint)
0:237 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:237 'ballot' ( temp 4-component vector of uint)
0:237 'parti' ( temp 4-component vector of uint)
0:238 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:238 'ballot' ( temp 4-component vector of uint)
0:238 'parti' ( temp 4-component vector of uint)
0:239 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:239 'ballot' ( temp 4-component vector of uint)
0:239 'parti' ( temp 4-component vector of uint)
0:240 ERROR: Bad aggregation op
( global 4-component vector of float)
0:240 'f4' ( in 4-component vector of float)
0:240 'parti' ( temp 4-component vector of uint)
0:241 ERROR: Bad aggregation op
( global 4-component vector of float)
0:241 'f4' ( in 4-component vector of float)
0:241 'parti' ( temp 4-component vector of uint)
0:242 ERROR: Bad aggregation op
( global 4-component vector of float)
0:242 'f4' ( in 4-component vector of float)
0:242 'parti' ( temp 4-component vector of uint)
0:243 ERROR: Bad aggregation op
( global 4-component vector of float)
0:243 'f4' ( in 4-component vector of float)
0:243 'parti' ( temp 4-component vector of uint)
0:244 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:244 'ballot' ( temp 4-component vector of uint)
0:244 'parti' ( temp 4-component vector of uint)
0:245 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:245 'ballot' ( temp 4-component vector of uint)
0:245 'parti' ( temp 4-component vector of uint)
0:246 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:246 'ballot' ( temp 4-component vector of uint)
0:246 'parti' ( temp 4-component vector of uint)
0:247 ERROR: Bad aggregation op
( global 4-component vector of float)
0:247 'f4' ( in 4-component vector of float)
0:247 'parti' ( temp 4-component vector of uint)
0:248 ERROR: Bad aggregation op
( global 4-component vector of float)
0:248 'f4' ( in 4-component vector of float)
0:248 'parti' ( temp 4-component vector of uint)
0:249 ERROR: Bad aggregation op
( global 4-component vector of float)
0:249 'f4' ( in 4-component vector of float)
0:249 'parti' ( temp 4-component vector of uint)
0:250 ERROR: Bad aggregation op
( global 4-component vector of float)
0:250 'f4' ( in 4-component vector of float)
0:250 'parti' ( temp 4-component vector of uint)
0:251 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:251 'ballot' ( temp 4-component vector of uint)
0:251 'parti' ( temp 4-component vector of uint)
0:252 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:252 'ballot' ( temp 4-component vector of uint)
0:252 'parti' ( temp 4-component vector of uint)
0:253 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:253 'ballot' ( temp 4-component vector of uint)
0:253 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
Linked any-hit stage:
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:106 Function Definition: main( ( global void)
0:106 Function Parameters:
0:108 Sequence
0:108 Sequence
0:108 move second child to first child ( temp 3-component vector of uint)
0:108 'v0' ( temp 3-component vector of uint)
0:108 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:109 Sequence
0:109 move second child to first child ( temp 3-component vector of uint)
0:109 'v1' ( temp 3-component vector of uint)
0:109 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:110 Sequence
0:110 move second child to first child ( temp int)
0:110 'v2' ( temp int)
0:110 'gl_PrimitiveID' ( in int PrimitiveID)
0:111 Sequence
0:111 move second child to first child ( temp int)
0:111 'v3' ( temp int)
0:111 'gl_InstanceID' ( in int InstanceId)
0:112 Sequence
0:112 move second child to first child ( temp int)
0:112 'v4' ( temp int)
0:112 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
0:113 Sequence
0:113 move second child to first child ( temp 3-component vector of float)
0:113 'v5' ( temp 3-component vector of float)
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:114 Sequence
0:114 move second child to first child ( temp 3-component vector of float)
0:114 'v6' ( temp 3-component vector of float)
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v7' ( temp 3-component vector of float)
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v8' ( temp 3-component vector of float)
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp float)
0:117 'v9' ( temp float)
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:118 Sequence
0:118 move second child to first child ( temp float)
0:118 'v10' ( temp float)
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v11' ( temp float)
0:119 'gl_HitTNV' ( in float HitTNV)
0:120 Sequence
0:120 move second child to first child ( temp uint)
0:120 'v12' ( temp uint)
0:120 'gl_HitKindNV' ( in uint HitKindNV)
0:121 Sequence
0:121 move second child to first child ( temp 4X3 matrix of float)
0:121 'v13' ( temp 4X3 matrix of float)
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
0:122 Sequence
0:122 move second child to first child ( temp 4X3 matrix of float)
0:122 'v14' ( temp 4X3 matrix of float)
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
0:123 move second child to first child ( temp 4-component vector of float)
0:123 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
0:123 Constant:
0:123 0.500000
0:123 0.500000
0:123 0.500000
0:123 0.500000
0:124 Test condition and select ( temp void)
0:124 Condition
0:124 Compare Equal ( temp bool)
0:124 'v2' ( temp int)
0:124 Constant:
0:124 1 (const int)
0:124 true case
0:125 ignoreIntersectionNV ( global void)
0:124 false case
0:127 terminateRayNV ( global void)
0:? Linker Objects
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)

View File

@ -0,0 +1,712 @@
glsl.460.subgroup.rcall
ERROR: 0:7: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:8: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:22: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:23: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:24: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:25: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:26: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:121: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:122: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:132: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:133: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:134: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:135: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:136: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 93 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:4 Function Parameters:
0:4 'f4' ( in 4-component vector of float)
0:? Sequence
0:7 'gl_SubgroupSize' ( temp float)
0:8 'gl_SubgroupInvocationID' ( temp float)
0:9 subgroupBarrier ( global void)
0:10 subgroupMemoryBarrier ( global void)
0:11 subgroupMemoryBarrierBuffer ( global void)
0:12 subgroupMemoryBarrierImage ( global void)
0:13 subgroupElect ( global bool)
0:14 'gl_NumSubgroups' ( temp float)
0:15 'gl_SubgroupID' ( temp float)
0:16 Constant:
0:16 0.000000
0:18 subgroupAll ( global bool)
0:18 Constant:
0:18 true (const bool)
0:19 subgroupAny ( global bool)
0:19 Constant:
0:19 false (const bool)
0:20 subgroupAllEqual ( global bool)
0:20 'f4' ( in 4-component vector of float)
0:22 'gl_SubgroupEqMask' ( temp float)
0:23 'gl_SubgroupGeMask' ( temp float)
0:24 'gl_SubgroupGtMask' ( temp float)
0:25 'gl_SubgroupLeMask' ( temp float)
0:26 'gl_SubgroupLtMask' ( temp float)
0:27 subgroupBroadcast ( global 4-component vector of float)
0:27 'f4' ( in 4-component vector of float)
0:27 Constant:
0:27 0 (const uint)
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
0:28 'f4' ( in 4-component vector of float)
0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of uint)
0:29 'ballot' ( temp 4-component vector of uint)
0:29 subgroupBallot ( global 4-component vector of uint)
0:29 Constant:
0:29 false (const bool)
0:30 subgroupInverseBallot ( global bool)
0:30 Constant:
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:31 subgroupBallotBitExtract ( global bool)
0:31 'ballot' ( temp 4-component vector of uint)
0:31 Constant:
0:31 0 (const uint)
0:32 subgroupBallotBitCount ( global uint)
0:32 'ballot' ( temp 4-component vector of uint)
0:33 subgroupBallotInclusiveBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotExclusiveBitCount ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotFindLSB ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:36 subgroupBallotFindMSB ( global uint)
0:36 'ballot' ( temp 4-component vector of uint)
0:38 subgroupShuffle ( global 4-component vector of float)
0:38 'f4' ( in 4-component vector of float)
0:38 Constant:
0:38 0 (const uint)
0:39 subgroupShuffleXor ( 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 subgroupShuffleUp ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:41 subgroupShuffleDown ( global 4-component vector of float)
0:41 'f4' ( in 4-component vector of float)
0:41 Constant:
0:41 1 (const uint)
0:43 move second child to first child ( temp 4-component vector of float)
0:43 'result' ( temp 4-component vector of float)
0:43 subgroupAdd ( global 4-component vector of float)
0:43 'f4' ( in 4-component vector of float)
0:44 subgroupMul ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMin ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupMax ( global 4-component vector of float)
0:46 'f4' ( in 4-component vector of float)
0:47 subgroupAnd ( global 4-component vector of uint)
0:47 'ballot' ( temp 4-component vector of uint)
0:48 subgroupOr ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupXor ( global 4-component vector of uint)
0:49 'ballot' ( temp 4-component vector of uint)
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
0:50 'f4' ( in 4-component vector of float)
0:51 subgroupInclusiveMul ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMin ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveMax ( global 4-component vector of float)
0:53 'f4' ( in 4-component vector of float)
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
0:54 'ballot' ( temp 4-component vector of uint)
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
0:56 'ballot' ( temp 4-component vector of uint)
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
0:57 'f4' ( in 4-component vector of float)
0:58 subgroupExclusiveMul ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMin ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveMax ( global 4-component vector of float)
0:60 'f4' ( in 4-component vector of float)
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
0:61 'ballot' ( temp 4-component vector of uint)
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
0:63 'ballot' ( temp 4-component vector of uint)
0:65 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( 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 subgroupClusteredMax ( global 4-component vector of float)
0:68 'f4' ( in 4-component vector of float)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredAnd ( 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 subgroupClusteredOr ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:71 subgroupClusteredXor ( global 4-component vector of uint)
0:71 'ballot' ( temp 4-component vector of uint)
0:71 Constant:
0:71 2 (const uint)
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
0:73 'f4' ( in 4-component vector of float)
0:73 Constant:
0:73 0 (const uint)
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:76 'f4' ( in 4-component vector of float)
0:78 Sequence
0:78 move second child to first child ( temp 4-component vector of uint)
0:78 'parti' ( temp 4-component vector of uint)
0:78 subgroupPartitionNV ( global 4-component vector of uint)
0:78 'f4' ( in 4-component vector of float)
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 float)
0:82 'f4' ( in 4-component vector of float)
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 uint)
0:85 'ballot' ( temp 4-component vector of uint)
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 float)
0:89 'f4' ( in 4-component vector of float)
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 uint)
0:92 'ballot' ( temp 4-component vector of uint)
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 float)
0:96 'f4' ( in 4-component vector of float)
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:99 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:99 'ballot' ( temp 4-component vector of uint)
0:99 'parti' ( temp 4-component vector of uint)
0:101 Branch: Return with expression
0:101 'result' ( temp 4-component vector of float)
0:109 Function Definition: main( ( global void)
0:109 Function Parameters:
0:111 Sequence
0:111 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'id' ( temp 3-component vector of uint)
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:112 Sequence
0:112 move second child to first child ( temp 3-component vector of uint)
0:112 'size' ( temp 3-component vector of uint)
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:113 move second child to first child ( temp uint)
0:113 data1: direct index for structure ( callableDataInNV uint)
0:113 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
0:113 Constant:
0:113 0 (const uint)
0:113 Constant:
0:113 256 (const uint)
0:114 executeCallableNV ( global void)
0:114 Constant:
0:114 2 (const uint)
0:114 Constant:
0:114 1 (const int)
0:119 Function Definition: basic_works( ( global void)
0:119 Function Parameters:
0:121 Sequence
0:121 'gl_SubgroupSize' ( temp float)
0:122 'gl_SubgroupInvocationID' ( temp float)
0:123 subgroupBarrier ( global void)
0:124 subgroupMemoryBarrier ( global void)
0:125 subgroupMemoryBarrierBuffer ( global void)
0:126 subgroupMemoryBarrierImage ( global void)
0:127 subgroupElect ( global bool)
0:131 Function Definition: ballot_works(vf4; ( global void)
0:131 Function Parameters:
0:131 'f4' ( in 4-component vector of float)
0:132 Sequence
0:132 'gl_SubgroupEqMask' ( temp float)
0:133 'gl_SubgroupGeMask' ( temp float)
0:134 'gl_SubgroupGtMask' ( temp float)
0:135 'gl_SubgroupLeMask' ( temp float)
0:136 'gl_SubgroupLtMask' ( temp float)
0:137 subgroupBroadcast ( global 4-component vector of float)
0:137 'f4' ( in 4-component vector of float)
0:137 Constant:
0:137 0 (const uint)
0:138 subgroupBroadcastFirst ( global 4-component vector of float)
0:138 'f4' ( in 4-component vector of float)
0:139 Sequence
0:139 move second child to first child ( temp 4-component vector of uint)
0:139 'ballot' ( temp 4-component vector of uint)
0:139 subgroupBallot ( global 4-component vector of uint)
0:139 Constant:
0:139 false (const bool)
0:140 subgroupInverseBallot ( global bool)
0:140 Constant:
0:140 1 (const uint)
0:140 1 (const uint)
0:140 1 (const uint)
0:140 1 (const uint)
0:141 subgroupBallotBitExtract ( global bool)
0:141 'ballot' ( temp 4-component vector of uint)
0:141 Constant:
0:141 0 (const uint)
0:142 subgroupBallotBitCount ( global uint)
0:142 'ballot' ( temp 4-component vector of uint)
0:143 subgroupBallotInclusiveBitCount ( global uint)
0:143 'ballot' ( temp 4-component vector of uint)
0:144 subgroupBallotExclusiveBitCount ( global uint)
0:144 'ballot' ( temp 4-component vector of uint)
0:145 subgroupBallotFindLSB ( global uint)
0:145 'ballot' ( temp 4-component vector of uint)
0:146 subgroupBallotFindMSB ( global uint)
0:146 'ballot' ( temp 4-component vector of uint)
0:150 Function Definition: vote_works(vf4; ( global void)
0:150 Function Parameters:
0:150 'f4' ( in 4-component vector of float)
0:152 Sequence
0:152 subgroupAll ( global bool)
0:152 Constant:
0:152 true (const bool)
0:153 subgroupAny ( global bool)
0:153 Constant:
0:153 false (const bool)
0:154 subgroupAllEqual ( global bool)
0:154 'f4' ( in 4-component vector of float)
0:159 Function Definition: shuffle_works(vf4; ( global void)
0:159 Function Parameters:
0:159 'f4' ( in 4-component vector of float)
0:161 Sequence
0:161 subgroupShuffle ( global 4-component vector of float)
0:161 'f4' ( in 4-component vector of float)
0:161 Constant:
0:161 0 (const uint)
0:162 subgroupShuffleXor ( global 4-component vector of float)
0:162 'f4' ( in 4-component vector of float)
0:162 Constant:
0:162 1 (const uint)
0:163 subgroupShuffleUp ( global 4-component vector of float)
0:163 'f4' ( in 4-component vector of float)
0:163 Constant:
0:163 1 (const uint)
0:164 subgroupShuffleDown ( global 4-component vector of float)
0:164 'f4' ( in 4-component vector of float)
0:164 Constant:
0:164 1 (const uint)
0:168 Function Definition: arith_works(vf4; ( global void)
0:168 Function Parameters:
0:168 'f4' ( in 4-component vector of float)
0:? Sequence
0:171 subgroupAdd ( global 4-component vector of float)
0:171 'f4' ( in 4-component vector of float)
0:172 subgroupMul ( global 4-component vector of float)
0:172 'f4' ( in 4-component vector of float)
0:173 subgroupMin ( global 4-component vector of float)
0:173 'f4' ( in 4-component vector of float)
0:174 subgroupMax ( global 4-component vector of float)
0:174 'f4' ( in 4-component vector of float)
0:175 subgroupAnd ( global 4-component vector of uint)
0:175 'ballot' ( temp 4-component vector of uint)
0:176 subgroupOr ( global 4-component vector of uint)
0:176 'ballot' ( temp 4-component vector of uint)
0:177 subgroupXor ( global 4-component vector of uint)
0:177 'ballot' ( temp 4-component vector of uint)
0:178 subgroupInclusiveAdd ( global 4-component vector of float)
0:178 'f4' ( in 4-component vector of float)
0:179 subgroupInclusiveMul ( global 4-component vector of float)
0:179 'f4' ( in 4-component vector of float)
0:180 subgroupInclusiveMin ( global 4-component vector of float)
0:180 'f4' ( in 4-component vector of float)
0:181 subgroupInclusiveMax ( global 4-component vector of float)
0:181 'f4' ( in 4-component vector of float)
0:182 subgroupInclusiveAnd ( global 4-component vector of uint)
0:182 'ballot' ( temp 4-component vector of uint)
0:183 subgroupInclusiveOr ( global 4-component vector of uint)
0:183 'ballot' ( temp 4-component vector of uint)
0:184 subgroupInclusiveXor ( global 4-component vector of uint)
0:184 'ballot' ( temp 4-component vector of uint)
0:185 subgroupExclusiveAdd ( global 4-component vector of float)
0:185 'f4' ( in 4-component vector of float)
0:186 subgroupExclusiveMul ( global 4-component vector of float)
0:186 'f4' ( in 4-component vector of float)
0:187 subgroupExclusiveMin ( global 4-component vector of float)
0:187 'f4' ( in 4-component vector of float)
0:188 subgroupExclusiveMax ( global 4-component vector of float)
0:188 'f4' ( in 4-component vector of float)
0:189 subgroupExclusiveAnd ( global 4-component vector of uint)
0:189 'ballot' ( temp 4-component vector of uint)
0:190 subgroupExclusiveOr ( global 4-component vector of uint)
0:190 'ballot' ( temp 4-component vector of uint)
0:191 subgroupExclusiveXor ( global 4-component vector of uint)
0:191 'ballot' ( temp 4-component vector of uint)
0:195 Function Definition: clustered_works(vf4; ( global void)
0:195 Function Parameters:
0:195 'f4' ( in 4-component vector of float)
0:197 Sequence
0:197 Sequence
0:197 move second child to first child ( temp 4-component vector of uint)
0:197 'ballot' ( temp 4-component vector of uint)
0:197 Constant:
0:197 85 (const uint)
0:197 0 (const uint)
0:197 0 (const uint)
0:197 0 (const uint)
0:198 subgroupClusteredAdd ( global 4-component vector of float)
0:198 'f4' ( in 4-component vector of float)
0:198 Constant:
0:198 2 (const uint)
0:199 subgroupClusteredMul ( global 4-component vector of float)
0:199 'f4' ( in 4-component vector of float)
0:199 Constant:
0:199 2 (const uint)
0:200 subgroupClusteredMin ( global 4-component vector of float)
0:200 'f4' ( in 4-component vector of float)
0:200 Constant:
0:200 2 (const uint)
0:201 subgroupClusteredMax ( global 4-component vector of float)
0:201 'f4' ( in 4-component vector of float)
0:201 Constant:
0:201 2 (const uint)
0:202 subgroupClusteredAnd ( global 4-component vector of uint)
0:202 'ballot' ( temp 4-component vector of uint)
0:202 Constant:
0:202 2 (const uint)
0:203 subgroupClusteredOr ( global 4-component vector of uint)
0:203 'ballot' ( temp 4-component vector of uint)
0:203 Constant:
0:203 2 (const uint)
0:204 subgroupClusteredXor ( global 4-component vector of uint)
0:204 'ballot' ( temp 4-component vector of uint)
0:204 Constant:
0:204 2 (const uint)
0:208 Function Definition: quad_works(vf4; ( global void)
0:208 Function Parameters:
0:208 'f4' ( in 4-component vector of float)
0:210 Sequence
0:210 subgroupQuadBroadcast ( global 4-component vector of float)
0:210 'f4' ( in 4-component vector of float)
0:210 Constant:
0:210 0 (const uint)
0:211 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:211 'f4' ( in 4-component vector of float)
0:212 subgroupQuadSwapVertical ( global 4-component vector of float)
0:212 'f4' ( in 4-component vector of float)
0:213 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:213 'f4' ( in 4-component vector of float)
0:217 Function Definition: partitioned_works(vf4; ( global void)
0:217 Function Parameters:
0:217 'f4' ( in 4-component vector of float)
0:219 Sequence
0:219 Sequence
0:219 move second child to first child ( temp 4-component vector of uint)
0:219 'parti' ( temp 4-component vector of uint)
0:219 subgroupPartitionNV ( global 4-component vector of uint)
0:219 'f4' ( in 4-component vector of float)
0:220 Sequence
0:220 move second child to first child ( temp 4-component vector of uint)
0:220 'ballot' ( temp 4-component vector of uint)
0:220 Constant:
0:220 85 (const uint)
0:220 0 (const uint)
0:220 0 (const uint)
0:220 0 (const uint)
0:221 ERROR: Bad aggregation op
( global 4-component vector of float)
0:221 'f4' ( in 4-component vector of float)
0:221 'parti' ( temp 4-component vector of uint)
0:222 ERROR: Bad aggregation op
( global 4-component vector of float)
0:222 'f4' ( in 4-component vector of float)
0:222 'parti' ( temp 4-component vector of uint)
0:223 ERROR: Bad aggregation op
( global 4-component vector of float)
0:223 'f4' ( in 4-component vector of float)
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 uint)
0:225 'ballot' ( temp 4-component vector of uint)
0:225 'parti' ( temp 4-component vector of uint)
0:226 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:226 'ballot' ( temp 4-component vector of uint)
0:226 'parti' ( temp 4-component vector of uint)
0:227 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:227 'ballot' ( temp 4-component vector of uint)
0:227 'parti' ( temp 4-component vector of uint)
0:228 ERROR: Bad aggregation op
( global 4-component vector of float)
0:228 'f4' ( in 4-component vector of float)
0:228 'parti' ( temp 4-component vector of uint)
0:229 ERROR: Bad aggregation op
( global 4-component vector of float)
0:229 'f4' ( in 4-component vector of float)
0:229 'parti' ( temp 4-component vector of uint)
0:230 ERROR: Bad aggregation op
( global 4-component vector of float)
0:230 'f4' ( in 4-component vector of float)
0:230 'parti' ( temp 4-component vector of uint)
0:231 ERROR: Bad aggregation op
( global 4-component vector of float)
0:231 'f4' ( in 4-component vector of float)
0:231 'parti' ( temp 4-component vector of uint)
0:232 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:232 'ballot' ( temp 4-component vector of uint)
0:232 'parti' ( temp 4-component vector of uint)
0:233 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:233 'ballot' ( temp 4-component vector of uint)
0:233 'parti' ( temp 4-component vector of uint)
0:234 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:234 'ballot' ( temp 4-component vector of uint)
0:234 'parti' ( temp 4-component vector of uint)
0:235 ERROR: Bad aggregation op
( global 4-component vector of float)
0:235 'f4' ( in 4-component vector of float)
0:235 'parti' ( temp 4-component vector of uint)
0:236 ERROR: Bad aggregation op
( global 4-component vector of float)
0:236 'f4' ( in 4-component vector of float)
0:236 'parti' ( temp 4-component vector of uint)
0:237 ERROR: Bad aggregation op
( global 4-component vector of float)
0:237 'f4' ( in 4-component vector of float)
0:237 'parti' ( temp 4-component vector of uint)
0:238 ERROR: Bad aggregation op
( global 4-component vector of float)
0:238 'f4' ( in 4-component vector of float)
0:238 'parti' ( temp 4-component vector of uint)
0:239 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:239 'ballot' ( temp 4-component vector of uint)
0:239 'parti' ( temp 4-component vector of uint)
0:240 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:240 'ballot' ( temp 4-component vector of uint)
0:240 'parti' ( temp 4-component vector of uint)
0:241 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:241 'ballot' ( temp 4-component vector of uint)
0:241 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
Linked callable stage:
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
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 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'id' ( temp 3-component vector of uint)
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:112 Sequence
0:112 move second child to first child ( temp 3-component vector of uint)
0:112 'size' ( temp 3-component vector of uint)
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:113 move second child to first child ( temp uint)
0:113 data1: direct index for structure ( callableDataInNV uint)
0:113 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
0:113 Constant:
0:113 0 (const uint)
0:113 Constant:
0:113 256 (const uint)
0:114 executeCallableNV ( global void)
0:114 Constant:
0:114 2 (const uint)
0:114 Constant:
0:114 1 (const int)
0:? Linker Objects
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})

View File

@ -0,0 +1,846 @@
glsl.460.subgroup.rchit
ERROR: 0:7: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:8: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:22: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:23: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:24: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:25: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:26: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:131: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:132: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:142: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:143: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:144: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:145: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:146: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 93 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:4 Function Parameters:
0:4 'f4' ( in 4-component vector of float)
0:? Sequence
0:7 'gl_SubgroupSize' ( temp float)
0:8 'gl_SubgroupInvocationID' ( temp float)
0:9 subgroupBarrier ( global void)
0:10 subgroupMemoryBarrier ( global void)
0:11 subgroupMemoryBarrierBuffer ( global void)
0:12 subgroupMemoryBarrierImage ( global void)
0:13 subgroupElect ( global bool)
0:14 'gl_NumSubgroups' ( temp float)
0:15 'gl_SubgroupID' ( temp float)
0:16 Constant:
0:16 0.000000
0:18 subgroupAll ( global bool)
0:18 Constant:
0:18 true (const bool)
0:19 subgroupAny ( global bool)
0:19 Constant:
0:19 false (const bool)
0:20 subgroupAllEqual ( global bool)
0:20 'f4' ( in 4-component vector of float)
0:22 'gl_SubgroupEqMask' ( temp float)
0:23 'gl_SubgroupGeMask' ( temp float)
0:24 'gl_SubgroupGtMask' ( temp float)
0:25 'gl_SubgroupLeMask' ( temp float)
0:26 'gl_SubgroupLtMask' ( temp float)
0:27 subgroupBroadcast ( global 4-component vector of float)
0:27 'f4' ( in 4-component vector of float)
0:27 Constant:
0:27 0 (const uint)
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
0:28 'f4' ( in 4-component vector of float)
0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of uint)
0:29 'ballot' ( temp 4-component vector of uint)
0:29 subgroupBallot ( global 4-component vector of uint)
0:29 Constant:
0:29 false (const bool)
0:30 subgroupInverseBallot ( global bool)
0:30 Constant:
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:31 subgroupBallotBitExtract ( global bool)
0:31 'ballot' ( temp 4-component vector of uint)
0:31 Constant:
0:31 0 (const uint)
0:32 subgroupBallotBitCount ( global uint)
0:32 'ballot' ( temp 4-component vector of uint)
0:33 subgroupBallotInclusiveBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotExclusiveBitCount ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotFindLSB ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:36 subgroupBallotFindMSB ( global uint)
0:36 'ballot' ( temp 4-component vector of uint)
0:38 subgroupShuffle ( global 4-component vector of float)
0:38 'f4' ( in 4-component vector of float)
0:38 Constant:
0:38 0 (const uint)
0:39 subgroupShuffleXor ( 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 subgroupShuffleUp ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:41 subgroupShuffleDown ( global 4-component vector of float)
0:41 'f4' ( in 4-component vector of float)
0:41 Constant:
0:41 1 (const uint)
0:43 move second child to first child ( temp 4-component vector of float)
0:43 'result' ( temp 4-component vector of float)
0:43 subgroupAdd ( global 4-component vector of float)
0:43 'f4' ( in 4-component vector of float)
0:44 subgroupMul ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMin ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupMax ( global 4-component vector of float)
0:46 'f4' ( in 4-component vector of float)
0:47 subgroupAnd ( global 4-component vector of uint)
0:47 'ballot' ( temp 4-component vector of uint)
0:48 subgroupOr ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupXor ( global 4-component vector of uint)
0:49 'ballot' ( temp 4-component vector of uint)
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
0:50 'f4' ( in 4-component vector of float)
0:51 subgroupInclusiveMul ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMin ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveMax ( global 4-component vector of float)
0:53 'f4' ( in 4-component vector of float)
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
0:54 'ballot' ( temp 4-component vector of uint)
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
0:56 'ballot' ( temp 4-component vector of uint)
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
0:57 'f4' ( in 4-component vector of float)
0:58 subgroupExclusiveMul ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMin ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveMax ( global 4-component vector of float)
0:60 'f4' ( in 4-component vector of float)
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
0:61 'ballot' ( temp 4-component vector of uint)
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
0:63 'ballot' ( temp 4-component vector of uint)
0:65 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( 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 subgroupClusteredMax ( global 4-component vector of float)
0:68 'f4' ( in 4-component vector of float)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredAnd ( 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 subgroupClusteredOr ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:71 subgroupClusteredXor ( global 4-component vector of uint)
0:71 'ballot' ( temp 4-component vector of uint)
0:71 Constant:
0:71 2 (const uint)
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
0:73 'f4' ( in 4-component vector of float)
0:73 Constant:
0:73 0 (const uint)
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:76 'f4' ( in 4-component vector of float)
0:78 Sequence
0:78 move second child to first child ( temp 4-component vector of uint)
0:78 'parti' ( temp 4-component vector of uint)
0:78 subgroupPartitionNV ( global 4-component vector of uint)
0:78 'f4' ( in 4-component vector of float)
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 float)
0:82 'f4' ( in 4-component vector of float)
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 uint)
0:85 'ballot' ( temp 4-component vector of uint)
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 float)
0:89 'f4' ( in 4-component vector of float)
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 uint)
0:92 'ballot' ( temp 4-component vector of uint)
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 float)
0:96 'f4' ( in 4-component vector of float)
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:99 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:99 'ballot' ( temp 4-component vector of uint)
0:99 'parti' ( temp 4-component vector of uint)
0:101 Branch: Return with expression
0:101 'result' ( temp 4-component vector of float)
0:108 Function Definition: main( ( global void)
0:108 Function Parameters:
0:110 Sequence
0:110 Sequence
0:110 move second child to first child ( temp 3-component vector of uint)
0:110 'v0' ( temp 3-component vector of uint)
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:111 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'v1' ( temp 3-component vector of uint)
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:112 Sequence
0:112 move second child to first child ( temp int)
0:112 'v2' ( temp int)
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
0:113 Sequence
0:113 move second child to first child ( temp int)
0:113 'v3' ( temp int)
0:113 'gl_InstanceID' ( in int InstanceId)
0:114 Sequence
0:114 move second child to first child ( temp int)
0:114 'v4' ( temp int)
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v5' ( temp 3-component vector of float)
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v6' ( temp 3-component vector of float)
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp 3-component vector of float)
0:117 'v7' ( temp 3-component vector of float)
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:118 Sequence
0:118 move second child to first child ( temp 3-component vector of float)
0:118 'v8' ( temp 3-component vector of float)
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v9' ( temp float)
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:120 Sequence
0:120 move second child to first child ( temp float)
0:120 'v10' ( temp float)
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:121 Sequence
0:121 move second child to first child ( temp float)
0:121 'v11' ( temp float)
0:121 'gl_HitTNV' ( in float HitTNV)
0:122 Sequence
0:122 move second child to first child ( temp uint)
0:122 'v12' ( temp uint)
0:122 'gl_HitKindNV' ( in uint HitKindNV)
0:123 Sequence
0:123 move second child to first child ( temp 4X3 matrix of float)
0:123 'v13' ( temp 4X3 matrix of float)
0:123 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
0:124 Sequence
0:124 move second child to first child ( temp 4X3 matrix of float)
0:124 'v14' ( temp 4X3 matrix of float)
0:124 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
0:125 traceNV ( global void)
0:125 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:125 Constant:
0:125 0 (const uint)
0:125 Constant:
0:125 1 (const uint)
0:125 Constant:
0:125 2 (const uint)
0:125 Constant:
0:125 3 (const uint)
0:125 Constant:
0:125 0 (const uint)
0:125 Constant:
0:125 0.500000
0:125 0.500000
0:125 0.500000
0:125 Constant:
0:125 0.500000
0:125 Constant:
0:125 1.000000
0:125 1.000000
0:125 1.000000
0:125 Constant:
0:125 0.750000
0:125 Constant:
0:125 1 (const int)
0:129 Function Definition: basic_works( ( global void)
0:129 Function Parameters:
0:131 Sequence
0:131 'gl_SubgroupSize' ( temp float)
0:132 'gl_SubgroupInvocationID' ( temp float)
0:133 subgroupBarrier ( global void)
0:134 subgroupMemoryBarrier ( global void)
0:135 subgroupMemoryBarrierBuffer ( global void)
0:136 subgroupMemoryBarrierImage ( global void)
0:137 subgroupElect ( global bool)
0:141 Function Definition: ballot_works(vf4; ( global void)
0:141 Function Parameters:
0:141 'f4' ( in 4-component vector of float)
0:142 Sequence
0:142 'gl_SubgroupEqMask' ( temp float)
0:143 'gl_SubgroupGeMask' ( temp float)
0:144 'gl_SubgroupGtMask' ( temp float)
0:145 'gl_SubgroupLeMask' ( temp float)
0:146 'gl_SubgroupLtMask' ( temp float)
0:147 subgroupBroadcast ( global 4-component vector of float)
0:147 'f4' ( in 4-component vector of float)
0:147 Constant:
0:147 0 (const uint)
0:148 subgroupBroadcastFirst ( global 4-component vector of float)
0:148 'f4' ( in 4-component vector of float)
0:149 Sequence
0:149 move second child to first child ( temp 4-component vector of uint)
0:149 'ballot' ( temp 4-component vector of uint)
0:149 subgroupBallot ( global 4-component vector of uint)
0:149 Constant:
0:149 false (const bool)
0:150 subgroupInverseBallot ( global bool)
0:150 Constant:
0:150 1 (const uint)
0:150 1 (const uint)
0:150 1 (const uint)
0:150 1 (const uint)
0:151 subgroupBallotBitExtract ( global bool)
0:151 'ballot' ( temp 4-component vector of uint)
0:151 Constant:
0:151 0 (const uint)
0:152 subgroupBallotBitCount ( global uint)
0:152 'ballot' ( temp 4-component vector of uint)
0:153 subgroupBallotInclusiveBitCount ( global uint)
0:153 'ballot' ( temp 4-component vector of uint)
0:154 subgroupBallotExclusiveBitCount ( global uint)
0:154 'ballot' ( temp 4-component vector of uint)
0:155 subgroupBallotFindLSB ( global uint)
0:155 'ballot' ( temp 4-component vector of uint)
0:156 subgroupBallotFindMSB ( global uint)
0:156 'ballot' ( temp 4-component vector of uint)
0:160 Function Definition: vote_works(vf4; ( global void)
0:160 Function Parameters:
0:160 'f4' ( in 4-component vector of float)
0:162 Sequence
0:162 subgroupAll ( global bool)
0:162 Constant:
0:162 true (const bool)
0:163 subgroupAny ( global bool)
0:163 Constant:
0:163 false (const bool)
0:164 subgroupAllEqual ( global bool)
0:164 'f4' ( in 4-component vector of float)
0:169 Function Definition: shuffle_works(vf4; ( global void)
0:169 Function Parameters:
0:169 'f4' ( in 4-component vector of float)
0:171 Sequence
0:171 subgroupShuffle ( global 4-component vector of float)
0:171 'f4' ( in 4-component vector of float)
0:171 Constant:
0:171 0 (const uint)
0:172 subgroupShuffleXor ( global 4-component vector of float)
0:172 'f4' ( in 4-component vector of float)
0:172 Constant:
0:172 1 (const uint)
0:173 subgroupShuffleUp ( global 4-component vector of float)
0:173 'f4' ( in 4-component vector of float)
0:173 Constant:
0:173 1 (const uint)
0:174 subgroupShuffleDown ( global 4-component vector of float)
0:174 'f4' ( in 4-component vector of float)
0:174 Constant:
0:174 1 (const uint)
0:178 Function Definition: arith_works(vf4; ( global void)
0:178 Function Parameters:
0:178 'f4' ( in 4-component vector of float)
0:? Sequence
0:181 subgroupAdd ( global 4-component vector of float)
0:181 'f4' ( in 4-component vector of float)
0:182 subgroupMul ( global 4-component vector of float)
0:182 'f4' ( in 4-component vector of float)
0:183 subgroupMin ( global 4-component vector of float)
0:183 'f4' ( in 4-component vector of float)
0:184 subgroupMax ( global 4-component vector of float)
0:184 'f4' ( in 4-component vector of float)
0:185 subgroupAnd ( global 4-component vector of uint)
0:185 'ballot' ( temp 4-component vector of uint)
0:186 subgroupOr ( global 4-component vector of uint)
0:186 'ballot' ( temp 4-component vector of uint)
0:187 subgroupXor ( global 4-component vector of uint)
0:187 'ballot' ( temp 4-component vector of uint)
0:188 subgroupInclusiveAdd ( global 4-component vector of float)
0:188 'f4' ( in 4-component vector of float)
0:189 subgroupInclusiveMul ( global 4-component vector of float)
0:189 'f4' ( in 4-component vector of float)
0:190 subgroupInclusiveMin ( global 4-component vector of float)
0:190 'f4' ( in 4-component vector of float)
0:191 subgroupInclusiveMax ( global 4-component vector of float)
0:191 'f4' ( in 4-component vector of float)
0:192 subgroupInclusiveAnd ( global 4-component vector of uint)
0:192 'ballot' ( temp 4-component vector of uint)
0:193 subgroupInclusiveOr ( global 4-component vector of uint)
0:193 'ballot' ( temp 4-component vector of uint)
0:194 subgroupInclusiveXor ( global 4-component vector of uint)
0:194 'ballot' ( temp 4-component vector of uint)
0:195 subgroupExclusiveAdd ( global 4-component vector of float)
0:195 'f4' ( in 4-component vector of float)
0:196 subgroupExclusiveMul ( global 4-component vector of float)
0:196 'f4' ( in 4-component vector of float)
0:197 subgroupExclusiveMin ( global 4-component vector of float)
0:197 'f4' ( in 4-component vector of float)
0:198 subgroupExclusiveMax ( global 4-component vector of float)
0:198 'f4' ( in 4-component vector of float)
0:199 subgroupExclusiveAnd ( global 4-component vector of uint)
0:199 'ballot' ( temp 4-component vector of uint)
0:200 subgroupExclusiveOr ( global 4-component vector of uint)
0:200 'ballot' ( temp 4-component vector of uint)
0:201 subgroupExclusiveXor ( global 4-component vector of uint)
0:201 'ballot' ( temp 4-component vector of uint)
0:205 Function Definition: clustered_works(vf4; ( global void)
0:205 Function Parameters:
0:205 'f4' ( in 4-component vector of float)
0:207 Sequence
0:207 Sequence
0:207 move second child to first child ( temp 4-component vector of uint)
0:207 'ballot' ( temp 4-component vector of uint)
0:207 Constant:
0:207 85 (const uint)
0:207 0 (const uint)
0:207 0 (const uint)
0:207 0 (const uint)
0:208 subgroupClusteredAdd ( global 4-component vector of float)
0:208 'f4' ( in 4-component vector of float)
0:208 Constant:
0:208 2 (const uint)
0:209 subgroupClusteredMul ( global 4-component vector of float)
0:209 'f4' ( in 4-component vector of float)
0:209 Constant:
0:209 2 (const uint)
0:210 subgroupClusteredMin ( global 4-component vector of float)
0:210 'f4' ( in 4-component vector of float)
0:210 Constant:
0:210 2 (const uint)
0:211 subgroupClusteredMax ( global 4-component vector of float)
0:211 'f4' ( in 4-component vector of float)
0:211 Constant:
0:211 2 (const uint)
0:212 subgroupClusteredAnd ( global 4-component vector of uint)
0:212 'ballot' ( temp 4-component vector of uint)
0:212 Constant:
0:212 2 (const uint)
0:213 subgroupClusteredOr ( global 4-component vector of uint)
0:213 'ballot' ( temp 4-component vector of uint)
0:213 Constant:
0:213 2 (const uint)
0:214 subgroupClusteredXor ( global 4-component vector of uint)
0:214 'ballot' ( temp 4-component vector of uint)
0:214 Constant:
0:214 2 (const uint)
0:218 Function Definition: quad_works(vf4; ( global void)
0:218 Function Parameters:
0:218 'f4' ( in 4-component vector of float)
0:220 Sequence
0:220 subgroupQuadBroadcast ( global 4-component vector of float)
0:220 'f4' ( in 4-component vector of float)
0:220 Constant:
0:220 0 (const uint)
0:221 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:221 'f4' ( in 4-component vector of float)
0:222 subgroupQuadSwapVertical ( global 4-component vector of float)
0:222 'f4' ( in 4-component vector of float)
0:223 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:223 'f4' ( in 4-component vector of float)
0:227 Function Definition: partitioned_works(vf4; ( global void)
0:227 Function Parameters:
0:227 'f4' ( in 4-component vector of float)
0:229 Sequence
0:229 Sequence
0:229 move second child to first child ( temp 4-component vector of uint)
0:229 'parti' ( temp 4-component vector of uint)
0:229 subgroupPartitionNV ( global 4-component vector of uint)
0:229 'f4' ( in 4-component vector of float)
0:230 Sequence
0:230 move second child to first child ( temp 4-component vector of uint)
0:230 'ballot' ( temp 4-component vector of uint)
0:230 Constant:
0:230 85 (const uint)
0:230 0 (const uint)
0:230 0 (const uint)
0:230 0 (const uint)
0:231 ERROR: Bad aggregation op
( global 4-component vector of float)
0:231 'f4' ( in 4-component vector of float)
0:231 'parti' ( temp 4-component vector of uint)
0:232 ERROR: Bad aggregation op
( global 4-component vector of float)
0:232 'f4' ( in 4-component vector of float)
0:232 'parti' ( temp 4-component vector of uint)
0:233 ERROR: Bad aggregation op
( global 4-component vector of float)
0:233 'f4' ( in 4-component vector of float)
0:233 'parti' ( temp 4-component vector of uint)
0:234 ERROR: Bad aggregation op
( global 4-component vector of float)
0:234 'f4' ( in 4-component vector of float)
0:234 'parti' ( temp 4-component vector of uint)
0:235 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:235 'ballot' ( temp 4-component vector of uint)
0:235 'parti' ( temp 4-component vector of uint)
0:236 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:236 'ballot' ( temp 4-component vector of uint)
0:236 'parti' ( temp 4-component vector of uint)
0:237 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:237 'ballot' ( temp 4-component vector of uint)
0:237 'parti' ( temp 4-component vector of uint)
0:238 ERROR: Bad aggregation op
( global 4-component vector of float)
0:238 'f4' ( in 4-component vector of float)
0:238 'parti' ( temp 4-component vector of uint)
0:239 ERROR: Bad aggregation op
( global 4-component vector of float)
0:239 'f4' ( in 4-component vector of float)
0:239 'parti' ( temp 4-component vector of uint)
0:240 ERROR: Bad aggregation op
( global 4-component vector of float)
0:240 'f4' ( in 4-component vector of float)
0:240 'parti' ( temp 4-component vector of uint)
0:241 ERROR: Bad aggregation op
( global 4-component vector of float)
0:241 'f4' ( in 4-component vector of float)
0:241 'parti' ( temp 4-component vector of uint)
0:242 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:242 'ballot' ( temp 4-component vector of uint)
0:242 'parti' ( temp 4-component vector of uint)
0:243 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:243 'ballot' ( temp 4-component vector of uint)
0:243 'parti' ( temp 4-component vector of uint)
0:244 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:244 'ballot' ( temp 4-component vector of uint)
0:244 'parti' ( temp 4-component vector of uint)
0:245 ERROR: Bad aggregation op
( global 4-component vector of float)
0:245 'f4' ( in 4-component vector of float)
0:245 'parti' ( temp 4-component vector of uint)
0:246 ERROR: Bad aggregation op
( global 4-component vector of float)
0:246 'f4' ( in 4-component vector of float)
0:246 'parti' ( temp 4-component vector of uint)
0:247 ERROR: Bad aggregation op
( global 4-component vector of float)
0:247 'f4' ( in 4-component vector of float)
0:247 'parti' ( temp 4-component vector of uint)
0:248 ERROR: Bad aggregation op
( global 4-component vector of float)
0:248 'f4' ( in 4-component vector of float)
0:248 'parti' ( temp 4-component vector of uint)
0:249 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:249 'ballot' ( temp 4-component vector of uint)
0:249 'parti' ( temp 4-component vector of uint)
0:250 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:250 'ballot' ( temp 4-component vector of uint)
0:250 'parti' ( temp 4-component vector of uint)
0:251 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:251 'ballot' ( temp 4-component vector of uint)
0:251 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
Linked closest-hit stage:
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:108 Function Definition: main( ( global void)
0:108 Function Parameters:
0:110 Sequence
0:110 Sequence
0:110 move second child to first child ( temp 3-component vector of uint)
0:110 'v0' ( temp 3-component vector of uint)
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:111 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'v1' ( temp 3-component vector of uint)
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:112 Sequence
0:112 move second child to first child ( temp int)
0:112 'v2' ( temp int)
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
0:113 Sequence
0:113 move second child to first child ( temp int)
0:113 'v3' ( temp int)
0:113 'gl_InstanceID' ( in int InstanceId)
0:114 Sequence
0:114 move second child to first child ( temp int)
0:114 'v4' ( temp int)
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v5' ( temp 3-component vector of float)
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v6' ( temp 3-component vector of float)
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp 3-component vector of float)
0:117 'v7' ( temp 3-component vector of float)
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:118 Sequence
0:118 move second child to first child ( temp 3-component vector of float)
0:118 'v8' ( temp 3-component vector of float)
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v9' ( temp float)
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:120 Sequence
0:120 move second child to first child ( temp float)
0:120 'v10' ( temp float)
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:121 Sequence
0:121 move second child to first child ( temp float)
0:121 'v11' ( temp float)
0:121 'gl_HitTNV' ( in float HitTNV)
0:122 Sequence
0:122 move second child to first child ( temp uint)
0:122 'v12' ( temp uint)
0:122 'gl_HitKindNV' ( in uint HitKindNV)
0:123 Sequence
0:123 move second child to first child ( temp 4X3 matrix of float)
0:123 'v13' ( temp 4X3 matrix of float)
0:123 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
0:124 Sequence
0:124 move second child to first child ( temp 4X3 matrix of float)
0:124 'v14' ( temp 4X3 matrix of float)
0:124 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
0:125 traceNV ( global void)
0:125 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:125 Constant:
0:125 0 (const uint)
0:125 Constant:
0:125 1 (const uint)
0:125 Constant:
0:125 2 (const uint)
0:125 Constant:
0:125 3 (const uint)
0:125 Constant:
0:125 0 (const uint)
0:125 Constant:
0:125 0.500000
0:125 0.500000
0:125 0.500000
0:125 Constant:
0:125 0.500000
0:125 Constant:
0:125 1.000000
0:125 1.000000
0:125 1.000000
0:125 Constant:
0:125 0.750000
0:125 Constant:
0:125 1 (const int)
0:? Linker Objects
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)

View File

@ -0,0 +1,776 @@
glsl.460.subgroup.rgen
ERROR: 0:7: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:8: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:22: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:23: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:24: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:25: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:26: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:125: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:126: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:136: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:137: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:138: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:139: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:140: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 93 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:4 Function Parameters:
0:4 'f4' ( in 4-component vector of float)
0:? Sequence
0:7 'gl_SubgroupSize' ( temp float)
0:8 'gl_SubgroupInvocationID' ( temp float)
0:9 subgroupBarrier ( global void)
0:10 subgroupMemoryBarrier ( global void)
0:11 subgroupMemoryBarrierBuffer ( global void)
0:12 subgroupMemoryBarrierImage ( global void)
0:13 subgroupElect ( global bool)
0:14 'gl_NumSubgroups' ( temp float)
0:15 'gl_SubgroupID' ( temp float)
0:16 Constant:
0:16 0.000000
0:18 subgroupAll ( global bool)
0:18 Constant:
0:18 true (const bool)
0:19 subgroupAny ( global bool)
0:19 Constant:
0:19 false (const bool)
0:20 subgroupAllEqual ( global bool)
0:20 'f4' ( in 4-component vector of float)
0:22 'gl_SubgroupEqMask' ( temp float)
0:23 'gl_SubgroupGeMask' ( temp float)
0:24 'gl_SubgroupGtMask' ( temp float)
0:25 'gl_SubgroupLeMask' ( temp float)
0:26 'gl_SubgroupLtMask' ( temp float)
0:27 subgroupBroadcast ( global 4-component vector of float)
0:27 'f4' ( in 4-component vector of float)
0:27 Constant:
0:27 0 (const uint)
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
0:28 'f4' ( in 4-component vector of float)
0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of uint)
0:29 'ballot' ( temp 4-component vector of uint)
0:29 subgroupBallot ( global 4-component vector of uint)
0:29 Constant:
0:29 false (const bool)
0:30 subgroupInverseBallot ( global bool)
0:30 Constant:
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:30 1 (const uint)
0:31 subgroupBallotBitExtract ( global bool)
0:31 'ballot' ( temp 4-component vector of uint)
0:31 Constant:
0:31 0 (const uint)
0:32 subgroupBallotBitCount ( global uint)
0:32 'ballot' ( temp 4-component vector of uint)
0:33 subgroupBallotInclusiveBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotExclusiveBitCount ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotFindLSB ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:36 subgroupBallotFindMSB ( global uint)
0:36 'ballot' ( temp 4-component vector of uint)
0:38 subgroupShuffle ( global 4-component vector of float)
0:38 'f4' ( in 4-component vector of float)
0:38 Constant:
0:38 0 (const uint)
0:39 subgroupShuffleXor ( 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 subgroupShuffleUp ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:41 subgroupShuffleDown ( global 4-component vector of float)
0:41 'f4' ( in 4-component vector of float)
0:41 Constant:
0:41 1 (const uint)
0:43 move second child to first child ( temp 4-component vector of float)
0:43 'result' ( temp 4-component vector of float)
0:43 subgroupAdd ( global 4-component vector of float)
0:43 'f4' ( in 4-component vector of float)
0:44 subgroupMul ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMin ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupMax ( global 4-component vector of float)
0:46 'f4' ( in 4-component vector of float)
0:47 subgroupAnd ( global 4-component vector of uint)
0:47 'ballot' ( temp 4-component vector of uint)
0:48 subgroupOr ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupXor ( global 4-component vector of uint)
0:49 'ballot' ( temp 4-component vector of uint)
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
0:50 'f4' ( in 4-component vector of float)
0:51 subgroupInclusiveMul ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMin ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveMax ( global 4-component vector of float)
0:53 'f4' ( in 4-component vector of float)
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
0:54 'ballot' ( temp 4-component vector of uint)
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
0:56 'ballot' ( temp 4-component vector of uint)
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
0:57 'f4' ( in 4-component vector of float)
0:58 subgroupExclusiveMul ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMin ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveMax ( global 4-component vector of float)
0:60 'f4' ( in 4-component vector of float)
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
0:61 'ballot' ( temp 4-component vector of uint)
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
0:63 'ballot' ( temp 4-component vector of uint)
0:65 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( 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 subgroupClusteredMax ( global 4-component vector of float)
0:68 'f4' ( in 4-component vector of float)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredAnd ( 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 subgroupClusteredOr ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:71 subgroupClusteredXor ( global 4-component vector of uint)
0:71 'ballot' ( temp 4-component vector of uint)
0:71 Constant:
0:71 2 (const uint)
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
0:73 'f4' ( in 4-component vector of float)
0:73 Constant:
0:73 0 (const uint)
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:76 'f4' ( in 4-component vector of float)
0:78 Sequence
0:78 move second child to first child ( temp 4-component vector of uint)
0:78 'parti' ( temp 4-component vector of uint)
0:78 subgroupPartitionNV ( global 4-component vector of uint)
0:78 'f4' ( in 4-component vector of float)
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 float)
0:82 'f4' ( in 4-component vector of float)
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 uint)
0:85 'ballot' ( temp 4-component vector of uint)
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 float)
0:89 'f4' ( in 4-component vector of float)
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 uint)
0:92 'ballot' ( temp 4-component vector of uint)
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 float)
0:96 'f4' ( in 4-component vector of float)
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:99 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:99 'ballot' ( temp 4-component vector of uint)
0:99 'parti' ( temp 4-component vector of uint)
0:101 Branch: Return with expression
0:101 'result' ( temp 4-component vector of float)
0:113 Function Definition: main( ( global void)
0:113 Function Parameters:
0:115 Sequence
0:115 Sequence
0:115 move second child to first child ( temp uint)
0:115 'lx' ( temp uint)
0:115 direct index ( temp uint)
0:115 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:115 Constant:
0:115 0 (const int)
0:116 Sequence
0:116 move second child to first child ( temp uint)
0:116 'ly' ( temp uint)
0:116 direct index ( temp uint)
0:116 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:116 Constant:
0:116 1 (const int)
0:117 Sequence
0:117 move second child to first child ( temp uint)
0:117 'sx' ( temp uint)
0:117 direct index ( temp uint)
0:117 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:117 Constant:
0:117 0 (const int)
0:118 Sequence
0:118 move second child to first child ( temp uint)
0:118 'sy' ( temp uint)
0:118 direct index ( temp uint)
0:118 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:118 Constant:
0:118 1 (const int)
0:119 traceNV ( global void)
0:119 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:119 'lx' ( temp uint)
0:119 'ly' ( temp uint)
0:119 'sx' ( temp uint)
0:119 'sy' ( temp uint)
0:119 Constant:
0:119 0 (const uint)
0:119 origin: direct index for structure (layout( column_major std430 offset=16) buffer 3-component vector of float)
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
0:119 Constant:
0:119 1 (const uint)
0:119 Constant:
0:119 0.500000
0:119 dir: direct index for structure (layout( column_major std430 offset=0) buffer 3-component vector of float)
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
0:119 Constant:
0:119 0 (const uint)
0:119 Constant:
0:119 0.750000
0:119 Constant:
0:119 1 (const int)
0:123 Function Definition: basic_works( ( global void)
0:123 Function Parameters:
0:125 Sequence
0:125 'gl_SubgroupSize' ( temp float)
0:126 'gl_SubgroupInvocationID' ( temp float)
0:127 subgroupBarrier ( global void)
0:128 subgroupMemoryBarrier ( global void)
0:129 subgroupMemoryBarrierBuffer ( global void)
0:130 subgroupMemoryBarrierImage ( global void)
0:131 subgroupElect ( global bool)
0:135 Function Definition: ballot_works(vf4; ( global void)
0:135 Function Parameters:
0:135 'f4' ( in 4-component vector of float)
0:136 Sequence
0:136 'gl_SubgroupEqMask' ( temp float)
0:137 'gl_SubgroupGeMask' ( temp float)
0:138 'gl_SubgroupGtMask' ( temp float)
0:139 'gl_SubgroupLeMask' ( temp float)
0:140 'gl_SubgroupLtMask' ( temp float)
0:141 subgroupBroadcast ( global 4-component vector of float)
0:141 'f4' ( in 4-component vector of float)
0:141 Constant:
0:141 0 (const uint)
0:142 subgroupBroadcastFirst ( global 4-component vector of float)
0:142 'f4' ( in 4-component vector of float)
0:143 Sequence
0:143 move second child to first child ( temp 4-component vector of uint)
0:143 'ballot' ( temp 4-component vector of uint)
0:143 subgroupBallot ( global 4-component vector of uint)
0:143 Constant:
0:143 false (const bool)
0:144 subgroupInverseBallot ( global bool)
0:144 Constant:
0:144 1 (const uint)
0:144 1 (const uint)
0:144 1 (const uint)
0:144 1 (const uint)
0:145 subgroupBallotBitExtract ( global bool)
0:145 'ballot' ( temp 4-component vector of uint)
0:145 Constant:
0:145 0 (const uint)
0:146 subgroupBallotBitCount ( global uint)
0:146 'ballot' ( temp 4-component vector of uint)
0:147 subgroupBallotInclusiveBitCount ( global uint)
0:147 'ballot' ( temp 4-component vector of uint)
0:148 subgroupBallotExclusiveBitCount ( global uint)
0:148 'ballot' ( temp 4-component vector of uint)
0:149 subgroupBallotFindLSB ( global uint)
0:149 'ballot' ( temp 4-component vector of uint)
0:150 subgroupBallotFindMSB ( global uint)
0:150 'ballot' ( temp 4-component vector of uint)
0:154 Function Definition: vote_works(vf4; ( global void)
0:154 Function Parameters:
0:154 'f4' ( in 4-component vector of float)
0:156 Sequence
0:156 subgroupAll ( global bool)
0:156 Constant:
0:156 true (const bool)
0:157 subgroupAny ( global bool)
0:157 Constant:
0:157 false (const bool)
0:158 subgroupAllEqual ( global bool)
0:158 'f4' ( in 4-component vector of float)
0:163 Function Definition: shuffle_works(vf4; ( global void)
0:163 Function Parameters:
0:163 'f4' ( in 4-component vector of float)
0:165 Sequence
0:165 subgroupShuffle ( global 4-component vector of float)
0:165 'f4' ( in 4-component vector of float)
0:165 Constant:
0:165 0 (const uint)
0:166 subgroupShuffleXor ( global 4-component vector of float)
0:166 'f4' ( in 4-component vector of float)
0:166 Constant:
0:166 1 (const uint)
0:167 subgroupShuffleUp ( global 4-component vector of float)
0:167 'f4' ( in 4-component vector of float)
0:167 Constant:
0:167 1 (const uint)
0:168 subgroupShuffleDown ( global 4-component vector of float)
0:168 'f4' ( in 4-component vector of float)
0:168 Constant:
0:168 1 (const uint)
0:172 Function Definition: arith_works(vf4; ( global void)
0:172 Function Parameters:
0:172 'f4' ( in 4-component vector of float)
0:? Sequence
0:175 subgroupAdd ( global 4-component vector of float)
0:175 'f4' ( in 4-component vector of float)
0:176 subgroupMul ( global 4-component vector of float)
0:176 'f4' ( in 4-component vector of float)
0:177 subgroupMin ( global 4-component vector of float)
0:177 'f4' ( in 4-component vector of float)
0:178 subgroupMax ( global 4-component vector of float)
0:178 'f4' ( in 4-component vector of float)
0:179 subgroupAnd ( global 4-component vector of uint)
0:179 'ballot' ( temp 4-component vector of uint)
0:180 subgroupOr ( global 4-component vector of uint)
0:180 'ballot' ( temp 4-component vector of uint)
0:181 subgroupXor ( global 4-component vector of uint)
0:181 'ballot' ( temp 4-component vector of uint)
0:182 subgroupInclusiveAdd ( global 4-component vector of float)
0:182 'f4' ( in 4-component vector of float)
0:183 subgroupInclusiveMul ( global 4-component vector of float)
0:183 'f4' ( in 4-component vector of float)
0:184 subgroupInclusiveMin ( global 4-component vector of float)
0:184 'f4' ( in 4-component vector of float)
0:185 subgroupInclusiveMax ( global 4-component vector of float)
0:185 'f4' ( in 4-component vector of float)
0:186 subgroupInclusiveAnd ( global 4-component vector of uint)
0:186 'ballot' ( temp 4-component vector of uint)
0:187 subgroupInclusiveOr ( global 4-component vector of uint)
0:187 'ballot' ( temp 4-component vector of uint)
0:188 subgroupInclusiveXor ( global 4-component vector of uint)
0:188 'ballot' ( temp 4-component vector of uint)
0:189 subgroupExclusiveAdd ( global 4-component vector of float)
0:189 'f4' ( in 4-component vector of float)
0:190 subgroupExclusiveMul ( global 4-component vector of float)
0:190 'f4' ( in 4-component vector of float)
0:191 subgroupExclusiveMin ( global 4-component vector of float)
0:191 'f4' ( in 4-component vector of float)
0:192 subgroupExclusiveMax ( global 4-component vector of float)
0:192 'f4' ( in 4-component vector of float)
0:193 subgroupExclusiveAnd ( global 4-component vector of uint)
0:193 'ballot' ( temp 4-component vector of uint)
0:194 subgroupExclusiveOr ( global 4-component vector of uint)
0:194 'ballot' ( temp 4-component vector of uint)
0:195 subgroupExclusiveXor ( global 4-component vector of uint)
0:195 'ballot' ( temp 4-component vector of uint)
0:199 Function Definition: clustered_works(vf4; ( global void)
0:199 Function Parameters:
0:199 'f4' ( in 4-component vector of float)
0:201 Sequence
0:201 Sequence
0:201 move second child to first child ( temp 4-component vector of uint)
0:201 'ballot' ( temp 4-component vector of uint)
0:201 Constant:
0:201 85 (const uint)
0:201 0 (const uint)
0:201 0 (const uint)
0:201 0 (const uint)
0:202 subgroupClusteredAdd ( global 4-component vector of float)
0:202 'f4' ( in 4-component vector of float)
0:202 Constant:
0:202 2 (const uint)
0:203 subgroupClusteredMul ( global 4-component vector of float)
0:203 'f4' ( in 4-component vector of float)
0:203 Constant:
0:203 2 (const uint)
0:204 subgroupClusteredMin ( global 4-component vector of float)
0:204 'f4' ( in 4-component vector of float)
0:204 Constant:
0:204 2 (const uint)
0:205 subgroupClusteredMax ( global 4-component vector of float)
0:205 'f4' ( in 4-component vector of float)
0:205 Constant:
0:205 2 (const uint)
0:206 subgroupClusteredAnd ( global 4-component vector of uint)
0:206 'ballot' ( temp 4-component vector of uint)
0:206 Constant:
0:206 2 (const uint)
0:207 subgroupClusteredOr ( global 4-component vector of uint)
0:207 'ballot' ( temp 4-component vector of uint)
0:207 Constant:
0:207 2 (const uint)
0:208 subgroupClusteredXor ( global 4-component vector of uint)
0:208 'ballot' ( temp 4-component vector of uint)
0:208 Constant:
0:208 2 (const uint)
0:212 Function Definition: quad_works(vf4; ( global void)
0:212 Function Parameters:
0:212 'f4' ( in 4-component vector of float)
0:214 Sequence
0:214 subgroupQuadBroadcast ( global 4-component vector of float)
0:214 'f4' ( in 4-component vector of float)
0:214 Constant:
0:214 0 (const uint)
0:215 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:215 'f4' ( in 4-component vector of float)
0:216 subgroupQuadSwapVertical ( global 4-component vector of float)
0:216 'f4' ( in 4-component vector of float)
0:217 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:217 'f4' ( in 4-component vector of float)
0:221 Function Definition: partitioned_works(vf4; ( global void)
0:221 Function Parameters:
0:221 'f4' ( in 4-component vector of float)
0:223 Sequence
0:223 Sequence
0:223 move second child to first child ( temp 4-component vector of uint)
0:223 'parti' ( temp 4-component vector of uint)
0:223 subgroupPartitionNV ( global 4-component vector of uint)
0:223 'f4' ( in 4-component vector of float)
0:224 Sequence
0:224 move second child to first child ( temp 4-component vector of uint)
0:224 'ballot' ( temp 4-component vector of uint)
0:224 Constant:
0:224 85 (const uint)
0:224 0 (const uint)
0:224 0 (const uint)
0:224 0 (const 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 float)
0:228 'f4' ( in 4-component vector of float)
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:231 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:231 'ballot' ( temp 4-component vector of uint)
0:231 'parti' ( temp 4-component vector of uint)
0:232 ERROR: Bad aggregation op
( global 4-component vector of float)
0:232 'f4' ( in 4-component vector of float)
0:232 'parti' ( temp 4-component vector of uint)
0:233 ERROR: Bad aggregation op
( global 4-component vector of float)
0:233 'f4' ( in 4-component vector of float)
0:233 'parti' ( temp 4-component vector of uint)
0:234 ERROR: Bad aggregation op
( global 4-component vector of float)
0:234 'f4' ( in 4-component vector of float)
0:234 'parti' ( temp 4-component vector of uint)
0:235 ERROR: Bad aggregation op
( global 4-component vector of float)
0:235 'f4' ( in 4-component vector of float)
0:235 'parti' ( temp 4-component vector of uint)
0:236 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:236 'ballot' ( temp 4-component vector of uint)
0:236 'parti' ( temp 4-component vector of uint)
0:237 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:237 'ballot' ( temp 4-component vector of uint)
0:237 'parti' ( temp 4-component vector of uint)
0:238 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:238 'ballot' ( temp 4-component vector of uint)
0:238 'parti' ( temp 4-component vector of uint)
0:239 ERROR: Bad aggregation op
( global 4-component vector of float)
0:239 'f4' ( in 4-component vector of float)
0:239 'parti' ( temp 4-component vector of uint)
0:240 ERROR: Bad aggregation op
( global 4-component vector of float)
0:240 'f4' ( in 4-component vector of float)
0:240 'parti' ( temp 4-component vector of uint)
0:241 ERROR: Bad aggregation op
( global 4-component vector of float)
0:241 'f4' ( in 4-component vector of float)
0:241 'parti' ( temp 4-component vector of uint)
0:242 ERROR: Bad aggregation op
( global 4-component vector of float)
0:242 'f4' ( in 4-component vector of float)
0:242 'parti' ( temp 4-component vector of uint)
0:243 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:243 'ballot' ( temp 4-component vector of uint)
0:243 'parti' ( temp 4-component vector of uint)
0:244 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:244 'ballot' ( temp 4-component vector of uint)
0:244 'parti' ( temp 4-component vector of uint)
0:245 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:245 'ballot' ( temp 4-component vector of uint)
0:245 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
0:? 'payload' (layout( location=0) rayPayloadNV 4-component vector of float)
0:? 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
Linked ray-generation stage:
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:113 Function Definition: main( ( global void)
0:113 Function Parameters:
0:115 Sequence
0:115 Sequence
0:115 move second child to first child ( temp uint)
0:115 'lx' ( temp uint)
0:115 direct index ( temp uint)
0:115 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:115 Constant:
0:115 0 (const int)
0:116 Sequence
0:116 move second child to first child ( temp uint)
0:116 'ly' ( temp uint)
0:116 direct index ( temp uint)
0:116 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:116 Constant:
0:116 1 (const int)
0:117 Sequence
0:117 move second child to first child ( temp uint)
0:117 'sx' ( temp uint)
0:117 direct index ( temp uint)
0:117 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:117 Constant:
0:117 0 (const int)
0:118 Sequence
0:118 move second child to first child ( temp uint)
0:118 'sy' ( temp uint)
0:118 direct index ( temp uint)
0:118 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:118 Constant:
0:118 1 (const int)
0:119 traceNV ( global void)
0:119 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:119 'lx' ( temp uint)
0:119 'ly' ( temp uint)
0:119 'sx' ( temp uint)
0:119 'sy' ( temp uint)
0:119 Constant:
0:119 0 (const uint)
0:119 origin: direct index for structure (layout( column_major std430 offset=16) buffer 3-component vector of float)
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
0:119 Constant:
0:119 1 (const uint)
0:119 Constant:
0:119 0.500000
0:119 dir: direct index for structure (layout( column_major std430 offset=0) buffer 3-component vector of float)
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
0:119 Constant:
0:119 0 (const uint)
0:119 Constant:
0:119 0.750000
0:119 Constant:
0:119 1 (const int)
0:? Linker Objects
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
0:? 'payload' (layout( location=0) rayPayloadNV 4-component vector of float)
0:? 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})

View File

@ -0,0 +1,798 @@
glsl.460.subgroup.rint
ERROR: 0:8: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:9: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:10: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:14: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:15: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:16: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:17: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:19: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:20: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:21: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:23: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:24: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:25: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:26: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:27: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 0:28: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:36: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:37: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:39: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:40: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:41: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:42: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:44: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:63: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:64: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:66: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:71: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:72: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:74: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:76: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:77: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:79: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:131: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:132: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:142: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:143: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:144: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:145: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:146: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 93 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:5 Function Parameters:
0:5 'f4' ( in 4-component vector of float)
0:? Sequence
0:8 'gl_SubgroupSize' ( temp float)
0:9 'gl_SubgroupInvocationID' ( temp float)
0:10 subgroupBarrier ( global void)
0:11 subgroupMemoryBarrier ( global void)
0:12 subgroupMemoryBarrierBuffer ( global void)
0:13 subgroupMemoryBarrierImage ( global void)
0:14 subgroupElect ( global bool)
0:15 'gl_NumSubgroups' ( temp float)
0:16 'gl_SubgroupID' ( temp float)
0:17 Constant:
0:17 0.000000
0:19 subgroupAll ( global bool)
0:19 Constant:
0:19 true (const bool)
0:20 subgroupAny ( global bool)
0:20 Constant:
0:20 false (const bool)
0:21 subgroupAllEqual ( global bool)
0:21 'f4' ( in 4-component vector of float)
0:23 'gl_SubgroupEqMask' ( temp float)
0:24 'gl_SubgroupGeMask' ( temp float)
0:25 'gl_SubgroupGtMask' ( temp float)
0:26 'gl_SubgroupLeMask' ( temp float)
0:27 'gl_SubgroupLtMask' ( temp float)
0:28 subgroupBroadcast ( global 4-component vector of float)
0:28 'f4' ( in 4-component vector of float)
0:28 Constant:
0:28 0 (const uint)
0:29 subgroupBroadcastFirst ( global 4-component vector of float)
0:29 'f4' ( in 4-component vector of float)
0:30 Sequence
0:30 move second child to first child ( temp 4-component vector of uint)
0:30 'ballot' ( temp 4-component vector of uint)
0:30 subgroupBallot ( global 4-component vector of uint)
0:30 Constant:
0:30 false (const bool)
0:31 subgroupInverseBallot ( global bool)
0:31 Constant:
0:31 1 (const uint)
0:31 1 (const uint)
0:31 1 (const uint)
0:31 1 (const uint)
0:32 subgroupBallotBitExtract ( global bool)
0:32 'ballot' ( temp 4-component vector of uint)
0:32 Constant:
0:32 0 (const uint)
0:33 subgroupBallotBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotInclusiveBitCount ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotExclusiveBitCount ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:36 subgroupBallotFindLSB ( global uint)
0:36 'ballot' ( temp 4-component vector of uint)
0:37 subgroupBallotFindMSB ( global uint)
0:37 'ballot' ( temp 4-component vector of uint)
0:39 subgroupShuffle ( global 4-component vector of float)
0:39 'f4' ( in 4-component vector of float)
0:39 Constant:
0:39 0 (const uint)
0:40 subgroupShuffleXor ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:41 subgroupShuffleUp ( global 4-component vector of float)
0:41 'f4' ( in 4-component vector of float)
0:41 Constant:
0:41 1 (const uint)
0:42 subgroupShuffleDown ( global 4-component vector of float)
0:42 'f4' ( in 4-component vector of float)
0:42 Constant:
0:42 1 (const uint)
0:44 move second child to first child ( temp 4-component vector of float)
0:44 'result' ( temp 4-component vector of float)
0:44 subgroupAdd ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMul ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupMin ( global 4-component vector of float)
0:46 'f4' ( in 4-component vector of float)
0:47 subgroupMax ( global 4-component vector of float)
0:47 'f4' ( in 4-component vector of float)
0:48 subgroupAnd ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupOr ( global 4-component vector of uint)
0:49 'ballot' ( temp 4-component vector of uint)
0:50 subgroupXor ( global 4-component vector of uint)
0:50 'ballot' ( temp 4-component vector of uint)
0:51 subgroupInclusiveAdd ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMul ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveMin ( global 4-component vector of float)
0:53 'f4' ( in 4-component vector of float)
0:54 subgroupInclusiveMax ( global 4-component vector of float)
0:54 'f4' ( in 4-component vector of float)
0:55 subgroupInclusiveAnd ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupInclusiveOr ( global 4-component vector of uint)
0:56 'ballot' ( temp 4-component vector of uint)
0:57 subgroupInclusiveXor ( global 4-component vector of uint)
0:57 'ballot' ( temp 4-component vector of uint)
0:58 subgroupExclusiveAdd ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMul ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveMin ( global 4-component vector of float)
0:60 'f4' ( in 4-component vector of float)
0:61 subgroupExclusiveMax ( global 4-component vector of float)
0:61 'f4' ( in 4-component vector of float)
0:62 subgroupExclusiveAnd ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:63 subgroupExclusiveOr ( global 4-component vector of uint)
0:63 'ballot' ( temp 4-component vector of uint)
0:64 subgroupExclusiveXor ( global 4-component vector of uint)
0:64 'ballot' ( temp 4-component vector of uint)
0:66 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( global 4-component vector of float)
0:68 'f4' ( in 4-component vector of float)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredMax ( global 4-component vector of float)
0:69 'f4' ( in 4-component vector of float)
0:69 Constant:
0:69 2 (const uint)
0:70 subgroupClusteredAnd ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:71 subgroupClusteredOr ( global 4-component vector of uint)
0:71 'ballot' ( temp 4-component vector of uint)
0:71 Constant:
0:71 2 (const uint)
0:72 subgroupClusteredXor ( global 4-component vector of uint)
0:72 'ballot' ( temp 4-component vector of uint)
0:72 Constant:
0:72 2 (const uint)
0:74 subgroupQuadBroadcast ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:74 Constant:
0:74 0 (const uint)
0:75 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:76 subgroupQuadSwapVertical ( global 4-component vector of float)
0:76 'f4' ( in 4-component vector of float)
0:77 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:77 'f4' ( in 4-component vector of float)
0:79 Sequence
0:79 move second child to first child ( temp 4-component vector of uint)
0:79 'parti' ( temp 4-component vector of uint)
0:79 subgroupPartitionNV ( global 4-component vector of uint)
0:79 'f4' ( in 4-component vector of float)
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 float)
0:82 'f4' ( in 4-component vector of float)
0:82 'parti' ( temp 4-component vector of uint)
0:83 ERROR: Bad aggregation op
( global 4-component vector of float)
0:83 'f4' ( in 4-component vector of float)
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 uint)
0:85 'ballot' ( temp 4-component vector of uint)
0:85 'parti' ( temp 4-component vector of uint)
0:86 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:86 'ballot' ( temp 4-component vector of uint)
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 float)
0:89 'f4' ( in 4-component vector of float)
0:89 'parti' ( temp 4-component vector of uint)
0:90 ERROR: Bad aggregation op
( global 4-component vector of float)
0:90 'f4' ( in 4-component vector of float)
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 uint)
0:92 'ballot' ( temp 4-component vector of uint)
0:92 'parti' ( temp 4-component vector of uint)
0:93 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:93 'ballot' ( temp 4-component vector of uint)
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 float)
0:96 'f4' ( in 4-component vector of float)
0:96 'parti' ( temp 4-component vector of uint)
0:97 ERROR: Bad aggregation op
( global 4-component vector of float)
0:97 'f4' ( in 4-component vector of float)
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:99 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:99 'ballot' ( temp 4-component vector of uint)
0:99 'parti' ( temp 4-component vector of uint)
0:100 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:100 'ballot' ( temp 4-component vector of uint)
0:100 'parti' ( temp 4-component vector of uint)
0:102 Branch: Return with expression
0:102 'result' ( temp 4-component vector of float)
0:108 Function Definition: main( ( global void)
0:108 Function Parameters:
0:110 Sequence
0:110 Sequence
0:110 move second child to first child ( temp 3-component vector of uint)
0:110 'v0' ( temp 3-component vector of uint)
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:111 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'v1' ( temp 3-component vector of uint)
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:112 Sequence
0:112 move second child to first child ( temp int)
0:112 'v2' ( temp int)
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
0:113 Sequence
0:113 move second child to first child ( temp int)
0:113 'v3' ( temp int)
0:113 'gl_InstanceID' ( in int InstanceId)
0:114 Sequence
0:114 move second child to first child ( temp int)
0:114 'v4' ( temp int)
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v5' ( temp 3-component vector of float)
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v6' ( temp 3-component vector of float)
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp 3-component vector of float)
0:117 'v7' ( temp 3-component vector of float)
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:118 Sequence
0:118 move second child to first child ( temp 3-component vector of float)
0:118 'v8' ( temp 3-component vector of float)
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v9' ( temp float)
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:120 Sequence
0:120 move second child to first child ( temp float)
0:120 'v10' ( temp float)
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:121 Sequence
0:121 move second child to first child ( temp 4X3 matrix of float)
0:121 'v11' ( temp 4X3 matrix of float)
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
0:122 Sequence
0:122 move second child to first child ( temp 4X3 matrix of float)
0:122 'v12' ( temp 4X3 matrix of float)
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
0:123 move second child to first child ( temp 4-component vector of float)
0:123 'iAttr' ( hitAttributeNV 4-component vector of float)
0:123 Constant:
0:123 0.500000
0:123 0.500000
0:123 0.000000
0:123 1.000000
0:124 reportIntersectionNV ( global bool)
0:124 Constant:
0:124 0.500000
0:124 Constant:
0:124 1 (const uint)
0:129 Function Definition: basic_works( ( global void)
0:129 Function Parameters:
0:131 Sequence
0:131 'gl_SubgroupSize' ( temp float)
0:132 'gl_SubgroupInvocationID' ( temp float)
0:133 subgroupBarrier ( global void)
0:134 subgroupMemoryBarrier ( global void)
0:135 subgroupMemoryBarrierBuffer ( global void)
0:136 subgroupMemoryBarrierImage ( global void)
0:137 subgroupElect ( global bool)
0:141 Function Definition: ballot_works(vf4; ( global void)
0:141 Function Parameters:
0:141 'f4' ( in 4-component vector of float)
0:142 Sequence
0:142 'gl_SubgroupEqMask' ( temp float)
0:143 'gl_SubgroupGeMask' ( temp float)
0:144 'gl_SubgroupGtMask' ( temp float)
0:145 'gl_SubgroupLeMask' ( temp float)
0:146 'gl_SubgroupLtMask' ( temp float)
0:147 subgroupBroadcast ( global 4-component vector of float)
0:147 'f4' ( in 4-component vector of float)
0:147 Constant:
0:147 0 (const uint)
0:148 subgroupBroadcastFirst ( global 4-component vector of float)
0:148 'f4' ( in 4-component vector of float)
0:149 Sequence
0:149 move second child to first child ( temp 4-component vector of uint)
0:149 'ballot' ( temp 4-component vector of uint)
0:149 subgroupBallot ( global 4-component vector of uint)
0:149 Constant:
0:149 false (const bool)
0:150 subgroupInverseBallot ( global bool)
0:150 Constant:
0:150 1 (const uint)
0:150 1 (const uint)
0:150 1 (const uint)
0:150 1 (const uint)
0:151 subgroupBallotBitExtract ( global bool)
0:151 'ballot' ( temp 4-component vector of uint)
0:151 Constant:
0:151 0 (const uint)
0:152 subgroupBallotBitCount ( global uint)
0:152 'ballot' ( temp 4-component vector of uint)
0:153 subgroupBallotInclusiveBitCount ( global uint)
0:153 'ballot' ( temp 4-component vector of uint)
0:154 subgroupBallotExclusiveBitCount ( global uint)
0:154 'ballot' ( temp 4-component vector of uint)
0:155 subgroupBallotFindLSB ( global uint)
0:155 'ballot' ( temp 4-component vector of uint)
0:156 subgroupBallotFindMSB ( global uint)
0:156 'ballot' ( temp 4-component vector of uint)
0:160 Function Definition: vote_works(vf4; ( global void)
0:160 Function Parameters:
0:160 'f4' ( in 4-component vector of float)
0:162 Sequence
0:162 subgroupAll ( global bool)
0:162 Constant:
0:162 true (const bool)
0:163 subgroupAny ( global bool)
0:163 Constant:
0:163 false (const bool)
0:164 subgroupAllEqual ( global bool)
0:164 'f4' ( in 4-component vector of float)
0:169 Function Definition: shuffle_works(vf4; ( global void)
0:169 Function Parameters:
0:169 'f4' ( in 4-component vector of float)
0:171 Sequence
0:171 subgroupShuffle ( global 4-component vector of float)
0:171 'f4' ( in 4-component vector of float)
0:171 Constant:
0:171 0 (const uint)
0:172 subgroupShuffleXor ( global 4-component vector of float)
0:172 'f4' ( in 4-component vector of float)
0:172 Constant:
0:172 1 (const uint)
0:173 subgroupShuffleUp ( global 4-component vector of float)
0:173 'f4' ( in 4-component vector of float)
0:173 Constant:
0:173 1 (const uint)
0:174 subgroupShuffleDown ( global 4-component vector of float)
0:174 'f4' ( in 4-component vector of float)
0:174 Constant:
0:174 1 (const uint)
0:178 Function Definition: arith_works(vf4; ( global void)
0:178 Function Parameters:
0:178 'f4' ( in 4-component vector of float)
0:? Sequence
0:181 subgroupAdd ( global 4-component vector of float)
0:181 'f4' ( in 4-component vector of float)
0:182 subgroupMul ( global 4-component vector of float)
0:182 'f4' ( in 4-component vector of float)
0:183 subgroupMin ( global 4-component vector of float)
0:183 'f4' ( in 4-component vector of float)
0:184 subgroupMax ( global 4-component vector of float)
0:184 'f4' ( in 4-component vector of float)
0:185 subgroupAnd ( global 4-component vector of uint)
0:185 'ballot' ( temp 4-component vector of uint)
0:186 subgroupOr ( global 4-component vector of uint)
0:186 'ballot' ( temp 4-component vector of uint)
0:187 subgroupXor ( global 4-component vector of uint)
0:187 'ballot' ( temp 4-component vector of uint)
0:188 subgroupInclusiveAdd ( global 4-component vector of float)
0:188 'f4' ( in 4-component vector of float)
0:189 subgroupInclusiveMul ( global 4-component vector of float)
0:189 'f4' ( in 4-component vector of float)
0:190 subgroupInclusiveMin ( global 4-component vector of float)
0:190 'f4' ( in 4-component vector of float)
0:191 subgroupInclusiveMax ( global 4-component vector of float)
0:191 'f4' ( in 4-component vector of float)
0:192 subgroupInclusiveAnd ( global 4-component vector of uint)
0:192 'ballot' ( temp 4-component vector of uint)
0:193 subgroupInclusiveOr ( global 4-component vector of uint)
0:193 'ballot' ( temp 4-component vector of uint)
0:194 subgroupInclusiveXor ( global 4-component vector of uint)
0:194 'ballot' ( temp 4-component vector of uint)
0:195 subgroupExclusiveAdd ( global 4-component vector of float)
0:195 'f4' ( in 4-component vector of float)
0:196 subgroupExclusiveMul ( global 4-component vector of float)
0:196 'f4' ( in 4-component vector of float)
0:197 subgroupExclusiveMin ( global 4-component vector of float)
0:197 'f4' ( in 4-component vector of float)
0:198 subgroupExclusiveMax ( global 4-component vector of float)
0:198 'f4' ( in 4-component vector of float)
0:199 subgroupExclusiveAnd ( global 4-component vector of uint)
0:199 'ballot' ( temp 4-component vector of uint)
0:200 subgroupExclusiveOr ( global 4-component vector of uint)
0:200 'ballot' ( temp 4-component vector of uint)
0:201 subgroupExclusiveXor ( global 4-component vector of uint)
0:201 'ballot' ( temp 4-component vector of uint)
0:205 Function Definition: clustered_works(vf4; ( global void)
0:205 Function Parameters:
0:205 'f4' ( in 4-component vector of float)
0:207 Sequence
0:207 Sequence
0:207 move second child to first child ( temp 4-component vector of uint)
0:207 'ballot' ( temp 4-component vector of uint)
0:207 Constant:
0:207 85 (const uint)
0:207 0 (const uint)
0:207 0 (const uint)
0:207 0 (const uint)
0:208 subgroupClusteredAdd ( global 4-component vector of float)
0:208 'f4' ( in 4-component vector of float)
0:208 Constant:
0:208 2 (const uint)
0:209 subgroupClusteredMul ( global 4-component vector of float)
0:209 'f4' ( in 4-component vector of float)
0:209 Constant:
0:209 2 (const uint)
0:210 subgroupClusteredMin ( global 4-component vector of float)
0:210 'f4' ( in 4-component vector of float)
0:210 Constant:
0:210 2 (const uint)
0:211 subgroupClusteredMax ( global 4-component vector of float)
0:211 'f4' ( in 4-component vector of float)
0:211 Constant:
0:211 2 (const uint)
0:212 subgroupClusteredAnd ( global 4-component vector of uint)
0:212 'ballot' ( temp 4-component vector of uint)
0:212 Constant:
0:212 2 (const uint)
0:213 subgroupClusteredOr ( global 4-component vector of uint)
0:213 'ballot' ( temp 4-component vector of uint)
0:213 Constant:
0:213 2 (const uint)
0:214 subgroupClusteredXor ( global 4-component vector of uint)
0:214 'ballot' ( temp 4-component vector of uint)
0:214 Constant:
0:214 2 (const uint)
0:218 Function Definition: quad_works(vf4; ( global void)
0:218 Function Parameters:
0:218 'f4' ( in 4-component vector of float)
0:220 Sequence
0:220 subgroupQuadBroadcast ( global 4-component vector of float)
0:220 'f4' ( in 4-component vector of float)
0:220 Constant:
0:220 0 (const uint)
0:221 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:221 'f4' ( in 4-component vector of float)
0:222 subgroupQuadSwapVertical ( global 4-component vector of float)
0:222 'f4' ( in 4-component vector of float)
0:223 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:223 'f4' ( in 4-component vector of float)
0:227 Function Definition: partitioned_works(vf4; ( global void)
0:227 Function Parameters:
0:227 'f4' ( in 4-component vector of float)
0:229 Sequence
0:229 Sequence
0:229 move second child to first child ( temp 4-component vector of uint)
0:229 'parti' ( temp 4-component vector of uint)
0:229 subgroupPartitionNV ( global 4-component vector of uint)
0:229 'f4' ( in 4-component vector of float)
0:230 Sequence
0:230 move second child to first child ( temp 4-component vector of uint)
0:230 'ballot' ( temp 4-component vector of uint)
0:230 Constant:
0:230 85 (const uint)
0:230 0 (const uint)
0:230 0 (const uint)
0:230 0 (const uint)
0:231 ERROR: Bad aggregation op
( global 4-component vector of float)
0:231 'f4' ( in 4-component vector of float)
0:231 'parti' ( temp 4-component vector of uint)
0:232 ERROR: Bad aggregation op
( global 4-component vector of float)
0:232 'f4' ( in 4-component vector of float)
0:232 'parti' ( temp 4-component vector of uint)
0:233 ERROR: Bad aggregation op
( global 4-component vector of float)
0:233 'f4' ( in 4-component vector of float)
0:233 'parti' ( temp 4-component vector of uint)
0:234 ERROR: Bad aggregation op
( global 4-component vector of float)
0:234 'f4' ( in 4-component vector of float)
0:234 'parti' ( temp 4-component vector of uint)
0:235 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:235 'ballot' ( temp 4-component vector of uint)
0:235 'parti' ( temp 4-component vector of uint)
0:236 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:236 'ballot' ( temp 4-component vector of uint)
0:236 'parti' ( temp 4-component vector of uint)
0:237 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:237 'ballot' ( temp 4-component vector of uint)
0:237 'parti' ( temp 4-component vector of uint)
0:238 ERROR: Bad aggregation op
( global 4-component vector of float)
0:238 'f4' ( in 4-component vector of float)
0:238 'parti' ( temp 4-component vector of uint)
0:239 ERROR: Bad aggregation op
( global 4-component vector of float)
0:239 'f4' ( in 4-component vector of float)
0:239 'parti' ( temp 4-component vector of uint)
0:240 ERROR: Bad aggregation op
( global 4-component vector of float)
0:240 'f4' ( in 4-component vector of float)
0:240 'parti' ( temp 4-component vector of uint)
0:241 ERROR: Bad aggregation op
( global 4-component vector of float)
0:241 'f4' ( in 4-component vector of float)
0:241 'parti' ( temp 4-component vector of uint)
0:242 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:242 'ballot' ( temp 4-component vector of uint)
0:242 'parti' ( temp 4-component vector of uint)
0:243 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:243 'ballot' ( temp 4-component vector of uint)
0:243 'parti' ( temp 4-component vector of uint)
0:244 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:244 'ballot' ( temp 4-component vector of uint)
0:244 'parti' ( temp 4-component vector of uint)
0:245 ERROR: Bad aggregation op
( global 4-component vector of float)
0:245 'f4' ( in 4-component vector of float)
0:245 'parti' ( temp 4-component vector of uint)
0:246 ERROR: Bad aggregation op
( global 4-component vector of float)
0:246 'f4' ( in 4-component vector of float)
0:246 'parti' ( temp 4-component vector of uint)
0:247 ERROR: Bad aggregation op
( global 4-component vector of float)
0:247 'f4' ( in 4-component vector of float)
0:247 'parti' ( temp 4-component vector of uint)
0:248 ERROR: Bad aggregation op
( global 4-component vector of float)
0:248 'f4' ( in 4-component vector of float)
0:248 'parti' ( temp 4-component vector of uint)
0:249 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:249 'ballot' ( temp 4-component vector of uint)
0:249 'parti' ( temp 4-component vector of uint)
0:250 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:250 'ballot' ( temp 4-component vector of uint)
0:250 'parti' ( temp 4-component vector of uint)
0:251 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:251 'ballot' ( temp 4-component vector of uint)
0:251 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)
Linked intersection stage:
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:108 Function Definition: main( ( global void)
0:108 Function Parameters:
0:110 Sequence
0:110 Sequence
0:110 move second child to first child ( temp 3-component vector of uint)
0:110 'v0' ( temp 3-component vector of uint)
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:111 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'v1' ( temp 3-component vector of uint)
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:112 Sequence
0:112 move second child to first child ( temp int)
0:112 'v2' ( temp int)
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
0:113 Sequence
0:113 move second child to first child ( temp int)
0:113 'v3' ( temp int)
0:113 'gl_InstanceID' ( in int InstanceId)
0:114 Sequence
0:114 move second child to first child ( temp int)
0:114 'v4' ( temp int)
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v5' ( temp 3-component vector of float)
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v6' ( temp 3-component vector of float)
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp 3-component vector of float)
0:117 'v7' ( temp 3-component vector of float)
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:118 Sequence
0:118 move second child to first child ( temp 3-component vector of float)
0:118 'v8' ( temp 3-component vector of float)
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v9' ( temp float)
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:120 Sequence
0:120 move second child to first child ( temp float)
0:120 'v10' ( temp float)
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:121 Sequence
0:121 move second child to first child ( temp 4X3 matrix of float)
0:121 'v11' ( temp 4X3 matrix of float)
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
0:122 Sequence
0:122 move second child to first child ( temp 4X3 matrix of float)
0:122 'v12' ( temp 4X3 matrix of float)
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
0:123 move second child to first child ( temp 4-component vector of float)
0:123 'iAttr' ( hitAttributeNV 4-component vector of float)
0:123 Constant:
0:123 0.500000
0:123 0.500000
0:123 0.000000
0:123 1.000000
0:124 reportIntersectionNV ( global bool)
0:124 Constant:
0:124 0.500000
0:124 Constant:
0:124 1 (const uint)
0:? Linker Objects
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)

View File

@ -0,0 +1,790 @@
glsl.460.subgroup.rmiss
ERROR: 0:8: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:9: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:10: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:11: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:12: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:13: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:14: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
ERROR: 0:15: 'gl_NumSubgroups' : undeclared identifier
ERROR: 0:16: 'gl_SubgroupID' : undeclared identifier
ERROR: 0:17: 'subgroupMemoryBarrierShared' : no matching overloaded function found
ERROR: 0:19: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:20: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:21: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
ERROR: 0:23: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:24: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:25: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:26: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:27: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 0:28: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:29: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:30: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:31: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:32: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:33: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:34: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:35: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:36: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:37: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
ERROR: 0:39: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:40: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
ERROR: 0:41: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:42: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
ERROR: 0:44: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:45: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:46: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:47: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:48: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:49: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:50: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:51: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:52: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:53: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:54: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:55: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:56: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:57: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:58: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:59: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:60: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:61: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:62: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:63: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:64: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
ERROR: 0:66: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:67: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:68: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:69: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:70: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:71: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:72: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
ERROR: 0:74: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:75: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:76: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:77: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
ERROR: 0:79: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:80: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:81: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:82: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:83: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:84: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:85: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:86: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:87: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:88: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:89: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:90: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:91: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:92: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:93: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:94: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:95: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:96: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:125: 'gl_SubgroupSize' : undeclared identifier
ERROR: 0:126: 'gl_SubgroupInvocationID' : undeclared identifier
ERROR: 0:136: 'gl_SubgroupEqMask' : undeclared identifier
ERROR: 0:137: 'gl_SubgroupGeMask' : undeclared identifier
ERROR: 0:138: 'gl_SubgroupGtMask' : undeclared identifier
ERROR: 0:139: 'gl_SubgroupLeMask' : undeclared identifier
ERROR: 0:140: 'gl_SubgroupLtMask' : undeclared identifier
ERROR: 93 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:5 Function Parameters:
0:5 'f4' ( in 4-component vector of float)
0:? Sequence
0:8 'gl_SubgroupSize' ( temp float)
0:9 'gl_SubgroupInvocationID' ( temp float)
0:10 subgroupBarrier ( global void)
0:11 subgroupMemoryBarrier ( global void)
0:12 subgroupMemoryBarrierBuffer ( global void)
0:13 subgroupMemoryBarrierImage ( global void)
0:14 subgroupElect ( global bool)
0:15 'gl_NumSubgroups' ( temp float)
0:16 'gl_SubgroupID' ( temp float)
0:17 Constant:
0:17 0.000000
0:19 subgroupAll ( global bool)
0:19 Constant:
0:19 true (const bool)
0:20 subgroupAny ( global bool)
0:20 Constant:
0:20 false (const bool)
0:21 subgroupAllEqual ( global bool)
0:21 'f4' ( in 4-component vector of float)
0:23 'gl_SubgroupEqMask' ( temp float)
0:24 'gl_SubgroupGeMask' ( temp float)
0:25 'gl_SubgroupGtMask' ( temp float)
0:26 'gl_SubgroupLeMask' ( temp float)
0:27 'gl_SubgroupLtMask' ( temp float)
0:28 subgroupBroadcast ( global 4-component vector of float)
0:28 'f4' ( in 4-component vector of float)
0:28 Constant:
0:28 0 (const uint)
0:29 subgroupBroadcastFirst ( global 4-component vector of float)
0:29 'f4' ( in 4-component vector of float)
0:30 Sequence
0:30 move second child to first child ( temp 4-component vector of uint)
0:30 'ballot' ( temp 4-component vector of uint)
0:30 subgroupBallot ( global 4-component vector of uint)
0:30 Constant:
0:30 false (const bool)
0:31 subgroupInverseBallot ( global bool)
0:31 Constant:
0:31 1 (const uint)
0:31 1 (const uint)
0:31 1 (const uint)
0:31 1 (const uint)
0:32 subgroupBallotBitExtract ( global bool)
0:32 'ballot' ( temp 4-component vector of uint)
0:32 Constant:
0:32 0 (const uint)
0:33 subgroupBallotBitCount ( global uint)
0:33 'ballot' ( temp 4-component vector of uint)
0:34 subgroupBallotInclusiveBitCount ( global uint)
0:34 'ballot' ( temp 4-component vector of uint)
0:35 subgroupBallotExclusiveBitCount ( global uint)
0:35 'ballot' ( temp 4-component vector of uint)
0:36 subgroupBallotFindLSB ( global uint)
0:36 'ballot' ( temp 4-component vector of uint)
0:37 subgroupBallotFindMSB ( global uint)
0:37 'ballot' ( temp 4-component vector of uint)
0:39 subgroupShuffle ( global 4-component vector of float)
0:39 'f4' ( in 4-component vector of float)
0:39 Constant:
0:39 0 (const uint)
0:40 subgroupShuffleXor ( global 4-component vector of float)
0:40 'f4' ( in 4-component vector of float)
0:40 Constant:
0:40 1 (const uint)
0:41 subgroupShuffleUp ( global 4-component vector of float)
0:41 'f4' ( in 4-component vector of float)
0:41 Constant:
0:41 1 (const uint)
0:42 subgroupShuffleDown ( global 4-component vector of float)
0:42 'f4' ( in 4-component vector of float)
0:42 Constant:
0:42 1 (const uint)
0:44 move second child to first child ( temp 4-component vector of float)
0:44 'result' ( temp 4-component vector of float)
0:44 subgroupAdd ( global 4-component vector of float)
0:44 'f4' ( in 4-component vector of float)
0:45 subgroupMul ( global 4-component vector of float)
0:45 'f4' ( in 4-component vector of float)
0:46 subgroupMin ( global 4-component vector of float)
0:46 'f4' ( in 4-component vector of float)
0:47 subgroupMax ( global 4-component vector of float)
0:47 'f4' ( in 4-component vector of float)
0:48 subgroupAnd ( global 4-component vector of uint)
0:48 'ballot' ( temp 4-component vector of uint)
0:49 subgroupOr ( global 4-component vector of uint)
0:49 'ballot' ( temp 4-component vector of uint)
0:50 subgroupXor ( global 4-component vector of uint)
0:50 'ballot' ( temp 4-component vector of uint)
0:51 subgroupInclusiveAdd ( global 4-component vector of float)
0:51 'f4' ( in 4-component vector of float)
0:52 subgroupInclusiveMul ( global 4-component vector of float)
0:52 'f4' ( in 4-component vector of float)
0:53 subgroupInclusiveMin ( global 4-component vector of float)
0:53 'f4' ( in 4-component vector of float)
0:54 subgroupInclusiveMax ( global 4-component vector of float)
0:54 'f4' ( in 4-component vector of float)
0:55 subgroupInclusiveAnd ( global 4-component vector of uint)
0:55 'ballot' ( temp 4-component vector of uint)
0:56 subgroupInclusiveOr ( global 4-component vector of uint)
0:56 'ballot' ( temp 4-component vector of uint)
0:57 subgroupInclusiveXor ( global 4-component vector of uint)
0:57 'ballot' ( temp 4-component vector of uint)
0:58 subgroupExclusiveAdd ( global 4-component vector of float)
0:58 'f4' ( in 4-component vector of float)
0:59 subgroupExclusiveMul ( global 4-component vector of float)
0:59 'f4' ( in 4-component vector of float)
0:60 subgroupExclusiveMin ( global 4-component vector of float)
0:60 'f4' ( in 4-component vector of float)
0:61 subgroupExclusiveMax ( global 4-component vector of float)
0:61 'f4' ( in 4-component vector of float)
0:62 subgroupExclusiveAnd ( global 4-component vector of uint)
0:62 'ballot' ( temp 4-component vector of uint)
0:63 subgroupExclusiveOr ( global 4-component vector of uint)
0:63 'ballot' ( temp 4-component vector of uint)
0:64 subgroupExclusiveXor ( global 4-component vector of uint)
0:64 'ballot' ( temp 4-component vector of uint)
0:66 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( global 4-component vector of float)
0:68 'f4' ( in 4-component vector of float)
0:68 Constant:
0:68 2 (const uint)
0:69 subgroupClusteredMax ( global 4-component vector of float)
0:69 'f4' ( in 4-component vector of float)
0:69 Constant:
0:69 2 (const uint)
0:70 subgroupClusteredAnd ( global 4-component vector of uint)
0:70 'ballot' ( temp 4-component vector of uint)
0:70 Constant:
0:70 2 (const uint)
0:71 subgroupClusteredOr ( global 4-component vector of uint)
0:71 'ballot' ( temp 4-component vector of uint)
0:71 Constant:
0:71 2 (const uint)
0:72 subgroupClusteredXor ( global 4-component vector of uint)
0:72 'ballot' ( temp 4-component vector of uint)
0:72 Constant:
0:72 2 (const uint)
0:74 subgroupQuadBroadcast ( global 4-component vector of float)
0:74 'f4' ( in 4-component vector of float)
0:74 Constant:
0:74 0 (const uint)
0:75 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:75 'f4' ( in 4-component vector of float)
0:76 subgroupQuadSwapVertical ( global 4-component vector of float)
0:76 'f4' ( in 4-component vector of float)
0:77 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:77 'f4' ( in 4-component vector of float)
0:79 Sequence
0:79 move second child to first child ( temp 4-component vector of uint)
0:79 'parti' ( temp 4-component vector of uint)
0:79 subgroupPartitionNV ( global 4-component vector of uint)
0:79 'f4' ( in 4-component vector of float)
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 float)
0:82 'f4' ( in 4-component vector of float)
0:82 'parti' ( temp 4-component vector of uint)
0:83 ERROR: Bad aggregation op
( global 4-component vector of float)
0:83 'f4' ( in 4-component vector of float)
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 uint)
0:85 'ballot' ( temp 4-component vector of uint)
0:85 'parti' ( temp 4-component vector of uint)
0:86 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:86 'ballot' ( temp 4-component vector of uint)
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 float)
0:89 'f4' ( in 4-component vector of float)
0:89 'parti' ( temp 4-component vector of uint)
0:90 ERROR: Bad aggregation op
( global 4-component vector of float)
0:90 'f4' ( in 4-component vector of float)
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 uint)
0:92 'ballot' ( temp 4-component vector of uint)
0:92 'parti' ( temp 4-component vector of uint)
0:93 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:93 'ballot' ( temp 4-component vector of uint)
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 float)
0:96 'f4' ( in 4-component vector of float)
0:96 'parti' ( temp 4-component vector of uint)
0:97 ERROR: Bad aggregation op
( global 4-component vector of float)
0:97 'f4' ( in 4-component vector of float)
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:99 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:99 'ballot' ( temp 4-component vector of uint)
0:99 'parti' ( temp 4-component vector of uint)
0:100 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:100 'ballot' ( temp 4-component vector of uint)
0:100 'parti' ( temp 4-component vector of uint)
0:102 Branch: Return with expression
0:102 'result' ( temp 4-component vector of float)
0:109 Function Definition: main( ( global void)
0:109 Function Parameters:
0:111 Sequence
0:111 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'v0' ( temp 3-component vector of uint)
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:112 Sequence
0:112 move second child to first child ( temp 3-component vector of uint)
0:112 'v1' ( temp 3-component vector of uint)
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:113 Sequence
0:113 move second child to first child ( temp 3-component vector of float)
0:113 'v2' ( temp 3-component vector of float)
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:114 Sequence
0:114 move second child to first child ( temp 3-component vector of float)
0:114 'v3' ( temp 3-component vector of float)
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v4' ( temp 3-component vector of float)
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v5' ( temp 3-component vector of float)
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp float)
0:117 'v6' ( temp float)
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:118 Sequence
0:118 move second child to first child ( temp float)
0:118 'v7' ( temp float)
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:119 traceNV ( global void)
0:119 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:119 Constant:
0:119 0 (const uint)
0:119 Constant:
0:119 1 (const uint)
0:119 Constant:
0:119 2 (const uint)
0:119 Constant:
0:119 3 (const uint)
0:119 Constant:
0:119 0 (const uint)
0:119 Constant:
0:119 0.500000
0:119 0.500000
0:119 0.500000
0:119 Constant:
0:119 0.500000
0:119 Constant:
0:119 1.000000
0:119 1.000000
0:119 1.000000
0:119 Constant:
0:119 0.750000
0:119 Constant:
0:119 1 (const int)
0:123 Function Definition: basic_works( ( global void)
0:123 Function Parameters:
0:125 Sequence
0:125 'gl_SubgroupSize' ( temp float)
0:126 'gl_SubgroupInvocationID' ( temp float)
0:127 subgroupBarrier ( global void)
0:128 subgroupMemoryBarrier ( global void)
0:129 subgroupMemoryBarrierBuffer ( global void)
0:130 subgroupMemoryBarrierImage ( global void)
0:131 subgroupElect ( global bool)
0:135 Function Definition: ballot_works(vf4; ( global void)
0:135 Function Parameters:
0:135 'f4' ( in 4-component vector of float)
0:136 Sequence
0:136 'gl_SubgroupEqMask' ( temp float)
0:137 'gl_SubgroupGeMask' ( temp float)
0:138 'gl_SubgroupGtMask' ( temp float)
0:139 'gl_SubgroupLeMask' ( temp float)
0:140 'gl_SubgroupLtMask' ( temp float)
0:141 subgroupBroadcast ( global 4-component vector of float)
0:141 'f4' ( in 4-component vector of float)
0:141 Constant:
0:141 0 (const uint)
0:142 subgroupBroadcastFirst ( global 4-component vector of float)
0:142 'f4' ( in 4-component vector of float)
0:143 Sequence
0:143 move second child to first child ( temp 4-component vector of uint)
0:143 'ballot' ( temp 4-component vector of uint)
0:143 subgroupBallot ( global 4-component vector of uint)
0:143 Constant:
0:143 false (const bool)
0:144 subgroupInverseBallot ( global bool)
0:144 Constant:
0:144 1 (const uint)
0:144 1 (const uint)
0:144 1 (const uint)
0:144 1 (const uint)
0:145 subgroupBallotBitExtract ( global bool)
0:145 'ballot' ( temp 4-component vector of uint)
0:145 Constant:
0:145 0 (const uint)
0:146 subgroupBallotBitCount ( global uint)
0:146 'ballot' ( temp 4-component vector of uint)
0:147 subgroupBallotInclusiveBitCount ( global uint)
0:147 'ballot' ( temp 4-component vector of uint)
0:148 subgroupBallotExclusiveBitCount ( global uint)
0:148 'ballot' ( temp 4-component vector of uint)
0:149 subgroupBallotFindLSB ( global uint)
0:149 'ballot' ( temp 4-component vector of uint)
0:150 subgroupBallotFindMSB ( global uint)
0:150 'ballot' ( temp 4-component vector of uint)
0:154 Function Definition: vote_works(vf4; ( global void)
0:154 Function Parameters:
0:154 'f4' ( in 4-component vector of float)
0:156 Sequence
0:156 subgroupAll ( global bool)
0:156 Constant:
0:156 true (const bool)
0:157 subgroupAny ( global bool)
0:157 Constant:
0:157 false (const bool)
0:158 subgroupAllEqual ( global bool)
0:158 'f4' ( in 4-component vector of float)
0:163 Function Definition: shuffle_works(vf4; ( global void)
0:163 Function Parameters:
0:163 'f4' ( in 4-component vector of float)
0:165 Sequence
0:165 subgroupShuffle ( global 4-component vector of float)
0:165 'f4' ( in 4-component vector of float)
0:165 Constant:
0:165 0 (const uint)
0:166 subgroupShuffleXor ( global 4-component vector of float)
0:166 'f4' ( in 4-component vector of float)
0:166 Constant:
0:166 1 (const uint)
0:167 subgroupShuffleUp ( global 4-component vector of float)
0:167 'f4' ( in 4-component vector of float)
0:167 Constant:
0:167 1 (const uint)
0:168 subgroupShuffleDown ( global 4-component vector of float)
0:168 'f4' ( in 4-component vector of float)
0:168 Constant:
0:168 1 (const uint)
0:172 Function Definition: arith_works(vf4; ( global void)
0:172 Function Parameters:
0:172 'f4' ( in 4-component vector of float)
0:? Sequence
0:175 subgroupAdd ( global 4-component vector of float)
0:175 'f4' ( in 4-component vector of float)
0:176 subgroupMul ( global 4-component vector of float)
0:176 'f4' ( in 4-component vector of float)
0:177 subgroupMin ( global 4-component vector of float)
0:177 'f4' ( in 4-component vector of float)
0:178 subgroupMax ( global 4-component vector of float)
0:178 'f4' ( in 4-component vector of float)
0:179 subgroupAnd ( global 4-component vector of uint)
0:179 'ballot' ( temp 4-component vector of uint)
0:180 subgroupOr ( global 4-component vector of uint)
0:180 'ballot' ( temp 4-component vector of uint)
0:181 subgroupXor ( global 4-component vector of uint)
0:181 'ballot' ( temp 4-component vector of uint)
0:182 subgroupInclusiveAdd ( global 4-component vector of float)
0:182 'f4' ( in 4-component vector of float)
0:183 subgroupInclusiveMul ( global 4-component vector of float)
0:183 'f4' ( in 4-component vector of float)
0:184 subgroupInclusiveMin ( global 4-component vector of float)
0:184 'f4' ( in 4-component vector of float)
0:185 subgroupInclusiveMax ( global 4-component vector of float)
0:185 'f4' ( in 4-component vector of float)
0:186 subgroupInclusiveAnd ( global 4-component vector of uint)
0:186 'ballot' ( temp 4-component vector of uint)
0:187 subgroupInclusiveOr ( global 4-component vector of uint)
0:187 'ballot' ( temp 4-component vector of uint)
0:188 subgroupInclusiveXor ( global 4-component vector of uint)
0:188 'ballot' ( temp 4-component vector of uint)
0:189 subgroupExclusiveAdd ( global 4-component vector of float)
0:189 'f4' ( in 4-component vector of float)
0:190 subgroupExclusiveMul ( global 4-component vector of float)
0:190 'f4' ( in 4-component vector of float)
0:191 subgroupExclusiveMin ( global 4-component vector of float)
0:191 'f4' ( in 4-component vector of float)
0:192 subgroupExclusiveMax ( global 4-component vector of float)
0:192 'f4' ( in 4-component vector of float)
0:193 subgroupExclusiveAnd ( global 4-component vector of uint)
0:193 'ballot' ( temp 4-component vector of uint)
0:194 subgroupExclusiveOr ( global 4-component vector of uint)
0:194 'ballot' ( temp 4-component vector of uint)
0:195 subgroupExclusiveXor ( global 4-component vector of uint)
0:195 'ballot' ( temp 4-component vector of uint)
0:199 Function Definition: clustered_works(vf4; ( global void)
0:199 Function Parameters:
0:199 'f4' ( in 4-component vector of float)
0:201 Sequence
0:201 Sequence
0:201 move second child to first child ( temp 4-component vector of uint)
0:201 'ballot' ( temp 4-component vector of uint)
0:201 Constant:
0:201 85 (const uint)
0:201 0 (const uint)
0:201 0 (const uint)
0:201 0 (const uint)
0:202 subgroupClusteredAdd ( global 4-component vector of float)
0:202 'f4' ( in 4-component vector of float)
0:202 Constant:
0:202 2 (const uint)
0:203 subgroupClusteredMul ( global 4-component vector of float)
0:203 'f4' ( in 4-component vector of float)
0:203 Constant:
0:203 2 (const uint)
0:204 subgroupClusteredMin ( global 4-component vector of float)
0:204 'f4' ( in 4-component vector of float)
0:204 Constant:
0:204 2 (const uint)
0:205 subgroupClusteredMax ( global 4-component vector of float)
0:205 'f4' ( in 4-component vector of float)
0:205 Constant:
0:205 2 (const uint)
0:206 subgroupClusteredAnd ( global 4-component vector of uint)
0:206 'ballot' ( temp 4-component vector of uint)
0:206 Constant:
0:206 2 (const uint)
0:207 subgroupClusteredOr ( global 4-component vector of uint)
0:207 'ballot' ( temp 4-component vector of uint)
0:207 Constant:
0:207 2 (const uint)
0:208 subgroupClusteredXor ( global 4-component vector of uint)
0:208 'ballot' ( temp 4-component vector of uint)
0:208 Constant:
0:208 2 (const uint)
0:212 Function Definition: quad_works(vf4; ( global void)
0:212 Function Parameters:
0:212 'f4' ( in 4-component vector of float)
0:214 Sequence
0:214 subgroupQuadBroadcast ( global 4-component vector of float)
0:214 'f4' ( in 4-component vector of float)
0:214 Constant:
0:214 0 (const uint)
0:215 subgroupQuadSwapHorizontal ( global 4-component vector of float)
0:215 'f4' ( in 4-component vector of float)
0:216 subgroupQuadSwapVertical ( global 4-component vector of float)
0:216 'f4' ( in 4-component vector of float)
0:217 subgroupQuadSwapDiagonal ( global 4-component vector of float)
0:217 'f4' ( in 4-component vector of float)
0:221 Function Definition: partitioned_works(vf4; ( global void)
0:221 Function Parameters:
0:221 'f4' ( in 4-component vector of float)
0:223 Sequence
0:223 Sequence
0:223 move second child to first child ( temp 4-component vector of uint)
0:223 'parti' ( temp 4-component vector of uint)
0:223 subgroupPartitionNV ( global 4-component vector of uint)
0:223 'f4' ( in 4-component vector of float)
0:224 Sequence
0:224 move second child to first child ( temp 4-component vector of uint)
0:224 'ballot' ( temp 4-component vector of uint)
0:224 Constant:
0:224 85 (const uint)
0:224 0 (const uint)
0:224 0 (const uint)
0:224 0 (const 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 float)
0:228 'f4' ( in 4-component vector of float)
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:231 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:231 'ballot' ( temp 4-component vector of uint)
0:231 'parti' ( temp 4-component vector of uint)
0:232 ERROR: Bad aggregation op
( global 4-component vector of float)
0:232 'f4' ( in 4-component vector of float)
0:232 'parti' ( temp 4-component vector of uint)
0:233 ERROR: Bad aggregation op
( global 4-component vector of float)
0:233 'f4' ( in 4-component vector of float)
0:233 'parti' ( temp 4-component vector of uint)
0:234 ERROR: Bad aggregation op
( global 4-component vector of float)
0:234 'f4' ( in 4-component vector of float)
0:234 'parti' ( temp 4-component vector of uint)
0:235 ERROR: Bad aggregation op
( global 4-component vector of float)
0:235 'f4' ( in 4-component vector of float)
0:235 'parti' ( temp 4-component vector of uint)
0:236 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:236 'ballot' ( temp 4-component vector of uint)
0:236 'parti' ( temp 4-component vector of uint)
0:237 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:237 'ballot' ( temp 4-component vector of uint)
0:237 'parti' ( temp 4-component vector of uint)
0:238 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:238 'ballot' ( temp 4-component vector of uint)
0:238 'parti' ( temp 4-component vector of uint)
0:239 ERROR: Bad aggregation op
( global 4-component vector of float)
0:239 'f4' ( in 4-component vector of float)
0:239 'parti' ( temp 4-component vector of uint)
0:240 ERROR: Bad aggregation op
( global 4-component vector of float)
0:240 'f4' ( in 4-component vector of float)
0:240 'parti' ( temp 4-component vector of uint)
0:241 ERROR: Bad aggregation op
( global 4-component vector of float)
0:241 'f4' ( in 4-component vector of float)
0:241 'parti' ( temp 4-component vector of uint)
0:242 ERROR: Bad aggregation op
( global 4-component vector of float)
0:242 'f4' ( in 4-component vector of float)
0:242 'parti' ( temp 4-component vector of uint)
0:243 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:243 'ballot' ( temp 4-component vector of uint)
0:243 'parti' ( temp 4-component vector of uint)
0:244 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:244 'ballot' ( temp 4-component vector of uint)
0:244 'parti' ( temp 4-component vector of uint)
0:245 ERROR: Bad aggregation op
( global 4-component vector of uint)
0:245 'ballot' ( temp 4-component vector of uint)
0:245 'parti' ( temp 4-component vector of uint)
0:? Linker Objects
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
Linked miss stage:
Shader version: 460
Requested GL_KHR_shader_subgroup_arithmetic
Requested GL_KHR_shader_subgroup_ballot
Requested GL_KHR_shader_subgroup_basic
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_ray_tracing
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 Sequence
0:111 move second child to first child ( temp 3-component vector of uint)
0:111 'v0' ( temp 3-component vector of uint)
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
0:112 Sequence
0:112 move second child to first child ( temp 3-component vector of uint)
0:112 'v1' ( temp 3-component vector of uint)
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
0:113 Sequence
0:113 move second child to first child ( temp 3-component vector of float)
0:113 'v2' ( temp 3-component vector of float)
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
0:114 Sequence
0:114 move second child to first child ( temp 3-component vector of float)
0:114 'v3' ( temp 3-component vector of float)
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
0:115 Sequence
0:115 move second child to first child ( temp 3-component vector of float)
0:115 'v4' ( temp 3-component vector of float)
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
0:116 Sequence
0:116 move second child to first child ( temp 3-component vector of float)
0:116 'v5' ( temp 3-component vector of float)
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
0:117 Sequence
0:117 move second child to first child ( temp float)
0:117 'v6' ( temp float)
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
0:118 Sequence
0:118 move second child to first child ( temp float)
0:118 'v7' ( temp float)
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:119 traceNV ( global void)
0:119 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:119 Constant:
0:119 0 (const uint)
0:119 Constant:
0:119 1 (const uint)
0:119 Constant:
0:119 2 (const uint)
0:119 Constant:
0:119 3 (const uint)
0:119 Constant:
0:119 0 (const uint)
0:119 Constant:
0:119 0.500000
0:119 0.500000
0:119 0.500000
0:119 Constant:
0:119 0.500000
0:119 Constant:
0:119 1.000000
0:119 1.000000
0:119 1.000000
0:119 Constant:
0:119 0.750000
0:119 Constant:
0:119 1 (const int)
0:? Linker Objects
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)

View File

@ -0,0 +1,255 @@
#version 460
#extension GL_NV_ray_tracing : enable
vec4 undeclared_errors(vec4 f4)
{
vec4 result;
gl_SubgroupSize; // ERROR, extension not enabled (basic)
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
subgroupBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
subgroupElect(); // ERROR, extension not enabled (basic)
gl_NumSubgroups; // ERROR, only defined in compute
gl_SubgroupID; // ERROR, only defined in compute
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
subgroupAll(true); // ERROR extension not enabled (vote)
subgroupAny(false); // ERROR extension not enabled (vote)
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
subgroupMul(f4); // ERROR, extension not enabled (arith)
subgroupMin(f4); // ERROR, extension not enabled (arith)
subgroupMax(f4); // ERROR, extension not enabled (arith)
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
subgroupOr(ballot); // ERROR, extension not enabled (arith)
subgroupXor(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
return result;
}
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
void main()
{
uvec3 v0 = gl_LaunchIDNV;
uvec3 v1 = gl_LaunchSizeNV;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexNV;
vec3 v5 = gl_WorldRayOriginNV;
vec3 v6 = gl_WorldRayDirectionNV;
vec3 v7 = gl_ObjectRayOriginNV;
vec3 v8 = gl_ObjectRayDirectionNV;
float v9 = gl_RayTminNV;
float v10 = gl_RayTmaxNV;
float v11 = gl_HitTNV;
uint v12 = gl_HitKindNV;
mat4x3 v13 = gl_ObjectToWorldNV;
mat4x3 v14 = gl_WorldToObjectNV;
incomingPayload = vec4(0.5f);
if (v2 == 1)
ignoreIntersectionNV();
else
terminateRayNV();
}
#extension GL_KHR_shader_subgroup_basic: enable
void basic_works (void)
{
gl_SubgroupSize;
gl_SubgroupInvocationID;
subgroupBarrier();
subgroupMemoryBarrier();
subgroupMemoryBarrierBuffer();
subgroupMemoryBarrierImage();
subgroupElect();
}
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
subgroupBallotBitExtract(ballot, 0);
subgroupBallotBitCount(ballot);
subgroupBallotInclusiveBitCount(ballot);
subgroupBallotExclusiveBitCount(ballot);
subgroupBallotFindLSB(ballot);
subgroupBallotFindMSB(ballot);
}
#extension GL_KHR_shader_subgroup_vote: enable
void vote_works(vec4 f4)
{
subgroupAll(true);
subgroupAny(false);
subgroupAllEqual(f4);
}
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
void shuffle_works(vec4 f4)
{
subgroupShuffle(f4, 0);
subgroupShuffleXor(f4, 0x1);
subgroupShuffleUp(f4, 1);
subgroupShuffleDown(f4, 1);
}
#extension GL_KHR_shader_subgroup_arithmetic: enable
void arith_works(vec4 f4)
{
uvec4 ballot;
subgroupAdd(f4);
subgroupMul(f4);
subgroupMin(f4);
subgroupMax(f4);
subgroupAnd(ballot);
subgroupOr(ballot);
subgroupXor(ballot);
subgroupInclusiveAdd(f4);
subgroupInclusiveMul(f4);
subgroupInclusiveMin(f4);
subgroupInclusiveMax(f4);
subgroupInclusiveAnd(ballot);
subgroupInclusiveOr(ballot);
subgroupInclusiveXor(ballot);
subgroupExclusiveAdd(f4);
subgroupExclusiveMul(f4);
subgroupExclusiveMin(f4);
subgroupExclusiveMax(f4);
subgroupExclusiveAnd(ballot);
subgroupExclusiveOr(ballot);
subgroupExclusiveXor(ballot);
}
#extension GL_KHR_shader_subgroup_clustered: enable
void clustered_works(vec4 f4)
{
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupClusteredAdd(f4, 2);
subgroupClusteredMul(f4, 2);
subgroupClusteredMin(f4, 2);
subgroupClusteredMax(f4, 2);
subgroupClusteredAnd(ballot, 2);
subgroupClusteredOr(ballot, 2);
subgroupClusteredXor(ballot, 2);
}
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
subgroupQuadBroadcast(f4, 0);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
}
#extension GL_NV_shader_subgroup_partitioned: enable
void partitioned_works(vec4 f4)
{
uvec4 parti = subgroupPartitionNV(f4);
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupPartitionedAddNV(f4, parti);
subgroupPartitionedMulNV(f4, parti);
subgroupPartitionedMinNV(f4, parti);
subgroupPartitionedMaxNV(f4, parti);
subgroupPartitionedAndNV(ballot, parti);
subgroupPartitionedOrNV(ballot, parti);
subgroupPartitionedXorNV(ballot, parti);
subgroupPartitionedInclusiveAddNV(f4, parti);
subgroupPartitionedInclusiveMulNV(f4, parti);
subgroupPartitionedInclusiveMinNV(f4, parti);
subgroupPartitionedInclusiveMaxNV(f4, parti);
subgroupPartitionedInclusiveAndNV(ballot, parti);
subgroupPartitionedInclusiveOrNV(ballot, parti);
subgroupPartitionedInclusiveXorNV(ballot, parti);
subgroupPartitionedExclusiveAddNV(f4, parti);
subgroupPartitionedExclusiveMulNV(f4, parti);
subgroupPartitionedExclusiveMinNV(f4, parti);
subgroupPartitionedExclusiveMaxNV(f4, parti);
subgroupPartitionedExclusiveAndNV(ballot, parti);
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}

View File

@ -0,0 +1,243 @@
#version 460
#extension GL_NV_ray_tracing : enable
vec4 undeclared_errors(vec4 f4)
{
vec4 result;
gl_SubgroupSize; // ERROR, extension not enabled (basic)
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
subgroupBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
subgroupElect(); // ERROR, extension not enabled (basic)
gl_NumSubgroups; // ERROR, only defined in compute
gl_SubgroupID; // ERROR, only defined in compute
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
subgroupAll(true); // ERROR extension not enabled (vote)
subgroupAny(false); // ERROR extension not enabled (vote)
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
subgroupMul(f4); // ERROR, extension not enabled (arith)
subgroupMin(f4); // ERROR, extension not enabled (arith)
subgroupMax(f4); // ERROR, extension not enabled (arith)
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
subgroupOr(ballot); // ERROR, extension not enabled (arith)
subgroupXor(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
return result;
}
layout(location = 0) callableDataNV vec4 data0;
layout(location = 1) callableDataInNV dataBlock {
uint data1;
};
void main()
{
uvec3 id = gl_LaunchIDNV;
uvec3 size = gl_LaunchSizeNV;
data1 = 256U;
executeCallableNV(2,1);
}
#extension GL_KHR_shader_subgroup_basic: enable
void basic_works (void)
{
gl_SubgroupSize;
gl_SubgroupInvocationID;
subgroupBarrier();
subgroupMemoryBarrier();
subgroupMemoryBarrierBuffer();
subgroupMemoryBarrierImage();
subgroupElect();
}
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
subgroupBallotBitExtract(ballot, 0);
subgroupBallotBitCount(ballot);
subgroupBallotInclusiveBitCount(ballot);
subgroupBallotExclusiveBitCount(ballot);
subgroupBallotFindLSB(ballot);
subgroupBallotFindMSB(ballot);
}
#extension GL_KHR_shader_subgroup_vote: enable
void vote_works(vec4 f4)
{
subgroupAll(true);
subgroupAny(false);
subgroupAllEqual(f4);
}
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
void shuffle_works(vec4 f4)
{
subgroupShuffle(f4, 0);
subgroupShuffleXor(f4, 0x1);
subgroupShuffleUp(f4, 1);
subgroupShuffleDown(f4, 1);
}
#extension GL_KHR_shader_subgroup_arithmetic: enable
void arith_works(vec4 f4)
{
uvec4 ballot;
subgroupAdd(f4);
subgroupMul(f4);
subgroupMin(f4);
subgroupMax(f4);
subgroupAnd(ballot);
subgroupOr(ballot);
subgroupXor(ballot);
subgroupInclusiveAdd(f4);
subgroupInclusiveMul(f4);
subgroupInclusiveMin(f4);
subgroupInclusiveMax(f4);
subgroupInclusiveAnd(ballot);
subgroupInclusiveOr(ballot);
subgroupInclusiveXor(ballot);
subgroupExclusiveAdd(f4);
subgroupExclusiveMul(f4);
subgroupExclusiveMin(f4);
subgroupExclusiveMax(f4);
subgroupExclusiveAnd(ballot);
subgroupExclusiveOr(ballot);
subgroupExclusiveXor(ballot);
}
#extension GL_KHR_shader_subgroup_clustered: enable
void clustered_works(vec4 f4)
{
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupClusteredAdd(f4, 2);
subgroupClusteredMul(f4, 2);
subgroupClusteredMin(f4, 2);
subgroupClusteredMax(f4, 2);
subgroupClusteredAnd(ballot, 2);
subgroupClusteredOr(ballot, 2);
subgroupClusteredXor(ballot, 2);
}
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
subgroupQuadBroadcast(f4, 0);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
}
#extension GL_NV_shader_subgroup_partitioned: enable
void partitioned_works(vec4 f4)
{
uvec4 parti = subgroupPartitionNV(f4);
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupPartitionedAddNV(f4, parti);
subgroupPartitionedMulNV(f4, parti);
subgroupPartitionedMinNV(f4, parti);
subgroupPartitionedMaxNV(f4, parti);
subgroupPartitionedAndNV(ballot, parti);
subgroupPartitionedOrNV(ballot, parti);
subgroupPartitionedXorNV(ballot, parti);
subgroupPartitionedInclusiveAddNV(f4, parti);
subgroupPartitionedInclusiveMulNV(f4, parti);
subgroupPartitionedInclusiveMinNV(f4, parti);
subgroupPartitionedInclusiveMaxNV(f4, parti);
subgroupPartitionedInclusiveAndNV(ballot, parti);
subgroupPartitionedInclusiveOrNV(ballot, parti);
subgroupPartitionedInclusiveXorNV(ballot, parti);
subgroupPartitionedExclusiveAddNV(f4, parti);
subgroupPartitionedExclusiveMulNV(f4, parti);
subgroupPartitionedExclusiveMinNV(f4, parti);
subgroupPartitionedExclusiveMaxNV(f4, parti);
subgroupPartitionedExclusiveAndNV(ballot, parti);
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}

View File

@ -0,0 +1,253 @@
#version 460
#extension GL_NV_ray_tracing : enable
vec4 undeclared_errors(vec4 f4)
{
vec4 result;
gl_SubgroupSize; // ERROR, extension not enabled (basic)
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
subgroupBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
subgroupElect(); // ERROR, extension not enabled (basic)
gl_NumSubgroups; // ERROR, only defined in compute
gl_SubgroupID; // ERROR, only defined in compute
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
subgroupAll(true); // ERROR extension not enabled (vote)
subgroupAny(false); // ERROR extension not enabled (vote)
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
subgroupMul(f4); // ERROR, extension not enabled (arith)
subgroupMin(f4); // ERROR, extension not enabled (arith)
subgroupMax(f4); // ERROR, extension not enabled (arith)
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
subgroupOr(ballot); // ERROR, extension not enabled (arith)
subgroupXor(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
return result;
}
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
layout(location = 0) rayPayloadNV vec4 localPayload;
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
void main()
{
uvec3 v0 = gl_LaunchIDNV;
uvec3 v1 = gl_LaunchSizeNV;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexNV;
vec3 v5 = gl_WorldRayOriginNV;
vec3 v6 = gl_WorldRayDirectionNV;
vec3 v7 = gl_ObjectRayOriginNV;
vec3 v8 = gl_ObjectRayDirectionNV;
float v9 = gl_RayTminNV;
float v10 = gl_RayTmaxNV;
float v11 = gl_HitTNV;
uint v12 = gl_HitKindNV;
mat4x3 v13 = gl_ObjectToWorldNV;
mat4x3 v14 = gl_WorldToObjectNV;
traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
}
#extension GL_KHR_shader_subgroup_basic: enable
void basic_works (void)
{
gl_SubgroupSize;
gl_SubgroupInvocationID;
subgroupBarrier();
subgroupMemoryBarrier();
subgroupMemoryBarrierBuffer();
subgroupMemoryBarrierImage();
subgroupElect();
}
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
subgroupBallotBitExtract(ballot, 0);
subgroupBallotBitCount(ballot);
subgroupBallotInclusiveBitCount(ballot);
subgroupBallotExclusiveBitCount(ballot);
subgroupBallotFindLSB(ballot);
subgroupBallotFindMSB(ballot);
}
#extension GL_KHR_shader_subgroup_vote: enable
void vote_works(vec4 f4)
{
subgroupAll(true);
subgroupAny(false);
subgroupAllEqual(f4);
}
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
void shuffle_works(vec4 f4)
{
subgroupShuffle(f4, 0);
subgroupShuffleXor(f4, 0x1);
subgroupShuffleUp(f4, 1);
subgroupShuffleDown(f4, 1);
}
#extension GL_KHR_shader_subgroup_arithmetic: enable
void arith_works(vec4 f4)
{
uvec4 ballot;
subgroupAdd(f4);
subgroupMul(f4);
subgroupMin(f4);
subgroupMax(f4);
subgroupAnd(ballot);
subgroupOr(ballot);
subgroupXor(ballot);
subgroupInclusiveAdd(f4);
subgroupInclusiveMul(f4);
subgroupInclusiveMin(f4);
subgroupInclusiveMax(f4);
subgroupInclusiveAnd(ballot);
subgroupInclusiveOr(ballot);
subgroupInclusiveXor(ballot);
subgroupExclusiveAdd(f4);
subgroupExclusiveMul(f4);
subgroupExclusiveMin(f4);
subgroupExclusiveMax(f4);
subgroupExclusiveAnd(ballot);
subgroupExclusiveOr(ballot);
subgroupExclusiveXor(ballot);
}
#extension GL_KHR_shader_subgroup_clustered: enable
void clustered_works(vec4 f4)
{
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupClusteredAdd(f4, 2);
subgroupClusteredMul(f4, 2);
subgroupClusteredMin(f4, 2);
subgroupClusteredMax(f4, 2);
subgroupClusteredAnd(ballot, 2);
subgroupClusteredOr(ballot, 2);
subgroupClusteredXor(ballot, 2);
}
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
subgroupQuadBroadcast(f4, 0);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
}
#extension GL_NV_shader_subgroup_partitioned: enable
void partitioned_works(vec4 f4)
{
uvec4 parti = subgroupPartitionNV(f4);
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupPartitionedAddNV(f4, parti);
subgroupPartitionedMulNV(f4, parti);
subgroupPartitionedMinNV(f4, parti);
subgroupPartitionedMaxNV(f4, parti);
subgroupPartitionedAndNV(ballot, parti);
subgroupPartitionedOrNV(ballot, parti);
subgroupPartitionedXorNV(ballot, parti);
subgroupPartitionedInclusiveAddNV(f4, parti);
subgroupPartitionedInclusiveMulNV(f4, parti);
subgroupPartitionedInclusiveMinNV(f4, parti);
subgroupPartitionedInclusiveMaxNV(f4, parti);
subgroupPartitionedInclusiveAndNV(ballot, parti);
subgroupPartitionedInclusiveOrNV(ballot, parti);
subgroupPartitionedInclusiveXorNV(ballot, parti);
subgroupPartitionedExclusiveAddNV(f4, parti);
subgroupPartitionedExclusiveMulNV(f4, parti);
subgroupPartitionedExclusiveMinNV(f4, parti);
subgroupPartitionedExclusiveMaxNV(f4, parti);
subgroupPartitionedExclusiveAndNV(ballot, parti);
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}

247
Test/glsl.460.subgroup.rgen Normal file
View File

@ -0,0 +1,247 @@
#version 460
#extension GL_NV_ray_tracing : enable
vec4 undeclared_errors(vec4 f4)
{
vec4 result;
gl_SubgroupSize; // ERROR, extension not enabled (basic)
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
subgroupBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
subgroupElect(); // ERROR, extension not enabled (basic)
gl_NumSubgroups; // ERROR, only defined in compute
gl_SubgroupID; // ERROR, only defined in compute
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
subgroupAll(true); // ERROR extension not enabled (vote)
subgroupAny(false); // ERROR extension not enabled (vote)
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
subgroupMul(f4); // ERROR, extension not enabled (arith)
subgroupMin(f4); // ERROR, extension not enabled (arith)
subgroupMax(f4); // ERROR, extension not enabled (arith)
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
subgroupOr(ballot); // ERROR, extension not enabled (arith)
subgroupXor(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
return result;
}
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0;
layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1; // Unused
layout(location = 0) rayPayloadNV vec4 payload;
layout(shaderRecordNV) buffer block
{
vec3 dir;
vec3 origin;
};
void main()
{
uint lx = gl_LaunchIDNV.x;
uint ly = gl_LaunchIDNV.y;
uint sx = gl_LaunchSizeNV.x;
uint sy = gl_LaunchSizeNV.y;
traceNV(accNV0, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
}
#extension GL_KHR_shader_subgroup_basic: enable
void basic_works (void)
{
gl_SubgroupSize;
gl_SubgroupInvocationID;
subgroupBarrier();
subgroupMemoryBarrier();
subgroupMemoryBarrierBuffer();
subgroupMemoryBarrierImage();
subgroupElect();
}
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
subgroupBallotBitExtract(ballot, 0);
subgroupBallotBitCount(ballot);
subgroupBallotInclusiveBitCount(ballot);
subgroupBallotExclusiveBitCount(ballot);
subgroupBallotFindLSB(ballot);
subgroupBallotFindMSB(ballot);
}
#extension GL_KHR_shader_subgroup_vote: enable
void vote_works(vec4 f4)
{
subgroupAll(true);
subgroupAny(false);
subgroupAllEqual(f4);
}
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
void shuffle_works(vec4 f4)
{
subgroupShuffle(f4, 0);
subgroupShuffleXor(f4, 0x1);
subgroupShuffleUp(f4, 1);
subgroupShuffleDown(f4, 1);
}
#extension GL_KHR_shader_subgroup_arithmetic: enable
void arith_works(vec4 f4)
{
uvec4 ballot;
subgroupAdd(f4);
subgroupMul(f4);
subgroupMin(f4);
subgroupMax(f4);
subgroupAnd(ballot);
subgroupOr(ballot);
subgroupXor(ballot);
subgroupInclusiveAdd(f4);
subgroupInclusiveMul(f4);
subgroupInclusiveMin(f4);
subgroupInclusiveMax(f4);
subgroupInclusiveAnd(ballot);
subgroupInclusiveOr(ballot);
subgroupInclusiveXor(ballot);
subgroupExclusiveAdd(f4);
subgroupExclusiveMul(f4);
subgroupExclusiveMin(f4);
subgroupExclusiveMax(f4);
subgroupExclusiveAnd(ballot);
subgroupExclusiveOr(ballot);
subgroupExclusiveXor(ballot);
}
#extension GL_KHR_shader_subgroup_clustered: enable
void clustered_works(vec4 f4)
{
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupClusteredAdd(f4, 2);
subgroupClusteredMul(f4, 2);
subgroupClusteredMin(f4, 2);
subgroupClusteredMax(f4, 2);
subgroupClusteredAnd(ballot, 2);
subgroupClusteredOr(ballot, 2);
subgroupClusteredXor(ballot, 2);
}
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
subgroupQuadBroadcast(f4, 0);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
}
#extension GL_NV_shader_subgroup_partitioned: enable
void partitioned_works(vec4 f4)
{
uvec4 parti = subgroupPartitionNV(f4);
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupPartitionedAddNV(f4, parti);
subgroupPartitionedMulNV(f4, parti);
subgroupPartitionedMinNV(f4, parti);
subgroupPartitionedMaxNV(f4, parti);
subgroupPartitionedAndNV(ballot, parti);
subgroupPartitionedOrNV(ballot, parti);
subgroupPartitionedXorNV(ballot, parti);
subgroupPartitionedInclusiveAddNV(f4, parti);
subgroupPartitionedInclusiveMulNV(f4, parti);
subgroupPartitionedInclusiveMinNV(f4, parti);
subgroupPartitionedInclusiveMaxNV(f4, parti);
subgroupPartitionedInclusiveAndNV(ballot, parti);
subgroupPartitionedInclusiveOrNV(ballot, parti);
subgroupPartitionedInclusiveXorNV(ballot, parti);
subgroupPartitionedExclusiveAddNV(f4, parti);
subgroupPartitionedExclusiveMulNV(f4, parti);
subgroupPartitionedExclusiveMinNV(f4, parti);
subgroupPartitionedExclusiveMaxNV(f4, parti);
subgroupPartitionedExclusiveAndNV(ballot, parti);
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}

253
Test/glsl.460.subgroup.rint Normal file
View File

@ -0,0 +1,253 @@
#version 460
#extension GL_NV_ray_tracing : enable
vec4 undeclared_errors(vec4 f4)
{
vec4 result;
gl_SubgroupSize; // ERROR, extension not enabled (basic)
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
subgroupBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
subgroupElect(); // ERROR, extension not enabled (basic)
gl_NumSubgroups; // ERROR, only defined in compute
gl_SubgroupID; // ERROR, only defined in compute
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
subgroupAll(true); // ERROR extension not enabled (vote)
subgroupAny(false); // ERROR extension not enabled (vote)
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
subgroupMul(f4); // ERROR, extension not enabled (arith)
subgroupMin(f4); // ERROR, extension not enabled (arith)
subgroupMax(f4); // ERROR, extension not enabled (arith)
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
subgroupOr(ballot); // ERROR, extension not enabled (arith)
subgroupXor(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
return result;
}
hitAttributeNV vec4 iAttr;
void main()
{
uvec3 v0 = gl_LaunchIDNV;
uvec3 v1 = gl_LaunchSizeNV;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexNV;
vec3 v5 = gl_WorldRayOriginNV;
vec3 v6 = gl_WorldRayDirectionNV;
vec3 v7 = gl_ObjectRayOriginNV;
vec3 v8 = gl_ObjectRayDirectionNV;
float v9 = gl_RayTminNV;
float v10 = gl_RayTmaxNV;
mat4x3 v11 = gl_ObjectToWorldNV;
mat4x3 v12 = gl_WorldToObjectNV;
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
reportIntersectionNV(0.5, 1U);
}
#extension GL_KHR_shader_subgroup_basic: enable
void basic_works (void)
{
gl_SubgroupSize;
gl_SubgroupInvocationID;
subgroupBarrier();
subgroupMemoryBarrier();
subgroupMemoryBarrierBuffer();
subgroupMemoryBarrierImage();
subgroupElect();
}
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
subgroupBallotBitExtract(ballot, 0);
subgroupBallotBitCount(ballot);
subgroupBallotInclusiveBitCount(ballot);
subgroupBallotExclusiveBitCount(ballot);
subgroupBallotFindLSB(ballot);
subgroupBallotFindMSB(ballot);
}
#extension GL_KHR_shader_subgroup_vote: enable
void vote_works(vec4 f4)
{
subgroupAll(true);
subgroupAny(false);
subgroupAllEqual(f4);
}
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
void shuffle_works(vec4 f4)
{
subgroupShuffle(f4, 0);
subgroupShuffleXor(f4, 0x1);
subgroupShuffleUp(f4, 1);
subgroupShuffleDown(f4, 1);
}
#extension GL_KHR_shader_subgroup_arithmetic: enable
void arith_works(vec4 f4)
{
uvec4 ballot;
subgroupAdd(f4);
subgroupMul(f4);
subgroupMin(f4);
subgroupMax(f4);
subgroupAnd(ballot);
subgroupOr(ballot);
subgroupXor(ballot);
subgroupInclusiveAdd(f4);
subgroupInclusiveMul(f4);
subgroupInclusiveMin(f4);
subgroupInclusiveMax(f4);
subgroupInclusiveAnd(ballot);
subgroupInclusiveOr(ballot);
subgroupInclusiveXor(ballot);
subgroupExclusiveAdd(f4);
subgroupExclusiveMul(f4);
subgroupExclusiveMin(f4);
subgroupExclusiveMax(f4);
subgroupExclusiveAnd(ballot);
subgroupExclusiveOr(ballot);
subgroupExclusiveXor(ballot);
}
#extension GL_KHR_shader_subgroup_clustered: enable
void clustered_works(vec4 f4)
{
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupClusteredAdd(f4, 2);
subgroupClusteredMul(f4, 2);
subgroupClusteredMin(f4, 2);
subgroupClusteredMax(f4, 2);
subgroupClusteredAnd(ballot, 2);
subgroupClusteredOr(ballot, 2);
subgroupClusteredXor(ballot, 2);
}
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
subgroupQuadBroadcast(f4, 0);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
}
#extension GL_NV_shader_subgroup_partitioned: enable
void partitioned_works(vec4 f4)
{
uvec4 parti = subgroupPartitionNV(f4);
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupPartitionedAddNV(f4, parti);
subgroupPartitionedMulNV(f4, parti);
subgroupPartitionedMinNV(f4, parti);
subgroupPartitionedMaxNV(f4, parti);
subgroupPartitionedAndNV(ballot, parti);
subgroupPartitionedOrNV(ballot, parti);
subgroupPartitionedXorNV(ballot, parti);
subgroupPartitionedInclusiveAddNV(f4, parti);
subgroupPartitionedInclusiveMulNV(f4, parti);
subgroupPartitionedInclusiveMinNV(f4, parti);
subgroupPartitionedInclusiveMaxNV(f4, parti);
subgroupPartitionedInclusiveAndNV(ballot, parti);
subgroupPartitionedInclusiveOrNV(ballot, parti);
subgroupPartitionedInclusiveXorNV(ballot, parti);
subgroupPartitionedExclusiveAddNV(f4, parti);
subgroupPartitionedExclusiveMulNV(f4, parti);
subgroupPartitionedExclusiveMinNV(f4, parti);
subgroupPartitionedExclusiveMaxNV(f4, parti);
subgroupPartitionedExclusiveAndNV(ballot, parti);
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}

View File

@ -0,0 +1,247 @@
#version 460
#extension GL_NV_ray_tracing : enable
vec4 undeclared_errors(vec4 f4)
{
vec4 result;
gl_SubgroupSize; // ERROR, extension not enabled (basic)
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
subgroupBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
subgroupElect(); // ERROR, extension not enabled (basic)
gl_NumSubgroups; // ERROR, only defined in compute
gl_SubgroupID; // ERROR, only defined in compute
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
subgroupAll(true); // ERROR extension not enabled (vote)
subgroupAny(false); // ERROR extension not enabled (vote)
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
subgroupMul(f4); // ERROR, extension not enabled (arith)
subgroupMin(f4); // ERROR, extension not enabled (arith)
subgroupMax(f4); // ERROR, extension not enabled (arith)
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
subgroupOr(ballot); // ERROR, extension not enabled (arith)
subgroupXor(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
return result;
}
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
layout(location = 0) rayPayloadNV vec4 localPayload;
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
void main()
{
uvec3 v0 = gl_LaunchIDNV;
uvec3 v1 = gl_LaunchSizeNV;
vec3 v2 = gl_WorldRayOriginNV;
vec3 v3 = gl_WorldRayDirectionNV;
vec3 v4 = gl_ObjectRayOriginNV;
vec3 v5 = gl_ObjectRayDirectionNV;
float v6 = gl_RayTminNV;
float v7 = gl_RayTmaxNV;
traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
}
#extension GL_KHR_shader_subgroup_basic: enable
void basic_works (void)
{
gl_SubgroupSize;
gl_SubgroupInvocationID;
subgroupBarrier();
subgroupMemoryBarrier();
subgroupMemoryBarrierBuffer();
subgroupMemoryBarrierImage();
subgroupElect();
}
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
subgroupBallotBitExtract(ballot, 0);
subgroupBallotBitCount(ballot);
subgroupBallotInclusiveBitCount(ballot);
subgroupBallotExclusiveBitCount(ballot);
subgroupBallotFindLSB(ballot);
subgroupBallotFindMSB(ballot);
}
#extension GL_KHR_shader_subgroup_vote: enable
void vote_works(vec4 f4)
{
subgroupAll(true);
subgroupAny(false);
subgroupAllEqual(f4);
}
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
void shuffle_works(vec4 f4)
{
subgroupShuffle(f4, 0);
subgroupShuffleXor(f4, 0x1);
subgroupShuffleUp(f4, 1);
subgroupShuffleDown(f4, 1);
}
#extension GL_KHR_shader_subgroup_arithmetic: enable
void arith_works(vec4 f4)
{
uvec4 ballot;
subgroupAdd(f4);
subgroupMul(f4);
subgroupMin(f4);
subgroupMax(f4);
subgroupAnd(ballot);
subgroupOr(ballot);
subgroupXor(ballot);
subgroupInclusiveAdd(f4);
subgroupInclusiveMul(f4);
subgroupInclusiveMin(f4);
subgroupInclusiveMax(f4);
subgroupInclusiveAnd(ballot);
subgroupInclusiveOr(ballot);
subgroupInclusiveXor(ballot);
subgroupExclusiveAdd(f4);
subgroupExclusiveMul(f4);
subgroupExclusiveMin(f4);
subgroupExclusiveMax(f4);
subgroupExclusiveAnd(ballot);
subgroupExclusiveOr(ballot);
subgroupExclusiveXor(ballot);
}
#extension GL_KHR_shader_subgroup_clustered: enable
void clustered_works(vec4 f4)
{
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupClusteredAdd(f4, 2);
subgroupClusteredMul(f4, 2);
subgroupClusteredMin(f4, 2);
subgroupClusteredMax(f4, 2);
subgroupClusteredAnd(ballot, 2);
subgroupClusteredOr(ballot, 2);
subgroupClusteredXor(ballot, 2);
}
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
subgroupQuadBroadcast(f4, 0);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
}
#extension GL_NV_shader_subgroup_partitioned: enable
void partitioned_works(vec4 f4)
{
uvec4 parti = subgroupPartitionNV(f4);
uvec4 ballot = uvec4(0x55,0,0,0);
subgroupPartitionedAddNV(f4, parti);
subgroupPartitionedMulNV(f4, parti);
subgroupPartitionedMinNV(f4, parti);
subgroupPartitionedMaxNV(f4, parti);
subgroupPartitionedAndNV(ballot, parti);
subgroupPartitionedOrNV(ballot, parti);
subgroupPartitionedXorNV(ballot, parti);
subgroupPartitionedInclusiveAddNV(f4, parti);
subgroupPartitionedInclusiveMulNV(f4, parti);
subgroupPartitionedInclusiveMinNV(f4, parti);
subgroupPartitionedInclusiveMaxNV(f4, parti);
subgroupPartitionedInclusiveAndNV(ballot, parti);
subgroupPartitionedInclusiveOrNV(ballot, parti);
subgroupPartitionedInclusiveXorNV(ballot, parti);
subgroupPartitionedExclusiveAddNV(f4, parti);
subgroupPartitionedExclusiveMulNV(f4, parti);
subgroupPartitionedExclusiveMinNV(f4, parti);
subgroupPartitionedExclusiveMaxNV(f4, parti);
subgroupPartitionedExclusiveAndNV(ballot, parti);
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}

View File

@ -255,6 +255,12 @@ INSTANTIATE_TEST_CASE_P(
"glsl.450.subgroupVote.comp",
"glsl.460.subgroup.mesh",
"glsl.460.subgroup.task",
"glsl.460.subgroup.rahit",
"glsl.460.subgroup.rcall",
"glsl.460.subgroup.rchit",
"glsl.460.subgroup.rgen",
"glsl.460.subgroup.rint",
"glsl.460.subgroup.rmiss",
"glsl.es320.subgroup.frag",
"glsl.es320.subgroup.geom",
"glsl.es320.subgroup.tesc",