Merge pull request #1782 from dgkoch/fix_1735
Fix subgroup support for ray tracing
This commit is contained in:
commit
27a3e4c3c4
@ -888,7 +888,7 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
builder.addCapability(spv::CapabilityShadingRateNV);
|
||||
return spv::BuiltInInvocationsPerPixelNV;
|
||||
|
||||
// raytracing
|
||||
// ray tracing
|
||||
case glslang::EbvLaunchIdNV:
|
||||
return spv::BuiltInLaunchIdNV;
|
||||
case glslang::EbvLaunchSizeNV:
|
||||
@ -917,6 +917,8 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
return spv::BuiltInWorldToObjectNV;
|
||||
case glslang::EbvIncomingRayFlagsNV:
|
||||
return spv::BuiltInIncomingRayFlagsNV;
|
||||
|
||||
// barycentrics
|
||||
case glslang::EbvBaryCoordNV:
|
||||
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
||||
@ -925,23 +927,25 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
||||
return spv::BuiltInBaryCoordNoPerspNV;
|
||||
case glslang::EbvTaskCountNV:
|
||||
|
||||
// mesh shaders
|
||||
case glslang::EbvTaskCountNV:
|
||||
return spv::BuiltInTaskCountNV;
|
||||
case glslang::EbvPrimitiveCountNV:
|
||||
case glslang::EbvPrimitiveCountNV:
|
||||
return spv::BuiltInPrimitiveCountNV;
|
||||
case glslang::EbvPrimitiveIndicesNV:
|
||||
case glslang::EbvPrimitiveIndicesNV:
|
||||
return spv::BuiltInPrimitiveIndicesNV;
|
||||
case glslang::EbvClipDistancePerViewNV:
|
||||
case glslang::EbvClipDistancePerViewNV:
|
||||
return spv::BuiltInClipDistancePerViewNV;
|
||||
case glslang::EbvCullDistancePerViewNV:
|
||||
case glslang::EbvCullDistancePerViewNV:
|
||||
return spv::BuiltInCullDistancePerViewNV;
|
||||
case glslang::EbvLayerPerViewNV:
|
||||
case glslang::EbvLayerPerViewNV:
|
||||
return spv::BuiltInLayerPerViewNV;
|
||||
case glslang::EbvMeshViewCountNV:
|
||||
case glslang::EbvMeshViewCountNV:
|
||||
return spv::BuiltInMeshViewCountNV;
|
||||
case glslang::EbvMeshViewIndicesNV:
|
||||
case glslang::EbvMeshViewIndicesNV:
|
||||
return spv::BuiltInMeshViewIndicesNV;
|
||||
#endif
|
||||
#endif
|
||||
default:
|
||||
return spv::BuiltInMax;
|
||||
}
|
||||
|
@ -1,19 +1,602 @@
|
||||
glsl.450.subgroup.frag
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( flat in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:105 Function Definition: main( ( global void)
|
||||
0:105 Function Parameters:
|
||||
0:107 Sequence
|
||||
0:107 move second child to first child ( temp 4-component vector of uint)
|
||||
0:107 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:107 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:107 'gl_SubgroupSize' ( flat in uint SubgroupSize)
|
||||
0:107 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:108 subgroupBarrier ( global void)
|
||||
0:109 subgroupMemoryBarrier ( global void)
|
||||
0:110 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:111 subgroupMemoryBarrierImage ( global void)
|
||||
0:112 subgroupElect ( global bool)
|
||||
0:116 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:116 Function Parameters:
|
||||
0:116 'f4' ( in 4-component vector of float)
|
||||
0:117 Sequence
|
||||
0:117 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
|
||||
0:118 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
|
||||
0:119 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
|
||||
0:120 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
|
||||
0:121 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
|
||||
0:122 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:122 'f4' ( in 4-component vector of float)
|
||||
0:122 Constant:
|
||||
0:122 0 (const uint)
|
||||
0:123 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:123 'f4' ( in 4-component vector of float)
|
||||
0:124 Sequence
|
||||
0:124 move second child to first child ( temp 4-component vector of uint)
|
||||
0:124 'ballot' ( temp 4-component vector of uint)
|
||||
0:124 subgroupBallot ( global 4-component vector of uint)
|
||||
0:124 Constant:
|
||||
0:124 false (const bool)
|
||||
0:125 subgroupInverseBallot ( global bool)
|
||||
0:125 Constant:
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:126 subgroupBallotBitExtract ( global bool)
|
||||
0:126 'ballot' ( temp 4-component vector of uint)
|
||||
0:126 Constant:
|
||||
0:126 0 (const uint)
|
||||
0:127 subgroupBallotBitCount ( global uint)
|
||||
0:127 'ballot' ( temp 4-component vector of uint)
|
||||
0:128 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:128 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 subgroupBallotFindLSB ( global uint)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 subgroupBallotFindMSB ( global uint)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 Function Definition: vote_works(vf4; ( global void)
|
||||
0:135 Function Parameters:
|
||||
0:135 'f4' ( in 4-component vector of float)
|
||||
0:137 Sequence
|
||||
0:137 subgroupAll ( global bool)
|
||||
0:137 Constant:
|
||||
0:137 true (const bool)
|
||||
0:138 subgroupAny ( global bool)
|
||||
0:138 Constant:
|
||||
0:138 false (const bool)
|
||||
0:139 subgroupAllEqual ( global bool)
|
||||
0:139 'f4' ( in 4-component vector of float)
|
||||
0:144 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:144 Function Parameters:
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:146 Sequence
|
||||
0:146 subgroupShuffle ( global 4-component vector of float)
|
||||
0:146 'f4' ( in 4-component vector of float)
|
||||
0:146 Constant:
|
||||
0:146 0 (const uint)
|
||||
0:147 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:147 'f4' ( in 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 1 (const uint)
|
||||
0:148 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:148 Constant:
|
||||
0:148 1 (const uint)
|
||||
0:149 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:149 Constant:
|
||||
0:149 1 (const uint)
|
||||
0:153 Function Definition: arith_works(vf4; ( global void)
|
||||
0:153 Function Parameters:
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:156 subgroupAdd ( global 4-component vector of float)
|
||||
0:156 'f4' ( in 4-component vector of float)
|
||||
0:157 subgroupMul ( global 4-component vector of float)
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:158 subgroupMin ( global 4-component vector of float)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:159 subgroupMax ( global 4-component vector of float)
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:160 subgroupAnd ( global 4-component vector of uint)
|
||||
0:160 'ballot' ( temp 4-component vector of uint)
|
||||
0:161 subgroupOr ( global 4-component vector of uint)
|
||||
0:161 'ballot' ( temp 4-component vector of uint)
|
||||
0:162 subgroupXor ( global 4-component vector of uint)
|
||||
0:162 'ballot' ( temp 4-component vector of uint)
|
||||
0:163 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:166 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:167 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:168 'ballot' ( temp 4-component vector of uint)
|
||||
0:169 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:169 'ballot' ( temp 4-component vector of uint)
|
||||
0:170 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:174 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:175 'ballot' ( temp 4-component vector of uint)
|
||||
0:176 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:176 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:180 Function Parameters:
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:182 Sequence
|
||||
0:182 Sequence
|
||||
0:182 move second child to first child ( temp 4-component vector of uint)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 Constant:
|
||||
0:182 85 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:183 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:183 Constant:
|
||||
0:183 2 (const uint)
|
||||
0:184 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:184 Constant:
|
||||
0:184 2 (const uint)
|
||||
0:185 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:185 Constant:
|
||||
0:185 2 (const uint)
|
||||
0:186 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:186 Constant:
|
||||
0:186 2 (const uint)
|
||||
0:187 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 Constant:
|
||||
0:187 2 (const uint)
|
||||
0:188 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:189 'ballot' ( temp 4-component vector of uint)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:193 Function Definition: quad_works(vf4; ( global void)
|
||||
0:193 Function Parameters:
|
||||
0:193 'f4' ( in 4-component vector of float)
|
||||
0:195 Sequence
|
||||
0:195 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:195 Constant:
|
||||
0:195 0 (const uint)
|
||||
0:196 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:197 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:198 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:202 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:202 Function Parameters:
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:204 Sequence
|
||||
0:204 Sequence
|
||||
0:204 move second child to first child ( temp 4-component vector of uint)
|
||||
0:204 'parti' ( temp 4-component vector of uint)
|
||||
0:204 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:205 Sequence
|
||||
0:205 move second child to first child ( temp 4-component vector of uint)
|
||||
0:205 'ballot' ( temp 4-component vector of uint)
|
||||
0:205 Constant:
|
||||
0:205 85 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:206 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:206 'parti' ( temp 4-component vector of uint)
|
||||
0:207 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:207 'parti' ( temp 4-component vector of uint)
|
||||
0:208 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:208 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:209 'parti' ( temp 4-component vector of uint)
|
||||
0:210 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:211 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:211 'ballot' ( temp 4-component vector of uint)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:212 'ballot' ( temp 4-component vector of uint)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:219 'ballot' ( temp 4-component vector of uint)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
||||
@ -22,20 +605,33 @@ Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:105 Function Definition: main( ( global void)
|
||||
0:105 Function Parameters:
|
||||
0:107 Sequence
|
||||
0:107 move second child to first child ( temp 4-component vector of uint)
|
||||
0:107 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:107 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:107 'gl_SubgroupSize' ( flat in uint SubgroupSize)
|
||||
0:107 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:108 subgroupBarrier ( global void)
|
||||
0:109 subgroupMemoryBarrier ( global void)
|
||||
0:110 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:111 subgroupMemoryBarrierImage ( global void)
|
||||
0:112 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
||||
|
@ -1,28 +1,611 @@
|
||||
glsl.450.subgroup.geom
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
invocations = -1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:111 Function Definition: main( ( global void)
|
||||
0:111 Function Parameters:
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 4-component vector of uint)
|
||||
0:113 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:113 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:113 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:113 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:113 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:113 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:114 subgroupBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrier ( global void)
|
||||
0:116 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:117 subgroupMemoryBarrierImage ( global void)
|
||||
0:118 subgroupElect ( global bool)
|
||||
0:122 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:122 Function Parameters:
|
||||
0:122 'f4' ( in 4-component vector of float)
|
||||
0:123 Sequence
|
||||
0:123 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:124 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:125 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:126 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:127 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:128 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:128 'f4' ( in 4-component vector of float)
|
||||
0:128 Constant:
|
||||
0:128 0 (const uint)
|
||||
0:129 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:129 'f4' ( in 4-component vector of float)
|
||||
0:130 Sequence
|
||||
0:130 move second child to first child ( temp 4-component vector of uint)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 subgroupBallot ( global 4-component vector of uint)
|
||||
0:130 Constant:
|
||||
0:130 false (const bool)
|
||||
0:131 subgroupInverseBallot ( global bool)
|
||||
0:131 Constant:
|
||||
0:131 1 (const uint)
|
||||
0:131 1 (const uint)
|
||||
0:131 1 (const uint)
|
||||
0:131 1 (const uint)
|
||||
0:132 subgroupBallotBitExtract ( global bool)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:132 Constant:
|
||||
0:132 0 (const uint)
|
||||
0:133 subgroupBallotBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 subgroupBallotFindLSB ( global uint)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:137 subgroupBallotFindMSB ( global uint)
|
||||
0:137 'ballot' ( temp 4-component vector of uint)
|
||||
0:141 Function Definition: vote_works(vf4; ( global void)
|
||||
0:141 Function Parameters:
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:143 Sequence
|
||||
0:143 subgroupAll ( global bool)
|
||||
0:143 Constant:
|
||||
0:143 true (const bool)
|
||||
0:144 subgroupAny ( global bool)
|
||||
0:144 Constant:
|
||||
0:144 false (const bool)
|
||||
0:145 subgroupAllEqual ( global bool)
|
||||
0:145 'f4' ( in 4-component vector of float)
|
||||
0:150 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:150 Function Parameters:
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:152 Sequence
|
||||
0:152 subgroupShuffle ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 0 (const uint)
|
||||
0:153 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:154 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:154 Constant:
|
||||
0:154 1 (const uint)
|
||||
0:155 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:155 'f4' ( in 4-component vector of float)
|
||||
0:155 Constant:
|
||||
0:155 1 (const uint)
|
||||
0:159 Function Definition: arith_works(vf4; ( global void)
|
||||
0:159 Function Parameters:
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:162 subgroupAdd ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMul ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupMin ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupMax ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:166 subgroupAnd ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupOr ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupXor ( global 4-component vector of uint)
|
||||
0:168 'ballot' ( temp 4-component vector of uint)
|
||||
0:169 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:175 'ballot' ( temp 4-component vector of uint)
|
||||
0:176 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:179 'f4' ( in 4-component vector of float)
|
||||
0:180 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:186 Function Parameters:
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:188 Sequence
|
||||
0:188 Sequence
|
||||
0:188 move second child to first child ( temp 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 Constant:
|
||||
0:188 85 (const uint)
|
||||
0:188 0 (const uint)
|
||||
0:188 0 (const uint)
|
||||
0:188 0 (const uint)
|
||||
0:189 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:192 'f4' ( in 4-component vector of float)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:195 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:195 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 Constant:
|
||||
0:195 2 (const uint)
|
||||
0:199 Function Definition: quad_works(vf4; ( global void)
|
||||
0:199 Function Parameters:
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:201 Sequence
|
||||
0:201 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:201 Constant:
|
||||
0:201 0 (const uint)
|
||||
0:202 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:203 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:204 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:208 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:208 Function Parameters:
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp 4-component vector of uint)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:210 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:211 Sequence
|
||||
0:211 move second child to first child ( temp 4-component vector of uint)
|
||||
0:211 'ballot' ( temp 4-component vector of uint)
|
||||
0:211 Constant:
|
||||
0:211 85 (const uint)
|
||||
0:211 0 (const uint)
|
||||
0:211 0 (const uint)
|
||||
0:211 0 (const uint)
|
||||
0:212 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
@ -31,29 +614,42 @@ Linked geometry stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
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_shader_subgroup_partitioned
|
||||
invocations = 1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:111 Function Definition: main( ( global void)
|
||||
0:111 Function Parameters:
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 4-component vector of uint)
|
||||
0:113 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:113 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:113 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:113 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:113 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:113 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:114 subgroupBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrier ( global void)
|
||||
0:116 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:117 subgroupMemoryBarrierImage ( global void)
|
||||
0:118 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
|
@ -1,25 +1,608 @@
|
||||
glsl.450.subgroup.tesc
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:121 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:121 Function Parameters:
|
||||
0:121 'f4' ( in 4-component vector of float)
|
||||
0:122 Sequence
|
||||
0:122 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:123 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:124 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:125 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:126 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:127 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:127 'f4' ( in 4-component vector of float)
|
||||
0:127 Constant:
|
||||
0:127 0 (const uint)
|
||||
0:128 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:128 'f4' ( in 4-component vector of float)
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp 4-component vector of uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallot ( global 4-component vector of uint)
|
||||
0:129 Constant:
|
||||
0:129 false (const bool)
|
||||
0:130 subgroupInverseBallot ( global bool)
|
||||
0:130 Constant:
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:131 subgroupBallotBitExtract ( global bool)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 Constant:
|
||||
0:131 0 (const uint)
|
||||
0:132 subgroupBallotBitCount ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotFindLSB ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 subgroupBallotFindMSB ( global uint)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:140 Function Definition: vote_works(vf4; ( global void)
|
||||
0:140 Function Parameters:
|
||||
0:140 'f4' ( in 4-component vector of float)
|
||||
0:142 Sequence
|
||||
0:142 subgroupAll ( global bool)
|
||||
0:142 Constant:
|
||||
0:142 true (const bool)
|
||||
0:143 subgroupAny ( global bool)
|
||||
0:143 Constant:
|
||||
0:143 false (const bool)
|
||||
0:144 subgroupAllEqual ( global bool)
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:149 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:149 Function Parameters:
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:151 Sequence
|
||||
0:151 subgroupShuffle ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 0 (const uint)
|
||||
0:152 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:154 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:154 Constant:
|
||||
0:154 1 (const uint)
|
||||
0:158 Function Definition: arith_works(vf4; ( global void)
|
||||
0:158 Function Parameters:
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:161 subgroupAdd ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupMul ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMin ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupMax ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupAnd ( global 4-component vector of uint)
|
||||
0:165 'ballot' ( temp 4-component vector of uint)
|
||||
0:166 subgroupOr ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupXor ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:185 Function Parameters:
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:187 Sequence
|
||||
0:187 Sequence
|
||||
0:187 move second child to first child ( temp 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 Constant:
|
||||
0:187 85 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:188 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:198 Function Definition: quad_works(vf4; ( global void)
|
||||
0:198 Function Parameters:
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:200 Sequence
|
||||
0:200 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:200 Constant:
|
||||
0:200 0 (const uint)
|
||||
0:201 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:203 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:207 Function Definition: partitioned_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 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:210 Constant:
|
||||
0:210 85 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:211 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
@ -28,26 +611,39 @@ Linked tessellation control stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
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_shader_subgroup_partitioned
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
|
@ -1,27 +1,610 @@
|
||||
glsl.450.subgroup.tese
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
input primitive = isolines
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:121 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:121 Function Parameters:
|
||||
0:121 'f4' ( in 4-component vector of float)
|
||||
0:122 Sequence
|
||||
0:122 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:123 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:124 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:125 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:126 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:127 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:127 'f4' ( in 4-component vector of float)
|
||||
0:127 Constant:
|
||||
0:127 0 (const uint)
|
||||
0:128 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:128 'f4' ( in 4-component vector of float)
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp 4-component vector of uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallot ( global 4-component vector of uint)
|
||||
0:129 Constant:
|
||||
0:129 false (const bool)
|
||||
0:130 subgroupInverseBallot ( global bool)
|
||||
0:130 Constant:
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:131 subgroupBallotBitExtract ( global bool)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 Constant:
|
||||
0:131 0 (const uint)
|
||||
0:132 subgroupBallotBitCount ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotFindLSB ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 subgroupBallotFindMSB ( global uint)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:140 Function Definition: vote_works(vf4; ( global void)
|
||||
0:140 Function Parameters:
|
||||
0:140 'f4' ( in 4-component vector of float)
|
||||
0:142 Sequence
|
||||
0:142 subgroupAll ( global bool)
|
||||
0:142 Constant:
|
||||
0:142 true (const bool)
|
||||
0:143 subgroupAny ( global bool)
|
||||
0:143 Constant:
|
||||
0:143 false (const bool)
|
||||
0:144 subgroupAllEqual ( global bool)
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:149 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:149 Function Parameters:
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:151 Sequence
|
||||
0:151 subgroupShuffle ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 0 (const uint)
|
||||
0:152 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:154 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:154 Constant:
|
||||
0:154 1 (const uint)
|
||||
0:158 Function Definition: arith_works(vf4; ( global void)
|
||||
0:158 Function Parameters:
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:161 subgroupAdd ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupMul ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMin ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupMax ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupAnd ( global 4-component vector of uint)
|
||||
0:165 'ballot' ( temp 4-component vector of uint)
|
||||
0:166 subgroupOr ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupXor ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:185 Function Parameters:
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:187 Sequence
|
||||
0:187 Sequence
|
||||
0:187 move second child to first child ( temp 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 Constant:
|
||||
0:187 85 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:188 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:198 Function Definition: quad_works(vf4; ( global void)
|
||||
0:198 Function Parameters:
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:200 Sequence
|
||||
0:200 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:200 Constant:
|
||||
0:200 0 (const uint)
|
||||
0:201 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:203 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:207 Function Definition: partitioned_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 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:210 Constant:
|
||||
0:210 85 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:211 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
@ -30,28 +613,41 @@ Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
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_shader_subgroup_partitioned
|
||||
input primitive = isolines
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
|
@ -1,24 +1,607 @@
|
||||
glsl.450.subgroup.vert
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:10 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 4-component vector of uint)
|
||||
0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:111 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:111 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:111 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:111 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:112 subgroupBarrier ( global void)
|
||||
0:113 subgroupMemoryBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:115 subgroupMemoryBarrierImage ( global void)
|
||||
0:116 subgroupElect ( global bool)
|
||||
0:120 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:120 Function Parameters:
|
||||
0:120 'f4' ( in 4-component vector of float)
|
||||
0:121 Sequence
|
||||
0:121 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:122 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:123 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:124 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:125 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:126 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:126 'f4' ( in 4-component vector of float)
|
||||
0:126 Constant:
|
||||
0:126 0 (const uint)
|
||||
0:127 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:127 'f4' ( in 4-component vector of float)
|
||||
0:128 Sequence
|
||||
0:128 move second child to first child ( temp 4-component vector of uint)
|
||||
0:128 'ballot' ( temp 4-component vector of uint)
|
||||
0:128 subgroupBallot ( global 4-component vector of uint)
|
||||
0:128 Constant:
|
||||
0:128 false (const bool)
|
||||
0:129 subgroupInverseBallot ( global bool)
|
||||
0:129 Constant:
|
||||
0:129 1 (const uint)
|
||||
0:129 1 (const uint)
|
||||
0:129 1 (const uint)
|
||||
0:129 1 (const uint)
|
||||
0:130 subgroupBallotBitExtract ( global bool)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 Constant:
|
||||
0:130 0 (const uint)
|
||||
0:131 subgroupBallotBitCount ( global uint)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:132 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotFindLSB ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotFindMSB ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:139 Function Definition: vote_works(vf4; ( global void)
|
||||
0:139 Function Parameters:
|
||||
0:139 'f4' ( in 4-component vector of float)
|
||||
0:141 Sequence
|
||||
0:141 subgroupAll ( global bool)
|
||||
0:141 Constant:
|
||||
0:141 true (const bool)
|
||||
0:142 subgroupAny ( global bool)
|
||||
0:142 Constant:
|
||||
0:142 false (const bool)
|
||||
0:143 subgroupAllEqual ( global bool)
|
||||
0:143 'f4' ( in 4-component vector of float)
|
||||
0:148 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:148 Function Parameters:
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:150 Sequence
|
||||
0:150 subgroupShuffle ( global 4-component vector of float)
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:150 Constant:
|
||||
0:150 0 (const uint)
|
||||
0:151 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 1 (const uint)
|
||||
0:152 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:157 Function Definition: arith_works(vf4; ( global void)
|
||||
0:157 Function Parameters:
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:160 subgroupAdd ( global 4-component vector of float)
|
||||
0:160 'f4' ( in 4-component vector of float)
|
||||
0:161 subgroupMul ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupMin ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMax ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupAnd ( global 4-component vector of uint)
|
||||
0:164 'ballot' ( temp 4-component vector of uint)
|
||||
0:165 subgroupOr ( global 4-component vector of uint)
|
||||
0:165 'ballot' ( temp 4-component vector of uint)
|
||||
0:166 subgroupXor ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:168 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:171 'ballot' ( temp 4-component vector of uint)
|
||||
0:172 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:175 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:178 'ballot' ( temp 4-component vector of uint)
|
||||
0:179 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:184 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:184 Function Parameters:
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:186 Sequence
|
||||
0:186 Sequence
|
||||
0:186 move second child to first child ( temp 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 Constant:
|
||||
0:186 85 (const uint)
|
||||
0:186 0 (const uint)
|
||||
0:186 0 (const uint)
|
||||
0:186 0 (const uint)
|
||||
0:187 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:187 'f4' ( in 4-component vector of float)
|
||||
0:187 Constant:
|
||||
0:187 2 (const uint)
|
||||
0:188 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:191 'ballot' ( temp 4-component vector of uint)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:197 Function Definition: quad_works(vf4; ( global void)
|
||||
0:197 Function Parameters:
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:199 Sequence
|
||||
0:199 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:199 Constant:
|
||||
0:199 0 (const uint)
|
||||
0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:201 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:206 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:206 Function Parameters:
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:208 Sequence
|
||||
0:208 Sequence
|
||||
0:208 move second child to first child ( temp 4-component vector of uint)
|
||||
0:208 'parti' ( temp 4-component vector of uint)
|
||||
0:208 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp 4-component vector of uint)
|
||||
0:209 'ballot' ( temp 4-component vector of uint)
|
||||
0:209 Constant:
|
||||
0:209 85 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:210 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:211 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:214 'ballot' ( temp 4-component vector of uint)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:221 'ballot' ( temp 4-component vector of uint)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:228 'ballot' ( temp 4-component vector of uint)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
@ -29,25 +612,38 @@ Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:10 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 4-component vector of uint)
|
||||
0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:111 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:111 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:111 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:111 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:112 subgroupBarrier ( global void)
|
||||
0:113 subgroupMemoryBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:115 subgroupMemoryBarrierImage ( global void)
|
||||
0:116 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@ -7288,8 +7288,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@ -23,11 +23,11 @@ local_size = (8, 8, 1)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
@ -1165,8 +1165,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@ -1176,11 +1176,11 @@ local_size = (8, 8, 1)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
|
@ -16,8 +16,8 @@ ERROR: node is still EOpNull!
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@ -27,11 +27,11 @@ ERROR: node is still EOpNull!
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
@ -149,8 +149,8 @@ ERROR: node is still EOpNull!
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@ -160,11 +160,11 @@ ERROR: node is still EOpNull!
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
|
@ -1,59 +1,636 @@
|
||||
glsl.450.subgroupBasic.comp
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp int)
|
||||
0:14 indirect index (layout( column_major shared) temp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp int)
|
||||
0:15 indirect index (layout( column_major shared) temp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp int)
|
||||
0:16 indirect index (layout( column_major shared) temp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 indirect index (layout( column_major shared) temp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:14 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:15 subgroupMemoryBarrierShared ( global void)
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:112 Function Definition: main( ( global void)
|
||||
0:112 Function Parameters:
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 indirect index (layout( column_major shared) temp int)
|
||||
0:114 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:114 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:114 Constant:
|
||||
0:114 0 (const int)
|
||||
0:114 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:114 Constant:
|
||||
0:114 1 (const int)
|
||||
0:115 move second child to first child ( temp int)
|
||||
0:115 indirect index (layout( column_major shared) temp int)
|
||||
0:115 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:115 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:115 Constant:
|
||||
0:115 0 (const int)
|
||||
0:115 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:115 Constant:
|
||||
0:115 1 (const int)
|
||||
0:116 move second child to first child ( temp int)
|
||||
0:116 indirect index (layout( column_major shared) temp int)
|
||||
0:116 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:116 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:116 Constant:
|
||||
0:116 0 (const int)
|
||||
0:116 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:116 Constant:
|
||||
0:116 1 (const int)
|
||||
0:117 move second child to first child ( temp int)
|
||||
0:117 indirect index (layout( column_major shared) temp int)
|
||||
0:117 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:117 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:117 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:117 Test condition and select ( temp int)
|
||||
0:117 Condition
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:117 true case
|
||||
0:117 Constant:
|
||||
0:117 1 (const int)
|
||||
0:117 false case
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:118 subgroupBarrier ( global void)
|
||||
0:119 subgroupMemoryBarrier ( global void)
|
||||
0:120 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:121 subgroupMemoryBarrierShared ( global void)
|
||||
0:122 subgroupMemoryBarrierImage ( global void)
|
||||
0:126 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:126 Function Parameters:
|
||||
0:126 'f4' ( in 4-component vector of float)
|
||||
0:127 Sequence
|
||||
0:127 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:128 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:129 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:130 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:131 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:132 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:132 'f4' ( in 4-component vector of float)
|
||||
0:132 Constant:
|
||||
0:132 0 (const uint)
|
||||
0:133 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:133 'f4' ( in 4-component vector of float)
|
||||
0:134 Sequence
|
||||
0:134 move second child to first child ( temp 4-component vector of uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallot ( global 4-component vector of uint)
|
||||
0:134 Constant:
|
||||
0:134 false (const bool)
|
||||
0:135 subgroupInverseBallot ( global bool)
|
||||
0:135 Constant:
|
||||
0:135 1 (const uint)
|
||||
0:135 1 (const uint)
|
||||
0:135 1 (const uint)
|
||||
0:135 1 (const uint)
|
||||
0:136 subgroupBallotBitExtract ( global bool)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 Constant:
|
||||
0:136 0 (const uint)
|
||||
0:137 subgroupBallotBitCount ( global uint)
|
||||
0:137 'ballot' ( temp 4-component vector of uint)
|
||||
0:138 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:138 'ballot' ( temp 4-component vector of uint)
|
||||
0:139 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:139 'ballot' ( temp 4-component vector of uint)
|
||||
0:140 subgroupBallotFindLSB ( global uint)
|
||||
0:140 'ballot' ( temp 4-component vector of uint)
|
||||
0:141 subgroupBallotFindMSB ( global uint)
|
||||
0:141 'ballot' ( temp 4-component vector of uint)
|
||||
0:145 Function Definition: vote_works(vf4; ( global void)
|
||||
0:145 Function Parameters:
|
||||
0:145 'f4' ( in 4-component vector of float)
|
||||
0:147 Sequence
|
||||
0:147 subgroupAll ( global bool)
|
||||
0:147 Constant:
|
||||
0:147 true (const bool)
|
||||
0:148 subgroupAny ( global bool)
|
||||
0:148 Constant:
|
||||
0:148 false (const bool)
|
||||
0:149 subgroupAllEqual ( global bool)
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:154 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:154 Function Parameters:
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:156 Sequence
|
||||
0:156 subgroupShuffle ( global 4-component vector of float)
|
||||
0:156 'f4' ( in 4-component vector of float)
|
||||
0:156 Constant:
|
||||
0:156 0 (const uint)
|
||||
0:157 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:157 Constant:
|
||||
0:157 1 (const uint)
|
||||
0:158 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:158 Constant:
|
||||
0:158 1 (const uint)
|
||||
0:159 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:159 Constant:
|
||||
0:159 1 (const uint)
|
||||
0:163 Function Definition: arith_works(vf4; ( global void)
|
||||
0:163 Function Parameters:
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:166 subgroupAdd ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:167 subgroupMul ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:168 subgroupMin ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupMax ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupAnd ( global 4-component vector of uint)
|
||||
0:170 'ballot' ( temp 4-component vector of uint)
|
||||
0:171 subgroupOr ( global 4-component vector of uint)
|
||||
0:171 'ballot' ( temp 4-component vector of uint)
|
||||
0:172 subgroupXor ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:174 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:175 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:177 'ballot' ( temp 4-component vector of uint)
|
||||
0:178 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:178 'ballot' ( temp 4-component vector of uint)
|
||||
0:179 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:181 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:181 'f4' ( in 4-component vector of float)
|
||||
0:182 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:183 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:184 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:185 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:190 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:190 Function Parameters:
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:192 Sequence
|
||||
0:192 Sequence
|
||||
0:192 move second child to first child ( temp 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 85 (const uint)
|
||||
0:192 0 (const uint)
|
||||
0:192 0 (const uint)
|
||||
0:192 0 (const uint)
|
||||
0:193 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:193 'f4' ( in 4-component vector of float)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:194 'f4' ( in 4-component vector of float)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:195 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:195 Constant:
|
||||
0:195 2 (const uint)
|
||||
0:196 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:196 Constant:
|
||||
0:196 2 (const uint)
|
||||
0:197 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:197 'ballot' ( temp 4-component vector of uint)
|
||||
0:197 Constant:
|
||||
0:197 2 (const uint)
|
||||
0:198 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:198 'ballot' ( temp 4-component vector of uint)
|
||||
0:198 Constant:
|
||||
0:198 2 (const uint)
|
||||
0:199 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:199 'ballot' ( temp 4-component vector of uint)
|
||||
0:199 Constant:
|
||||
0:199 2 (const uint)
|
||||
0:203 Function Definition: quad_works(vf4; ( global void)
|
||||
0:203 Function Parameters:
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:205 Sequence
|
||||
0:205 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:205 Constant:
|
||||
0:205 0 (const uint)
|
||||
0:206 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:207 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:208 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:212 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:212 Function Parameters:
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:214 Sequence
|
||||
0:214 Sequence
|
||||
0:214 move second child to first child ( temp 4-component vector of uint)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:215 Sequence
|
||||
0:215 move second child to first child ( temp 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 Constant:
|
||||
0:215 85 (const uint)
|
||||
0:215 0 (const uint)
|
||||
0:215 0 (const uint)
|
||||
0:215 0 (const uint)
|
||||
0:216 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:220 'ballot' ( temp 4-component vector of uint)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:221 'ballot' ( temp 4-component vector of uint)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:228 'ballot' ( temp 4-component vector of uint)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
@ -66,60 +643,68 @@ Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
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_shader_subgroup_partitioned
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp int)
|
||||
0:14 indirect index (layout( column_major shared) temp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp int)
|
||||
0:15 indirect index (layout( column_major shared) temp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp int)
|
||||
0:16 indirect index (layout( column_major shared) temp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 indirect index (layout( column_major shared) temp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
ERROR: node is still EOpNull!
|
||||
0:112 Function Definition: main( ( global void)
|
||||
0:112 Function Parameters:
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 indirect index (layout( column_major shared) temp int)
|
||||
0:114 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:114 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:114 Constant:
|
||||
0:114 0 (const int)
|
||||
0:114 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:114 Constant:
|
||||
0:114 1 (const int)
|
||||
0:115 move second child to first child ( temp int)
|
||||
0:115 indirect index (layout( column_major shared) temp int)
|
||||
0:115 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:115 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:115 Constant:
|
||||
0:115 0 (const int)
|
||||
0:115 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:115 Constant:
|
||||
0:115 1 (const int)
|
||||
0:116 move second child to first child ( temp int)
|
||||
0:116 indirect index (layout( column_major shared) temp int)
|
||||
0:116 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:116 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:116 Constant:
|
||||
0:116 0 (const int)
|
||||
0:116 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:116 Constant:
|
||||
0:116 1 (const int)
|
||||
0:117 move second child to first child ( temp int)
|
||||
0:117 indirect index (layout( column_major shared) temp int)
|
||||
0:117 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:117 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:117 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:117 Test condition and select ( temp int)
|
||||
0:117 Condition
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:117 true case
|
||||
0:117 Constant:
|
||||
0:117 1 (const int)
|
||||
0:117 false case
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:118 subgroupBarrier ( global void)
|
||||
0:119 subgroupMemoryBarrier ( global void)
|
||||
0:120 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:121 subgroupMemoryBarrierShared ( global void)
|
||||
0:122 subgroupMemoryBarrierImage ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@ -2656,8 +2656,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
@ -28,8 +28,8 @@ ERROR: node is still EOpNull!
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 mod ( temp uint)
|
||||
0:20 add ( temp uint)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:20 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:20 Constant:
|
||||
0:20 4 (const uint)
|
||||
0:22 move second child to first child ( temp 2-component vector of float)
|
||||
@ -358,8 +358,8 @@ ERROR: node is still EOpNull!
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 mod ( temp uint)
|
||||
0:20 add ( temp uint)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:20 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:20 Constant:
|
||||
0:20 4 (const uint)
|
||||
0:22 move second child to first child ( temp 2-component vector of float)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@ -2048,8 +2048,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@ -1064,8 +1064,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@ -1064,8 +1064,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:18 'invocation' ( temp uint)
|
||||
0:18 mod ( temp uint)
|
||||
0:18 add ( temp uint)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:18 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:18 Constant:
|
||||
0:18 4 (const uint)
|
||||
0:20 Test condition and select ( temp void)
|
||||
@ -499,8 +499,8 @@ local_size = (8, 8, 1)
|
||||
0:18 'invocation' ( temp uint)
|
||||
0:18 mod ( temp uint)
|
||||
0:18 add ( temp uint)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:18 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:18 Constant:
|
||||
0:18 4 (const uint)
|
||||
0:20 Test condition and select ( temp void)
|
||||
|
1217
Test/baseResults/glsl.460.subgroup.mesh.out
Normal file
1217
Test/baseResults/glsl.460.subgroup.mesh.out
Normal file
File diff suppressed because it is too large
Load Diff
775
Test/baseResults/glsl.460.subgroup.rahit.out
Normal file
775
Test/baseResults/glsl.460.subgroup.rahit.out
Normal file
@ -0,0 +1,775 @@
|
||||
glsl.460.subgroup.rahit
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
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' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
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: 86 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' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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' ( in uint SubgroupSize)
|
||||
0:134 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:145 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:146 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:147 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:148 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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)
|
||||
|
663
Test/baseResults/glsl.460.subgroup.rcall.out
Normal file
663
Test/baseResults/glsl.460.subgroup.rcall.out
Normal file
@ -0,0 +1,663 @@
|
||||
glsl.460.subgroup.rcall
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
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' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
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: 86 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' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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' ( in uint SubgroupSize)
|
||||
0:122 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:133 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:134 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:135 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:136 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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})
|
||||
|
797
Test/baseResults/glsl.460.subgroup.rchit.out
Normal file
797
Test/baseResults/glsl.460.subgroup.rchit.out
Normal file
@ -0,0 +1,797 @@
|
||||
glsl.460.subgroup.rchit
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
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' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
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: 86 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' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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' ( in uint SubgroupSize)
|
||||
0:132 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:143 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:144 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:145 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:146 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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)
|
||||
|
727
Test/baseResults/glsl.460.subgroup.rgen.out
Normal file
727
Test/baseResults/glsl.460.subgroup.rgen.out
Normal file
@ -0,0 +1,727 @@
|
||||
glsl.460.subgroup.rgen
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
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' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
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: 86 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' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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' ( in uint SubgroupSize)
|
||||
0:126 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:137 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:138 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:139 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:140 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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})
|
||||
|
749
Test/baseResults/glsl.460.subgroup.rint.out
Normal file
749
Test/baseResults/glsl.460.subgroup.rint.out
Normal file
@ -0,0 +1,749 @@
|
||||
glsl.460.subgroup.rint
|
||||
ERROR: 0:8: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
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' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
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: 86 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' ( in uint SubgroupSize)
|
||||
0:9 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:24 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:25 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:26 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:27 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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' ( in uint SubgroupSize)
|
||||
0:132 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:143 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:144 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:145 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:146 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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)
|
||||
|
741
Test/baseResults/glsl.460.subgroup.rmiss.out
Normal file
741
Test/baseResults/glsl.460.subgroup.rmiss.out
Normal file
@ -0,0 +1,741 @@
|
||||
glsl.460.subgroup.rmiss
|
||||
ERROR: 0:8: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
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' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
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: 86 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' ( in uint SubgroupSize)
|
||||
0:9 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:24 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:25 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:26 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:27 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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' ( in uint SubgroupSize)
|
||||
0:126 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
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' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:137 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:138 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:139 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:140 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
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 subgroupPartitionedAddNV ( 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 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( 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 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( 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 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( 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 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( 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 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( 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 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( 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)
|
||||
|
903
Test/baseResults/glsl.460.subgroup.task.out
Normal file
903
Test/baseResults/glsl.460.subgroup.task.out
Normal file
@ -0,0 +1,903 @@
|
||||
glsl.460.subgroup.task
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 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_mesh_shader
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (32, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:14 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:15 subgroupMemoryBarrierShared ( global void)
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( 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 subgroupPartitionedMinNV ( 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 subgroupPartitionedMaxNV ( 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 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( 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 subgroupPartitionedXorNV ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( 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 subgroupPartitionedInclusiveMinNV ( 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 subgroupPartitionedInclusiveMaxNV ( 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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( 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 subgroupPartitionedInclusiveXorNV ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( 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 subgroupPartitionedExclusiveMinNV ( 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 subgroupPartitionedExclusiveMaxNV ( 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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:127 Function Definition: main( ( global void)
|
||||
0:127 Function Parameters:
|
||||
0:129 Sequence
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp uint)
|
||||
0:129 'iid' ( temp uint)
|
||||
0:129 direct index ( temp uint)
|
||||
0:129 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
|
||||
0:129 Constant:
|
||||
0:129 0 (const int)
|
||||
0:130 Sequence
|
||||
0:130 move second child to first child ( temp uint)
|
||||
0:130 'gid' ( temp uint)
|
||||
0:130 direct index ( temp uint)
|
||||
0:130 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
|
||||
0:130 Constant:
|
||||
0:130 0 (const int)
|
||||
0:131 Sequence
|
||||
0:131 move second child to first child ( temp uint)
|
||||
0:131 'viewID' ( temp uint)
|
||||
0:131 indirect index ( temp uint MeshViewIndicesNV)
|
||||
0:131 'gl_MeshViewIndicesNV' ( in 4-element array of uint MeshViewIndicesNV)
|
||||
0:131 mod ( temp uint)
|
||||
0:131 'gl_MeshViewCountNV' ( in uint MeshViewCountNV)
|
||||
0:131 Constant:
|
||||
0:131 4 (const uint)
|
||||
0:134 Sequence
|
||||
0:134 Sequence
|
||||
0:134 move second child to first child ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 0 (const uint)
|
||||
0:134 Loop with condition tested first
|
||||
0:134 Loop Condition
|
||||
0:134 Compare Less Than ( temp bool)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 10 (const uint)
|
||||
0:134 Loop Body
|
||||
0:135 Sequence
|
||||
0:135 move second child to first child ( temp 4-component vector of float)
|
||||
0:135 indirect index ( temp 4-component vector of float)
|
||||
0:135 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 Construct vec4 ( temp 4-component vector of float)
|
||||
0:135 Convert uint to float ( temp float)
|
||||
0:135 add ( temp uint)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 uni_value: direct index for structure (layout( column_major shared) uniform uint)
|
||||
0:135 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:135 Constant:
|
||||
0:135 0 (const uint)
|
||||
0:134 Loop Terminal Expression
|
||||
0:134 Pre-Increment ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:137 imageStore ( global void)
|
||||
0:137 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:137 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:137 Convert uint to int ( temp int)
|
||||
0:137 'iid' ( temp uint)
|
||||
0:137 indirect index ( temp 4-component vector of float)
|
||||
0:137 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:137 'gid' ( temp uint)
|
||||
0:138 imageStore ( global void)
|
||||
0:138 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:138 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:138 Convert uint to int ( temp int)
|
||||
0:138 'iid' ( temp uint)
|
||||
0:138 indirect index ( temp 4-component vector of float)
|
||||
0:138 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:138 add ( temp uint)
|
||||
0:138 'gid' ( temp uint)
|
||||
0:138 Constant:
|
||||
0:138 1 (const uint)
|
||||
0:140 MemoryBarrierShared ( global void)
|
||||
0:140 Barrier ( global void)
|
||||
0:144 move second child to first child ( temp 2-component vector of float)
|
||||
0:144 dummy: direct index for structure (layout( std430 offset=0) taskNV out 2-component vector of float)
|
||||
0:144 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:144 Constant:
|
||||
0:144 0 (const int)
|
||||
0:144 Constant:
|
||||
0:144 30.000000
|
||||
0:144 31.000000
|
||||
0:145 move second child to first child ( temp 2-component vector of float)
|
||||
0:145 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:145 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:145 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:145 Constant:
|
||||
0:145 1 (const int)
|
||||
0:145 Constant:
|
||||
0:145 0 (const int)
|
||||
0:145 Constant:
|
||||
0:145 32.000000
|
||||
0:145 33.000000
|
||||
0:146 move second child to first child ( temp 2-component vector of float)
|
||||
0:146 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:146 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:146 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 34.000000
|
||||
0:146 35.000000
|
||||
0:147 move second child to first child ( temp 2-component vector of float)
|
||||
0:147 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 Constant:
|
||||
0:147 2 (const int)
|
||||
0:147 indirect index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 mod ( temp uint)
|
||||
0:147 'gid' ( temp uint)
|
||||
0:147 Constant:
|
||||
0:147 2 (const uint)
|
||||
0:148 move second child to first child ( temp uint)
|
||||
0:148 viewID: direct index for structure (layout( std430 offset=32) taskNV out uint)
|
||||
0:148 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:148 Constant:
|
||||
0:148 2 (const int)
|
||||
0:148 'viewID' ( temp uint)
|
||||
0:150 MemoryBarrierShared ( global void)
|
||||
0:150 Barrier ( global void)
|
||||
0:153 move second child to first child ( temp uint)
|
||||
0:153 'gl_TaskCountNV' ( out uint TaskCountNV)
|
||||
0:153 Constant:
|
||||
0:153 3 (const uint)
|
||||
0:157 Function Definition: basic_works( ( global void)
|
||||
0:157 Function Parameters:
|
||||
0:159 Sequence
|
||||
0:159 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:160 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:161 subgroupBarrier ( global void)
|
||||
0:162 subgroupMemoryBarrier ( global void)
|
||||
0:163 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:164 subgroupMemoryBarrierImage ( global void)
|
||||
0:165 subgroupElect ( global bool)
|
||||
0:166 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:167 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:168 subgroupMemoryBarrierShared ( global void)
|
||||
0:172 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:172 Function Parameters:
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 Sequence
|
||||
0:173 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:174 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:175 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:176 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:177 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:178 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:178 Constant:
|
||||
0:178 0 (const uint)
|
||||
0:179 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:179 'f4' ( in 4-component vector of float)
|
||||
0:180 Sequence
|
||||
0:180 move second child to first child ( temp 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupBallot ( global 4-component vector of uint)
|
||||
0:180 Constant:
|
||||
0:180 false (const bool)
|
||||
0:181 subgroupInverseBallot ( global bool)
|
||||
0:181 Constant:
|
||||
0:181 1 (const uint)
|
||||
0:181 1 (const uint)
|
||||
0:181 1 (const uint)
|
||||
0:181 1 (const uint)
|
||||
0:182 subgroupBallotBitExtract ( global bool)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 Constant:
|
||||
0:182 0 (const uint)
|
||||
0:183 subgroupBallotBitCount ( global uint)
|
||||
0:183 'ballot' ( temp 4-component vector of uint)
|
||||
0:184 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:184 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:185 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 subgroupBallotFindLSB ( global uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupBallotFindMSB ( global uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:191 Function Definition: vote_works(vf4; ( global void)
|
||||
0:191 Function Parameters:
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:193 Sequence
|
||||
0:193 subgroupAll ( global bool)
|
||||
0:193 Constant:
|
||||
0:193 true (const bool)
|
||||
0:194 subgroupAny ( global bool)
|
||||
0:194 Constant:
|
||||
0:194 false (const bool)
|
||||
0:195 subgroupAllEqual ( global bool)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:200 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:200 Function Parameters:
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:202 Sequence
|
||||
0:202 subgroupShuffle ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:202 Constant:
|
||||
0:202 0 (const uint)
|
||||
0:203 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:203 Constant:
|
||||
0:203 1 (const uint)
|
||||
0:204 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:204 Constant:
|
||||
0:204 1 (const uint)
|
||||
0:205 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:205 Constant:
|
||||
0:205 1 (const uint)
|
||||
0:209 Function Definition: arith_works(vf4; ( global void)
|
||||
0:209 Function Parameters:
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:212 subgroupAdd ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:213 subgroupMul ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:214 subgroupMin ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:215 subgroupMax ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:216 subgroupAnd ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 subgroupOr ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 subgroupXor ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:219 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:220 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:221 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:222 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:223 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:225 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:225 'ballot' ( temp 4-component vector of uint)
|
||||
0:226 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:227 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:228 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:229 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:230 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:232 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:232 'ballot' ( temp 4-component vector of uint)
|
||||
0:236 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:236 Function Parameters:
|
||||
0:236 'f4' ( in 4-component vector of float)
|
||||
0:238 Sequence
|
||||
0:238 Sequence
|
||||
0:238 move second child to first child ( temp 4-component vector of uint)
|
||||
0:238 'ballot' ( temp 4-component vector of uint)
|
||||
0:238 Constant:
|
||||
0:238 85 (const uint)
|
||||
0:238 0 (const uint)
|
||||
0:238 0 (const uint)
|
||||
0:238 0 (const uint)
|
||||
0:239 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:239 'f4' ( in 4-component vector of float)
|
||||
0:239 Constant:
|
||||
0:239 2 (const uint)
|
||||
0:240 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 Constant:
|
||||
0:240 2 (const uint)
|
||||
0:241 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 Constant:
|
||||
0:241 2 (const uint)
|
||||
0:242 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:242 'f4' ( in 4-component vector of float)
|
||||
0:242 Constant:
|
||||
0:242 2 (const uint)
|
||||
0:243 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:243 'ballot' ( temp 4-component vector of uint)
|
||||
0:243 Constant:
|
||||
0:243 2 (const uint)
|
||||
0:244 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 Constant:
|
||||
0:244 2 (const uint)
|
||||
0:245 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:245 'ballot' ( temp 4-component vector of uint)
|
||||
0:245 Constant:
|
||||
0:245 2 (const uint)
|
||||
0:249 Function Definition: quad_works(vf4; ( global void)
|
||||
0:249 Function Parameters:
|
||||
0:249 'f4' ( in 4-component vector of float)
|
||||
0:251 Sequence
|
||||
0:251 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:251 'f4' ( in 4-component vector of float)
|
||||
0:251 Constant:
|
||||
0:251 0 (const uint)
|
||||
0:252 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:252 'f4' ( in 4-component vector of float)
|
||||
0:253 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:253 'f4' ( in 4-component vector of float)
|
||||
0:254 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:254 'f4' ( in 4-component vector of float)
|
||||
0:258 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:258 Function Parameters:
|
||||
0:258 'f4' ( in 4-component vector of float)
|
||||
0:260 Sequence
|
||||
0:260 Sequence
|
||||
0:260 move second child to first child ( temp 4-component vector of uint)
|
||||
0:260 'parti' ( temp 4-component vector of uint)
|
||||
0:260 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:260 'f4' ( in 4-component vector of float)
|
||||
0:261 Sequence
|
||||
0:261 move second child to first child ( temp 4-component vector of uint)
|
||||
0:261 'ballot' ( temp 4-component vector of uint)
|
||||
0:261 Constant:
|
||||
0:261 85 (const uint)
|
||||
0:261 0 (const uint)
|
||||
0:261 0 (const uint)
|
||||
0:261 0 (const uint)
|
||||
0:262 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:262 'f4' ( in 4-component vector of float)
|
||||
0:262 'parti' ( temp 4-component vector of uint)
|
||||
0:263 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:263 'f4' ( in 4-component vector of float)
|
||||
0:263 'parti' ( temp 4-component vector of uint)
|
||||
0:264 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:264 'f4' ( in 4-component vector of float)
|
||||
0:264 'parti' ( temp 4-component vector of uint)
|
||||
0:265 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:265 'f4' ( in 4-component vector of float)
|
||||
0:265 'parti' ( temp 4-component vector of uint)
|
||||
0:266 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:266 'ballot' ( temp 4-component vector of uint)
|
||||
0:266 'parti' ( temp 4-component vector of uint)
|
||||
0:267 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:267 'ballot' ( temp 4-component vector of uint)
|
||||
0:267 'parti' ( temp 4-component vector of uint)
|
||||
0:268 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:268 'ballot' ( temp 4-component vector of uint)
|
||||
0:268 'parti' ( temp 4-component vector of uint)
|
||||
0:269 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:269 'f4' ( in 4-component vector of float)
|
||||
0:269 'parti' ( temp 4-component vector of uint)
|
||||
0:270 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:270 'f4' ( in 4-component vector of float)
|
||||
0:270 'parti' ( temp 4-component vector of uint)
|
||||
0:271 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:271 'f4' ( in 4-component vector of float)
|
||||
0:271 'parti' ( temp 4-component vector of uint)
|
||||
0:272 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:272 'f4' ( in 4-component vector of float)
|
||||
0:272 'parti' ( temp 4-component vector of uint)
|
||||
0:273 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:273 'ballot' ( temp 4-component vector of uint)
|
||||
0:273 'parti' ( temp 4-component vector of uint)
|
||||
0:274 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:274 'ballot' ( temp 4-component vector of uint)
|
||||
0:274 'parti' ( temp 4-component vector of uint)
|
||||
0:275 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:275 'ballot' ( temp 4-component vector of uint)
|
||||
0:275 'parti' ( temp 4-component vector of uint)
|
||||
0:276 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:276 'f4' ( in 4-component vector of float)
|
||||
0:276 'parti' ( temp 4-component vector of uint)
|
||||
0:277 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:277 'f4' ( in 4-component vector of float)
|
||||
0:277 'parti' ( temp 4-component vector of uint)
|
||||
0:278 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:278 'f4' ( in 4-component vector of float)
|
||||
0:278 'parti' ( temp 4-component vector of uint)
|
||||
0:279 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:279 'f4' ( in 4-component vector of float)
|
||||
0:279 'parti' ( temp 4-component vector of uint)
|
||||
0:280 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:280 'ballot' ( temp 4-component vector of uint)
|
||||
0:280 'parti' ( temp 4-component vector of uint)
|
||||
0:281 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:281 'ballot' ( temp 4-component vector of uint)
|
||||
0:281 'parti' ( temp 4-component vector of uint)
|
||||
0:282 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:282 'ballot' ( temp 4-component vector of uint)
|
||||
0:282 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 32 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:? 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:? 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
|
||||
|
||||
Linked task 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_mesh_shader
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (32, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:127 Function Definition: main( ( global void)
|
||||
0:127 Function Parameters:
|
||||
0:129 Sequence
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp uint)
|
||||
0:129 'iid' ( temp uint)
|
||||
0:129 direct index ( temp uint)
|
||||
0:129 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
|
||||
0:129 Constant:
|
||||
0:129 0 (const int)
|
||||
0:130 Sequence
|
||||
0:130 move second child to first child ( temp uint)
|
||||
0:130 'gid' ( temp uint)
|
||||
0:130 direct index ( temp uint)
|
||||
0:130 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
|
||||
0:130 Constant:
|
||||
0:130 0 (const int)
|
||||
0:131 Sequence
|
||||
0:131 move second child to first child ( temp uint)
|
||||
0:131 'viewID' ( temp uint)
|
||||
0:131 indirect index ( temp uint MeshViewIndicesNV)
|
||||
0:131 'gl_MeshViewIndicesNV' ( in 4-element array of uint MeshViewIndicesNV)
|
||||
0:131 mod ( temp uint)
|
||||
0:131 'gl_MeshViewCountNV' ( in uint MeshViewCountNV)
|
||||
0:131 Constant:
|
||||
0:131 4 (const uint)
|
||||
0:134 Sequence
|
||||
0:134 Sequence
|
||||
0:134 move second child to first child ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 0 (const uint)
|
||||
0:134 Loop with condition tested first
|
||||
0:134 Loop Condition
|
||||
0:134 Compare Less Than ( temp bool)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 10 (const uint)
|
||||
0:134 Loop Body
|
||||
0:135 Sequence
|
||||
0:135 move second child to first child ( temp 4-component vector of float)
|
||||
0:135 indirect index ( temp 4-component vector of float)
|
||||
0:135 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 Construct vec4 ( temp 4-component vector of float)
|
||||
0:135 Convert uint to float ( temp float)
|
||||
0:135 add ( temp uint)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 uni_value: direct index for structure (layout( column_major shared) uniform uint)
|
||||
0:135 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:135 Constant:
|
||||
0:135 0 (const uint)
|
||||
0:134 Loop Terminal Expression
|
||||
0:134 Pre-Increment ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:137 imageStore ( global void)
|
||||
0:137 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:137 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:137 Convert uint to int ( temp int)
|
||||
0:137 'iid' ( temp uint)
|
||||
0:137 indirect index ( temp 4-component vector of float)
|
||||
0:137 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:137 'gid' ( temp uint)
|
||||
0:138 imageStore ( global void)
|
||||
0:138 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:138 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:138 Convert uint to int ( temp int)
|
||||
0:138 'iid' ( temp uint)
|
||||
0:138 indirect index ( temp 4-component vector of float)
|
||||
0:138 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:138 add ( temp uint)
|
||||
0:138 'gid' ( temp uint)
|
||||
0:138 Constant:
|
||||
0:138 1 (const uint)
|
||||
0:140 MemoryBarrierShared ( global void)
|
||||
0:140 Barrier ( global void)
|
||||
0:144 move second child to first child ( temp 2-component vector of float)
|
||||
0:144 dummy: direct index for structure (layout( std430 offset=0) taskNV out 2-component vector of float)
|
||||
0:144 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:144 Constant:
|
||||
0:144 0 (const int)
|
||||
0:144 Constant:
|
||||
0:144 30.000000
|
||||
0:144 31.000000
|
||||
0:145 move second child to first child ( temp 2-component vector of float)
|
||||
0:145 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:145 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:145 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:145 Constant:
|
||||
0:145 1 (const int)
|
||||
0:145 Constant:
|
||||
0:145 0 (const int)
|
||||
0:145 Constant:
|
||||
0:145 32.000000
|
||||
0:145 33.000000
|
||||
0:146 move second child to first child ( temp 2-component vector of float)
|
||||
0:146 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:146 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:146 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 34.000000
|
||||
0:146 35.000000
|
||||
0:147 move second child to first child ( temp 2-component vector of float)
|
||||
0:147 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 Constant:
|
||||
0:147 2 (const int)
|
||||
0:147 indirect index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 mod ( temp uint)
|
||||
0:147 'gid' ( temp uint)
|
||||
0:147 Constant:
|
||||
0:147 2 (const uint)
|
||||
0:148 move second child to first child ( temp uint)
|
||||
0:148 viewID: direct index for structure (layout( std430 offset=32) taskNV out uint)
|
||||
0:148 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:148 Constant:
|
||||
0:148 2 (const int)
|
||||
0:148 'viewID' ( temp uint)
|
||||
0:150 MemoryBarrierShared ( global void)
|
||||
0:150 Barrier ( global void)
|
||||
0:153 move second child to first child ( temp uint)
|
||||
0:153 'gl_TaskCountNV' ( out uint TaskCountNV)
|
||||
0:153 Constant:
|
||||
0:153 3 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 32 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:? 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:? 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
|
@ -8,8 +8,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:6 move second child to first child ( temp mediump 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp mediump 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint SubgroupSize)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint SubgroupInvocationID)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
@ -30,8 +30,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:6 move second child to first child ( temp mediump 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp mediump 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint SubgroupSize)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint SubgroupInvocationID)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
|
@ -17,8 +17,8 @@ output primitive = points
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
@ -48,8 +48,8 @@ output primitive = points
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
|
@ -14,8 +14,8 @@ vertices = 1
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
@ -42,8 +42,8 @@ vertices = 1
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
|
@ -16,8 +16,8 @@ triangle order = none
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
@ -46,8 +46,8 @@ triangle order = ccw
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
|
@ -13,8 +13,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:10 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
@ -42,8 +42,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:10 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@ -6412,8 +6412,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@ -23,11 +23,11 @@ local_size = (8, 8, 1)
|
||||
0:20 add ( temp highp 4-component vector of uint)
|
||||
0:19 add ( temp highp 4-component vector of uint)
|
||||
0:18 add ( temp highp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:24 'result' ( temp highp 4-component vector of uint)
|
||||
@ -1004,8 +1004,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@ -1015,11 +1015,11 @@ local_size = (8, 8, 1)
|
||||
0:20 add ( temp highp 4-component vector of uint)
|
||||
0:19 add ( temp highp 4-component vector of uint)
|
||||
0:18 add ( temp highp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:24 'result' ( temp highp 4-component vector of uint)
|
||||
|
@ -16,8 +16,8 @@ ERROR: node is still EOpNull!
|
||||
0:16 'invocation' ( temp uint)
|
||||
0:16 mod ( temp uint)
|
||||
0:16 add ( temp uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@ -27,11 +27,11 @@ ERROR: node is still EOpNull!
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:18 add ( temp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp 4-component vector of uint)
|
||||
0:24 'result' ( temp 4-component vector of uint)
|
||||
@ -153,8 +153,8 @@ ERROR: node is still EOpNull!
|
||||
0:16 'invocation' ( temp uint)
|
||||
0:16 mod ( temp uint)
|
||||
0:16 add ( temp uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@ -164,11 +164,11 @@ ERROR: node is still EOpNull!
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:18 add ( temp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp 4-component vector of uint)
|
||||
0:24 'result' ( temp 4-component vector of uint)
|
||||
|
@ -12,7 +12,7 @@ local_size = (8, 8, 1)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp highp int)
|
||||
@ -21,7 +21,7 @@ local_size = (8, 8, 1)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
@ -30,7 +30,7 @@ local_size = (8, 8, 1)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint unknown built-in variable)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint NumSubgroups)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
@ -39,7 +39,7 @@ local_size = (8, 8, 1)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in highp uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupID' ( in highp uint SubgroupID)
|
||||
0:17 Test condition and select ( temp highp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
@ -78,7 +78,7 @@ local_size = (8, 8, 1)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp highp int)
|
||||
@ -87,7 +87,7 @@ local_size = (8, 8, 1)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
@ -96,7 +96,7 @@ local_size = (8, 8, 1)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint unknown built-in variable)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint NumSubgroups)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
@ -105,7 +105,7 @@ local_size = (8, 8, 1)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in highp uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupID' ( in highp uint SubgroupID)
|
||||
0:17 Test condition and select ( temp highp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@ -2332,8 +2332,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
@ -26,8 +26,8 @@ ERROR: node is still EOpNull!
|
||||
0:19 'invocation' ( temp highp uint)
|
||||
0:19 mod ( temp mediump uint)
|
||||
0:19 add ( temp mediump uint)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:19 Constant:
|
||||
0:19 4 (const uint)
|
||||
0:21 move second child to first child ( temp highp 2-component vector of float)
|
||||
@ -325,8 +325,8 @@ ERROR: node is still EOpNull!
|
||||
0:19 'invocation' ( temp highp uint)
|
||||
0:19 mod ( temp mediump uint)
|
||||
0:19 add ( temp mediump uint)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:19 Constant:
|
||||
0:19 4 (const uint)
|
||||
0:21 move second child to first child ( temp highp 2-component vector of float)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@ -1728,8 +1728,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@ -900,8 +900,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@ -900,8 +900,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp highp uint)
|
||||
0:17 mod ( temp mediump uint)
|
||||
0:17 add ( temp mediump uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Test condition and select ( temp void)
|
||||
@ -436,8 +436,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp highp uint)
|
||||
0:17 mod ( temp mediump uint)
|
||||
0:17 add ( temp mediump uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Test condition and select ( temp void)
|
||||
|
@ -11,12 +11,12 @@ local_size = (32, 16, 1)
|
||||
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:6 Test condition and select ( temp uint): no shortcircuit
|
||||
0:6 Condition
|
||||
0:6 subgroupElect ( temp bool)
|
||||
0:6 true case
|
||||
0:6 '@gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:6 false case
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
@ -43,12 +43,12 @@ local_size = (32, 16, 1)
|
||||
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:6 Test condition and select ( temp uint): no shortcircuit
|
||||
0:6 Condition
|
||||
0:6 subgroupElect ( temp bool)
|
||||
0:6 true case
|
||||
0:6 '@gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:6 false case
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
|
@ -1,7 +1,228 @@
|
||||
#version 450
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(location = 0) out uvec4 data;
|
||||
void main (void)
|
||||
{
|
||||
data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(points) in;
|
||||
layout(points, max_vertices = 1) out;
|
||||
@ -10,4 +111,124 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(vertices=1) out;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
@ -9,4 +110,124 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(isolines) in;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
@ -9,4 +110,123 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
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);
|
||||
}
|
||||
|
@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
@ -8,4 +109,124 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_VertexID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,105 @@
|
||||
#version 450
|
||||
|
||||
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, extension not enabled (basic)
|
||||
gl_SubgroupID; // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic)
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
@ -21,3 +121,118 @@ void main()
|
||||
subgroupMemoryBarrierShared();
|
||||
subgroupMemoryBarrierImage();
|
||||
}
|
||||
|
||||
#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);
|
||||
}
|
||||
|
||||
|
293
Test/glsl.460.subgroup.mesh
Normal file
293
Test/glsl.460.subgroup.mesh
Normal file
@ -0,0 +1,293 @@
|
||||
#version 460
|
||||
|
||||
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, extension not enabled (basic)
|
||||
gl_SubgroupID; // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic)
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#define MAX_VER 81
|
||||
#define MAX_PRIM 32
|
||||
|
||||
#define BARRIER() \
|
||||
memoryBarrierShared(); \
|
||||
barrier();
|
||||
|
||||
#extension GL_NV_mesh_shader : enable
|
||||
|
||||
layout(local_size_x = 32) in;
|
||||
|
||||
layout(max_vertices=MAX_VER) out;
|
||||
layout(max_primitives=MAX_PRIM) out;
|
||||
layout(triangles) out;
|
||||
|
||||
// test use of builtins in mesh shaders:
|
||||
|
||||
void main()
|
||||
{
|
||||
uint iid = gl_LocalInvocationID.x;
|
||||
uint gid = gl_WorkGroupID.x;
|
||||
|
||||
gl_MeshVerticesNV[iid].gl_Position = vec4(1.0);
|
||||
gl_MeshVerticesNV[iid].gl_PointSize = 2.0;
|
||||
gl_MeshVerticesNV[iid].gl_ClipDistance[3] = 3.0;
|
||||
gl_MeshVerticesNV[iid].gl_CullDistance[2] = 4.0;
|
||||
|
||||
BARRIER();
|
||||
|
||||
gl_MeshVerticesNV[iid+1].gl_Position = gl_MeshVerticesNV[iid].gl_Position;
|
||||
gl_MeshVerticesNV[iid+1].gl_PointSize = gl_MeshVerticesNV[iid].gl_PointSize;
|
||||
gl_MeshVerticesNV[iid+1].gl_ClipDistance[3] = gl_MeshVerticesNV[iid].gl_ClipDistance[3];
|
||||
gl_MeshVerticesNV[iid+1].gl_CullDistance[2] = gl_MeshVerticesNV[iid].gl_CullDistance[2];
|
||||
|
||||
BARRIER();
|
||||
|
||||
gl_MeshPrimitivesNV[iid].gl_PrimitiveID = 6;
|
||||
gl_MeshPrimitivesNV[iid].gl_Layer = 7;
|
||||
gl_MeshPrimitivesNV[iid].gl_ViewportIndex = 8;
|
||||
gl_MeshPrimitivesNV[iid].gl_ViewportMask[0] = 9;
|
||||
|
||||
BARRIER();
|
||||
|
||||
gl_MeshPrimitivesNV[iid+1].gl_PrimitiveID = gl_MeshPrimitivesNV[iid].gl_PrimitiveID;
|
||||
gl_MeshPrimitivesNV[iid+1].gl_Layer = gl_MeshPrimitivesNV[iid].gl_Layer;
|
||||
gl_MeshPrimitivesNV[iid+1].gl_ViewportIndex = gl_MeshPrimitivesNV[iid].gl_ViewportIndex;
|
||||
gl_MeshPrimitivesNV[iid+1].gl_ViewportMask[0] = gl_MeshPrimitivesNV[iid].gl_ViewportMask[0];
|
||||
|
||||
BARRIER();
|
||||
|
||||
// check bound limits
|
||||
gl_PrimitiveIndicesNV[0] = 257; // should truncate 257 -> 1
|
||||
gl_PrimitiveIndicesNV[(MAX_PRIM * 3) - 1] = 2;
|
||||
gl_PrimitiveIndicesNV[gid] = gl_PrimitiveIndicesNV[gid-1];
|
||||
|
||||
// writes 4 indices at offset gl_DrawID
|
||||
writePackedPrimitiveIndices4x8NV(gl_DrawID, 0x01020304);
|
||||
|
||||
gl_PrimitiveCountNV = MAX_PRIM * 3;
|
||||
|
||||
BARRIER();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
gl_NumSubgroups; // allowed in mesh
|
||||
gl_SubgroupID; // allowed in mesh
|
||||
subgroupMemoryBarrierShared(); // allowed in mesh
|
||||
}
|
||||
|
||||
#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);
|
||||
}
|
255
Test/glsl.460.subgroup.rahit
Normal file
255
Test/glsl.460.subgroup.rahit
Normal 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);
|
||||
}
|
||||
|
243
Test/glsl.460.subgroup.rcall
Normal file
243
Test/glsl.460.subgroup.rcall
Normal 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);
|
||||
}
|
||||
|
253
Test/glsl.460.subgroup.rchit
Normal file
253
Test/glsl.460.subgroup.rchit
Normal 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
247
Test/glsl.460.subgroup.rgen
Normal 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
253
Test/glsl.460.subgroup.rint
Normal 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);
|
||||
}
|
||||
|
247
Test/glsl.460.subgroup.rmiss
Normal file
247
Test/glsl.460.subgroup.rmiss
Normal 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);
|
||||
}
|
||||
|
284
Test/glsl.460.subgroup.task
Normal file
284
Test/glsl.460.subgroup.task
Normal file
@ -0,0 +1,284 @@
|
||||
#version 460
|
||||
|
||||
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, extension not enabled (basic)
|
||||
gl_SubgroupID; // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic)
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
#define MAX_VIEWS gl_MaxMeshViewCountNV
|
||||
|
||||
#define BARRIER() \
|
||||
memoryBarrierShared(); \
|
||||
barrier();
|
||||
|
||||
#extension GL_NV_mesh_shader : enable
|
||||
|
||||
layout(local_size_x = 32) in;
|
||||
|
||||
// test use of shared memory in task shaders:
|
||||
layout(binding=0) writeonly uniform image2D uni_image;
|
||||
uniform block0 {
|
||||
uint uni_value;
|
||||
};
|
||||
shared vec4 mem[10];
|
||||
|
||||
// test use of task memory in task shaders:
|
||||
taskNV out Task {
|
||||
vec2 dummy;
|
||||
vec2 submesh[3];
|
||||
uint viewID;
|
||||
} mytask;
|
||||
|
||||
void main()
|
||||
{
|
||||
uint iid = gl_LocalInvocationID.x;
|
||||
uint gid = gl_WorkGroupID.x;
|
||||
uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS];
|
||||
|
||||
// 1. shared memory load and stores
|
||||
for (uint i = 0; i < 10; ++i) {
|
||||
mem[i] = vec4(i + uni_value);
|
||||
}
|
||||
imageStore(uni_image, ivec2(iid), mem[gid]);
|
||||
imageStore(uni_image, ivec2(iid), mem[gid+1]);
|
||||
|
||||
BARRIER();
|
||||
|
||||
// 2. task memory stores
|
||||
|
||||
mytask.dummy = vec2(30.0, 31.0);
|
||||
mytask.submesh[0] = vec2(32.0, 33.0);
|
||||
mytask.submesh[1] = vec2(34.0, 35.0);
|
||||
mytask.submesh[2] = mytask.submesh[gid%2];
|
||||
mytask.viewID = viewID;
|
||||
|
||||
BARRIER();
|
||||
|
||||
// 3. set task count
|
||||
gl_TaskCountNV = 3;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
gl_NumSubgroups; // allowed in task
|
||||
gl_SubgroupID; // allowed in task
|
||||
subgroupMemoryBarrierShared(); // allowed in task
|
||||
}
|
||||
|
||||
#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);
|
||||
}
|
||||
|
@ -246,7 +246,7 @@ enum TBuiltInVariable {
|
||||
EbvFragFullyCoveredNV,
|
||||
EbvFragmentSizeNV,
|
||||
EbvInvocationsPerPixelNV,
|
||||
// raytracing
|
||||
// ray tracing
|
||||
EbvLaunchIdNV,
|
||||
EbvLaunchSizeNV,
|
||||
EbvInstanceCustomIndexNV,
|
||||
@ -261,8 +261,10 @@ enum TBuiltInVariable {
|
||||
EbvObjectToWorldNV,
|
||||
EbvWorldToObjectNV,
|
||||
EbvIncomingRayFlagsNV,
|
||||
// barycentrics
|
||||
EbvBaryCoordNV,
|
||||
EbvBaryCoordNoPerspNV,
|
||||
// mesh shaders
|
||||
EbvTaskCountNV,
|
||||
EbvPrimitiveCountNV,
|
||||
EbvPrimitiveIndicesNV,
|
||||
@ -271,7 +273,7 @@ enum TBuiltInVariable {
|
||||
EbvLayerPerViewNV,
|
||||
EbvMeshViewCountNV,
|
||||
EbvMeshViewIndicesNV,
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// HLSL built-ins that live only temporarily, until they get remapped
|
||||
// to one of the above.
|
||||
@ -338,6 +340,8 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvLocalInvocationId: return "LocalInvocationID";
|
||||
case EbvGlobalInvocationId: return "GlobalInvocationID";
|
||||
case EbvLocalInvocationIndex: return "LocalInvocationIndex";
|
||||
case EbvNumSubgroups: return "NumSubgroups";
|
||||
case EbvSubgroupID: return "SubgroupID";
|
||||
case EbvSubGroupSize: return "SubGroupSize";
|
||||
case EbvSubGroupInvocation: return "SubGroupInvocation";
|
||||
case EbvSubGroupEqMask: return "SubGroupEqMask";
|
||||
@ -345,6 +349,13 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvSubGroupGtMask: return "SubGroupGtMask";
|
||||
case EbvSubGroupLeMask: return "SubGroupLeMask";
|
||||
case EbvSubGroupLtMask: return "SubGroupLtMask";
|
||||
case EbvSubgroupSize2: return "SubgroupSize";
|
||||
case EbvSubgroupInvocation2: return "SubgroupInvocationID";
|
||||
case EbvSubgroupEqMask2: return "SubgroupEqMask";
|
||||
case EbvSubgroupGeMask2: return "SubgroupGeMask";
|
||||
case EbvSubgroupGtMask2: return "SubgroupGtMask";
|
||||
case EbvSubgroupLeMask2: return "SubgroupLeMask";
|
||||
case EbvSubgroupLtMask2: return "SubgroupLtMask";
|
||||
case EbvVertexId: return "VertexId";
|
||||
case EbvInstanceId: return "InstanceId";
|
||||
case EbvVertexIndex: return "VertexIndex";
|
||||
@ -438,6 +449,7 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
|
||||
case EbvBaryCoordNV: return "BaryCoordNV";
|
||||
case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
|
||||
|
||||
case EbvTaskCountNV: return "TaskCountNV";
|
||||
case EbvPrimitiveCountNV: return "PrimitiveCountNV";
|
||||
case EbvPrimitiveIndicesNV: return "PrimitiveIndicesNV";
|
||||
@ -446,7 +458,8 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvLayerPerViewNV: return "LayerPerViewNV";
|
||||
case EbvMeshViewCountNV: return "MeshViewCountNV";
|
||||
case EbvMeshViewIndicesNV: return "MeshViewIndicesNV";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
default: return "unknown built-in variable";
|
||||
}
|
||||
}
|
||||
|
@ -6129,7 +6129,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
// GL_KHR_shader_subgroup
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
const char* ballotDecls =
|
||||
const char* subgroupDecls =
|
||||
"in mediump uint gl_SubgroupSize;"
|
||||
"in mediump uint gl_SubgroupInvocationID;"
|
||||
"in highp uvec4 gl_SubgroupEqMask;"
|
||||
@ -6138,7 +6138,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"in highp uvec4 gl_SubgroupLeMask;"
|
||||
"in highp uvec4 gl_SubgroupLtMask;"
|
||||
"\n";
|
||||
const char* fragmentBallotDecls =
|
||||
const char* fragmentSubgroupDecls =
|
||||
"flat in mediump uint gl_SubgroupSize;"
|
||||
"flat in mediump uint gl_SubgroupInvocationID;"
|
||||
"flat in highp uvec4 gl_SubgroupEqMask;"
|
||||
@ -6147,30 +6147,29 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"flat in highp uvec4 gl_SubgroupLeMask;"
|
||||
"flat in highp uvec4 gl_SubgroupLtMask;"
|
||||
"\n";
|
||||
stageBuiltins[EShLangVertex] .append(ballotDecls);
|
||||
stageBuiltins[EShLangTessControl] .append(ballotDecls);
|
||||
stageBuiltins[EShLangTessEvaluation].append(ballotDecls);
|
||||
stageBuiltins[EShLangGeometry] .append(ballotDecls);
|
||||
stageBuiltins[EShLangCompute] .append(ballotDecls);
|
||||
stageBuiltins[EShLangFragment] .append(fragmentBallotDecls);
|
||||
#ifdef NV_EXTENSIONS
|
||||
stageBuiltins[EShLangMeshNV] .append(ballotDecls);
|
||||
stageBuiltins[EShLangTaskNV] .append(ballotDecls);
|
||||
#endif
|
||||
const char* computeSubgroupDecls =
|
||||
"in highp uint gl_NumSubgroups;"
|
||||
"in highp uint gl_SubgroupID;"
|
||||
"\n";
|
||||
|
||||
stageBuiltins[EShLangCompute].append(
|
||||
"highp in uint gl_NumSubgroups;"
|
||||
"highp in uint gl_SubgroupID;"
|
||||
"\n");
|
||||
stageBuiltins[EShLangVertex] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangTessControl] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangTessEvaluation].append(subgroupDecls);
|
||||
stageBuiltins[EShLangGeometry] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangCompute] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangCompute] .append(computeSubgroupDecls);
|
||||
stageBuiltins[EShLangFragment] .append(fragmentSubgroupDecls);
|
||||
#ifdef NV_EXTENSIONS
|
||||
stageBuiltins[EShLangMeshNV].append(
|
||||
"highp in uint gl_NumSubgroups;"
|
||||
"highp in uint gl_SubgroupID;"
|
||||
"\n");
|
||||
stageBuiltins[EShLangTaskNV].append(
|
||||
"highp in uint gl_NumSubgroups;"
|
||||
"highp in uint gl_SubgroupID;"
|
||||
"\n");
|
||||
stageBuiltins[EShLangMeshNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangMeshNV] .append(computeSubgroupDecls);
|
||||
stageBuiltins[EShLangTaskNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangTaskNV] .append(computeSubgroupDecls);
|
||||
stageBuiltins[EShLangRayGenNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangIntersectNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangAnyHitNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangClosestHitNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangMissNV] .append(subgroupDecls);
|
||||
stageBuiltins[EShLangCallableNV] .append(subgroupDecls);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -8754,8 +8753,52 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
BuiltInVariable("gl_WorldToObjectNV", EbvWorldToObjectNV, symbolTable);
|
||||
BuiltInVariable("gl_IncomingRayFlagsNV", EbvIncomingRayFlagsNV, symbolTable);
|
||||
BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
|
||||
}
|
||||
|
||||
// GL_ARB_shader_ballot
|
||||
symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubGroupGeMaskARB", 1, &E_GL_ARB_shader_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubGroupGtMaskARB", 1, &E_GL_ARB_shader_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubGroupLeMaskARB", 1, &E_GL_ARB_shader_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubGroupLtMaskARB", 1, &E_GL_ARB_shader_ballot);
|
||||
|
||||
BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable);
|
||||
BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable);
|
||||
BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable);
|
||||
BuiltInVariable("gl_SubGroupGtMaskARB", EbvSubGroupGtMask, symbolTable);
|
||||
BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable);
|
||||
BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable);
|
||||
|
||||
if (spvVersion.vulkan > 0)
|
||||
// Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan
|
||||
SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable);
|
||||
else
|
||||
BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable);
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
|
||||
BuiltInVariable("gl_NumSubgroups", EbvNumSubgroups, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupID", EbvSubgroupID, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable);
|
||||
BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable);
|
||||
}
|
||||
break;
|
||||
|
||||
case EShLangMeshNV:
|
||||
if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
|
||||
// per-vertex builtins
|
||||
@ -9554,6 +9597,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
|
||||
symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared);
|
||||
symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier);
|
||||
symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
@ -1057,6 +1057,31 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
|
||||
case EOpSubgroupQuadSwapVertical: out.debug << "subgroupQuadSwapVertical"; break;
|
||||
case EOpSubgroupQuadSwapDiagonal: out.debug << "subgroupQuadSwapDiagonal"; break;
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case EOpSubgroupPartition: out.debug << "subgroupPartitionNV"; break;
|
||||
case EOpSubgroupPartitionedAdd: out.debug << "subgroupPartitionedAddNV"; break;
|
||||
case EOpSubgroupPartitionedMul: out.debug << "subgroupPartitionedMulNV"; break;
|
||||
case EOpSubgroupPartitionedMin: out.debug << "subgroupPartitionedMinNV"; break;
|
||||
case EOpSubgroupPartitionedMax: out.debug << "subgroupPartitionedMaxNV"; break;
|
||||
case EOpSubgroupPartitionedAnd: out.debug << "subgroupPartitionedAndNV"; break;
|
||||
case EOpSubgroupPartitionedOr: out.debug << "subgroupPartitionedOrNV"; break;
|
||||
case EOpSubgroupPartitionedXor: out.debug << "subgroupPartitionedXorNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveAdd: out.debug << "subgroupPartitionedInclusiveAddNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveMul: out.debug << "subgroupPartitionedInclusiveMulNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveMin: out.debug << "subgroupPartitionedInclusiveMinNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveMax: out.debug << "subgroupPartitionedInclusiveMaxNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveAnd: out.debug << "subgroupPartitionedInclusiveAndNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveOr: out.debug << "subgroupPartitionedInclusiveOrNV"; break;
|
||||
case EOpSubgroupPartitionedInclusiveXor: out.debug << "subgroupPartitionedInclusiveXorNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveAdd: out.debug << "subgroupPartitionedExclusiveAddNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveMul: out.debug << "subgroupPartitionedExclusiveMulNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveMin: out.debug << "subgroupPartitionedExclusiveMinNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveMax: out.debug << "subgroupPartitionedExclusiveMaxNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveAnd: out.debug << "subgroupPartitionedExclusiveAndNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveOr: out.debug << "subgroupPartitionedExclusiveOrNV"; break;
|
||||
case EOpSubgroupPartitionedExclusiveXor: out.debug << "subgroupPartitionedExclusiveXorNV"; break;
|
||||
#endif
|
||||
|
||||
case EOpSubpassLoad: out.debug << "subpassLoad"; break;
|
||||
case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break;
|
||||
|
||||
|
@ -253,6 +253,14 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"glsl.450.subgroupShuffleRelative.comp",
|
||||
"glsl.450.subgroupQuad.comp",
|
||||
"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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user