
Added following updates to GL_EXT_mesh_shader implementation: 1. Added SPIRV and GLSL test cases 2. Added checks to ensure NV and EXT mesh shader builtins cannot be used interchangeably. 3. Updated the language name by removing the postfix "NV" to MeshShader and TaskShader. 4. Added checks for grammar checking to comply with the spec. 5. Added gl_NumWorkGroups builtin to Mesh shader 6. Fixed data type of gl_PrimitiveLineIndicesEXT and gl_PrimitiveTriangleIndicesEXT 7. Added new constants to the resources table 8. Updates to handle new storage qualifier "taskPayloadSharedEXT" 9. Updated test cases by replacing "taskEXT" with storage qualifier "taskPayloadSharedEXT" Addressed Review comments 1. Fixed instruction description used by glslang disassembly. 2. Updated OpEmitMeshTasksEXT as per spec update 3. Fixed implementation that errors out if there are more then one taskPayloadSharedEXT varjables. 4. Fixed miscellaneous error logs and removed unwanted code. SPIRV 1.6 related build failure fixes - Update SPIRV header to 1.6 - Fix conflict wiht SPIRV 1.6 change, where localSizeId is used for execution mode for mesh/task shaders Enable SPIRV generated for EXT_mesh_shader to be version 1.4 GL_EXT_mesh_shader: Add checks for atomic support and corresponding test cases
708 lines
37 KiB
Plaintext
708 lines
37 KiB
Plaintext
glsl.460.subgroupEXT.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: 64 compilation errors. No code generated.
|
|
|
|
|
|
Shader version: 460
|
|
Requested GL_EXT_mesh_shader
|
|
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
|
|
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 Branch: Return with expression
|
|
0:77 'result' ( temp 4-component vector of float)
|
|
0:102 Function Definition: main( ( global void)
|
|
0:102 Function Parameters:
|
|
0:104 Sequence
|
|
0:104 Sequence
|
|
0:104 move second child to first child ( temp uint)
|
|
0:104 'iid' ( temp uint)
|
|
0:104 direct index ( temp uint)
|
|
0:104 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
|
|
0:104 Constant:
|
|
0:104 0 (const int)
|
|
0:105 Sequence
|
|
0:105 move second child to first child ( temp uint)
|
|
0:105 'gid' ( temp uint)
|
|
0:105 direct index ( temp uint)
|
|
0:105 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
|
|
0:105 Constant:
|
|
0:105 0 (const int)
|
|
0:108 Sequence
|
|
0:108 Sequence
|
|
0:108 move second child to first child ( temp uint)
|
|
0:108 'i' ( temp uint)
|
|
0:108 Constant:
|
|
0:108 0 (const uint)
|
|
0:108 Loop with condition tested first
|
|
0:108 Loop Condition
|
|
0:108 Compare Less Than ( temp bool)
|
|
0:108 'i' ( temp uint)
|
|
0:108 Constant:
|
|
0:108 10 (const uint)
|
|
0:108 Loop Body
|
|
0:109 Sequence
|
|
0:109 move second child to first child ( temp 4-component vector of float)
|
|
0:109 indirect index ( temp 4-component vector of float)
|
|
0:109 'mem' ( shared 10-element array of 4-component vector of float)
|
|
0:109 'i' ( temp uint)
|
|
0:109 Construct vec4 ( temp 4-component vector of float)
|
|
0:109 Convert uint to float ( temp float)
|
|
0:109 add ( temp uint)
|
|
0:109 'i' ( temp uint)
|
|
0:109 uni_value: direct index for structure (layout( column_major shared) uniform uint)
|
|
0:109 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
|
0:109 Constant:
|
|
0:109 0 (const uint)
|
|
0:108 Loop Terminal Expression
|
|
0:108 Pre-Increment ( temp uint)
|
|
0:108 'i' ( temp uint)
|
|
0:111 imageStore ( global void)
|
|
0:111 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
|
0:111 Construct ivec2 ( temp 2-component vector of int)
|
|
0:111 Convert uint to int ( temp int)
|
|
0:111 'iid' ( temp uint)
|
|
0:111 indirect index ( temp 4-component vector of float)
|
|
0:111 'mem' ( shared 10-element array of 4-component vector of float)
|
|
0:111 'gid' ( temp uint)
|
|
0:112 imageStore ( global void)
|
|
0:112 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
|
0:112 Construct ivec2 ( temp 2-component vector of int)
|
|
0:112 Convert uint to int ( temp int)
|
|
0:112 'iid' ( temp uint)
|
|
0:112 indirect index ( temp 4-component vector of float)
|
|
0:112 'mem' ( shared 10-element array of 4-component vector of float)
|
|
0:112 add ( temp uint)
|
|
0:112 'gid' ( temp uint)
|
|
0:112 Constant:
|
|
0:112 1 (const uint)
|
|
0:114 MemoryBarrierShared ( global void)
|
|
0:114 Barrier ( global void)
|
|
0:118 move second child to first child ( temp 2-component vector of float)
|
|
0:118 dummy: direct index for structure ( global 2-component vector of float)
|
|
0:118 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:118 Constant:
|
|
0:118 0 (const int)
|
|
0:118 Constant:
|
|
0:118 30.000000
|
|
0:118 31.000000
|
|
0:119 move second child to first child ( temp 2-component vector of float)
|
|
0:119 direct index ( temp 2-component vector of float)
|
|
0:119 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:119 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:119 Constant:
|
|
0:119 1 (const int)
|
|
0:119 Constant:
|
|
0:119 0 (const int)
|
|
0:119 Constant:
|
|
0:119 32.000000
|
|
0:119 33.000000
|
|
0:120 move second child to first child ( temp 2-component vector of float)
|
|
0:120 direct index ( temp 2-component vector of float)
|
|
0:120 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:120 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:120 Constant:
|
|
0:120 1 (const int)
|
|
0:120 Constant:
|
|
0:120 1 (const int)
|
|
0:120 Constant:
|
|
0:120 34.000000
|
|
0:120 35.000000
|
|
0:121 move second child to first child ( temp 2-component vector of float)
|
|
0:121 direct index ( temp 2-component vector of float)
|
|
0:121 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:121 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:121 Constant:
|
|
0:121 1 (const int)
|
|
0:121 Constant:
|
|
0:121 2 (const int)
|
|
0:121 indirect index ( temp 2-component vector of float)
|
|
0:121 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:121 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:121 Constant:
|
|
0:121 1 (const int)
|
|
0:121 mod ( temp uint)
|
|
0:121 'gid' ( temp uint)
|
|
0:121 Constant:
|
|
0:121 2 (const uint)
|
|
0:123 MemoryBarrierShared ( global void)
|
|
0:123 Barrier ( global void)
|
|
0:126 EmitMeshTasksEXT ( global void)
|
|
0:126 Constant:
|
|
0:126 3 (const uint)
|
|
0:126 Constant:
|
|
0:126 1 (const uint)
|
|
0:126 Constant:
|
|
0:126 1 (const uint)
|
|
0:130 Function Definition: basic_works( ( global void)
|
|
0:130 Function Parameters:
|
|
0:132 Sequence
|
|
0:132 'gl_SubgroupSize' ( in uint SubgroupSize)
|
|
0:133 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
|
0:134 subgroupBarrier ( global void)
|
|
0:135 subgroupMemoryBarrier ( global void)
|
|
0:136 subgroupMemoryBarrierBuffer ( global void)
|
|
0:137 subgroupMemoryBarrierImage ( global void)
|
|
0:138 subgroupElect ( global bool)
|
|
0:139 'gl_NumSubgroups' ( in uint NumSubgroups)
|
|
0:140 'gl_SubgroupID' ( in uint SubgroupID)
|
|
0:141 subgroupMemoryBarrierShared ( global void)
|
|
0:145 Function Definition: ballot_works(vf4; ( global void)
|
|
0:145 Function Parameters:
|
|
0:145 'f4' ( in 4-component vector of float)
|
|
0:146 Sequence
|
|
0:146 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
|
0:147 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
|
0:148 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
|
0:149 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
|
0:150 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
|
0:151 subgroupBroadcast ( 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 subgroupBroadcastFirst ( global 4-component vector of float)
|
|
0:152 'f4' ( in 4-component vector of float)
|
|
0:153 Sequence
|
|
0:153 move second child to first child ( temp 4-component vector of uint)
|
|
0:153 'ballot' ( temp 4-component vector of uint)
|
|
0:153 subgroupBallot ( global 4-component vector of uint)
|
|
0:153 Constant:
|
|
0:153 false (const bool)
|
|
0:154 subgroupInverseBallot ( global bool)
|
|
0:154 Constant:
|
|
0:154 1 (const uint)
|
|
0:154 1 (const uint)
|
|
0:154 1 (const uint)
|
|
0:154 1 (const uint)
|
|
0:155 subgroupBallotBitExtract ( global bool)
|
|
0:155 'ballot' ( temp 4-component vector of uint)
|
|
0:155 Constant:
|
|
0:155 0 (const uint)
|
|
0:156 subgroupBallotBitCount ( global uint)
|
|
0:156 'ballot' ( temp 4-component vector of uint)
|
|
0:157 subgroupBallotInclusiveBitCount ( global uint)
|
|
0:157 'ballot' ( temp 4-component vector of uint)
|
|
0:158 subgroupBallotExclusiveBitCount ( global uint)
|
|
0:158 'ballot' ( temp 4-component vector of uint)
|
|
0:159 subgroupBallotFindLSB ( global uint)
|
|
0:159 'ballot' ( temp 4-component vector of uint)
|
|
0:160 subgroupBallotFindMSB ( global uint)
|
|
0:160 'ballot' ( temp 4-component vector of uint)
|
|
0:164 Function Definition: vote_works(vf4; ( global void)
|
|
0:164 Function Parameters:
|
|
0:164 'f4' ( in 4-component vector of float)
|
|
0:166 Sequence
|
|
0:166 subgroupAll ( global bool)
|
|
0:166 Constant:
|
|
0:166 true (const bool)
|
|
0:167 subgroupAny ( global bool)
|
|
0:167 Constant:
|
|
0:167 false (const bool)
|
|
0:168 subgroupAllEqual ( global bool)
|
|
0:168 'f4' ( in 4-component vector of float)
|
|
0:173 Function Definition: shuffle_works(vf4; ( global void)
|
|
0:173 Function Parameters:
|
|
0:173 'f4' ( in 4-component vector of float)
|
|
0:175 Sequence
|
|
0:175 subgroupShuffle ( global 4-component vector of float)
|
|
0:175 'f4' ( in 4-component vector of float)
|
|
0:175 Constant:
|
|
0:175 0 (const uint)
|
|
0:176 subgroupShuffleXor ( global 4-component vector of float)
|
|
0:176 'f4' ( in 4-component vector of float)
|
|
0:176 Constant:
|
|
0:176 1 (const uint)
|
|
0:177 subgroupShuffleUp ( global 4-component vector of float)
|
|
0:177 'f4' ( in 4-component vector of float)
|
|
0:177 Constant:
|
|
0:177 1 (const uint)
|
|
0:178 subgroupShuffleDown ( global 4-component vector of float)
|
|
0:178 'f4' ( in 4-component vector of float)
|
|
0:178 Constant:
|
|
0:178 1 (const uint)
|
|
0:182 Function Definition: arith_works(vf4; ( global void)
|
|
0:182 Function Parameters:
|
|
0:182 'f4' ( in 4-component vector of float)
|
|
0:? Sequence
|
|
0:185 subgroupAdd ( global 4-component vector of float)
|
|
0:185 'f4' ( in 4-component vector of float)
|
|
0:186 subgroupMul ( global 4-component vector of float)
|
|
0:186 'f4' ( in 4-component vector of float)
|
|
0:187 subgroupMin ( global 4-component vector of float)
|
|
0:187 'f4' ( in 4-component vector of float)
|
|
0:188 subgroupMax ( global 4-component vector of float)
|
|
0:188 'f4' ( in 4-component vector of float)
|
|
0:189 subgroupAnd ( global 4-component vector of uint)
|
|
0:189 'ballot' ( temp 4-component vector of uint)
|
|
0:190 subgroupOr ( global 4-component vector of uint)
|
|
0:190 'ballot' ( temp 4-component vector of uint)
|
|
0:191 subgroupXor ( global 4-component vector of uint)
|
|
0:191 'ballot' ( temp 4-component vector of uint)
|
|
0:192 subgroupInclusiveAdd ( global 4-component vector of float)
|
|
0:192 'f4' ( in 4-component vector of float)
|
|
0:193 subgroupInclusiveMul ( global 4-component vector of float)
|
|
0:193 'f4' ( in 4-component vector of float)
|
|
0:194 subgroupInclusiveMin ( global 4-component vector of float)
|
|
0:194 'f4' ( in 4-component vector of float)
|
|
0:195 subgroupInclusiveMax ( global 4-component vector of float)
|
|
0:195 'f4' ( in 4-component vector of float)
|
|
0:196 subgroupInclusiveAnd ( global 4-component vector of uint)
|
|
0:196 'ballot' ( temp 4-component vector of uint)
|
|
0:197 subgroupInclusiveOr ( global 4-component vector of uint)
|
|
0:197 'ballot' ( temp 4-component vector of uint)
|
|
0:198 subgroupInclusiveXor ( global 4-component vector of uint)
|
|
0:198 'ballot' ( temp 4-component vector of uint)
|
|
0:199 subgroupExclusiveAdd ( global 4-component vector of float)
|
|
0:199 'f4' ( in 4-component vector of float)
|
|
0:200 subgroupExclusiveMul ( global 4-component vector of float)
|
|
0:200 'f4' ( in 4-component vector of float)
|
|
0:201 subgroupExclusiveMin ( global 4-component vector of float)
|
|
0:201 'f4' ( in 4-component vector of float)
|
|
0:202 subgroupExclusiveMax ( global 4-component vector of float)
|
|
0:202 'f4' ( in 4-component vector of float)
|
|
0:203 subgroupExclusiveAnd ( global 4-component vector of uint)
|
|
0:203 'ballot' ( temp 4-component vector of uint)
|
|
0:204 subgroupExclusiveOr ( global 4-component vector of uint)
|
|
0:204 'ballot' ( temp 4-component vector of uint)
|
|
0:205 subgroupExclusiveXor ( global 4-component vector of uint)
|
|
0:205 'ballot' ( temp 4-component vector of uint)
|
|
0:209 Function Definition: clustered_works(vf4; ( global void)
|
|
0:209 Function Parameters:
|
|
0:209 'f4' ( in 4-component vector of float)
|
|
0:211 Sequence
|
|
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 subgroupClusteredAdd ( 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 subgroupClusteredMul ( 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 subgroupClusteredMin ( global 4-component vector of float)
|
|
0:214 'f4' ( in 4-component vector of float)
|
|
0:214 Constant:
|
|
0:214 2 (const uint)
|
|
0:215 subgroupClusteredMax ( global 4-component vector of float)
|
|
0:215 'f4' ( in 4-component vector of float)
|
|
0:215 Constant:
|
|
0:215 2 (const uint)
|
|
0:216 subgroupClusteredAnd ( global 4-component vector of uint)
|
|
0:216 'ballot' ( temp 4-component vector of uint)
|
|
0:216 Constant:
|
|
0:216 2 (const uint)
|
|
0:217 subgroupClusteredOr ( global 4-component vector of uint)
|
|
0:217 'ballot' ( temp 4-component vector of uint)
|
|
0:217 Constant:
|
|
0:217 2 (const uint)
|
|
0:218 subgroupClusteredXor ( global 4-component vector of uint)
|
|
0:218 'ballot' ( temp 4-component vector of uint)
|
|
0:218 Constant:
|
|
0:218 2 (const uint)
|
|
0:222 Function Definition: quad_works(vf4; ( global void)
|
|
0:222 Function Parameters:
|
|
0:222 'f4' ( in 4-component vector of float)
|
|
0:224 Sequence
|
|
0:224 subgroupQuadBroadcast ( global 4-component vector of float)
|
|
0:224 'f4' ( in 4-component vector of float)
|
|
0:224 Constant:
|
|
0:224 0 (const uint)
|
|
0:225 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
|
0:225 'f4' ( in 4-component vector of float)
|
|
0:226 subgroupQuadSwapVertical ( global 4-component vector of float)
|
|
0:226 'f4' ( in 4-component vector of float)
|
|
0:227 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
|
0:227 'f4' ( in 4-component vector of float)
|
|
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' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
|
|
|
|
Linked task stage:
|
|
|
|
|
|
Shader version: 460
|
|
Requested GL_EXT_mesh_shader
|
|
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
|
|
local_size = (32, 1, 1)
|
|
ERROR: node is still EOpNull!
|
|
0:102 Function Definition: main( ( global void)
|
|
0:102 Function Parameters:
|
|
0:104 Sequence
|
|
0:104 Sequence
|
|
0:104 move second child to first child ( temp uint)
|
|
0:104 'iid' ( temp uint)
|
|
0:104 direct index ( temp uint)
|
|
0:104 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
|
|
0:104 Constant:
|
|
0:104 0 (const int)
|
|
0:105 Sequence
|
|
0:105 move second child to first child ( temp uint)
|
|
0:105 'gid' ( temp uint)
|
|
0:105 direct index ( temp uint)
|
|
0:105 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
|
|
0:105 Constant:
|
|
0:105 0 (const int)
|
|
0:108 Sequence
|
|
0:108 Sequence
|
|
0:108 move second child to first child ( temp uint)
|
|
0:108 'i' ( temp uint)
|
|
0:108 Constant:
|
|
0:108 0 (const uint)
|
|
0:108 Loop with condition tested first
|
|
0:108 Loop Condition
|
|
0:108 Compare Less Than ( temp bool)
|
|
0:108 'i' ( temp uint)
|
|
0:108 Constant:
|
|
0:108 10 (const uint)
|
|
0:108 Loop Body
|
|
0:109 Sequence
|
|
0:109 move second child to first child ( temp 4-component vector of float)
|
|
0:109 indirect index ( temp 4-component vector of float)
|
|
0:109 'mem' ( shared 10-element array of 4-component vector of float)
|
|
0:109 'i' ( temp uint)
|
|
0:109 Construct vec4 ( temp 4-component vector of float)
|
|
0:109 Convert uint to float ( temp float)
|
|
0:109 add ( temp uint)
|
|
0:109 'i' ( temp uint)
|
|
0:109 uni_value: direct index for structure (layout( column_major shared) uniform uint)
|
|
0:109 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
|
0:109 Constant:
|
|
0:109 0 (const uint)
|
|
0:108 Loop Terminal Expression
|
|
0:108 Pre-Increment ( temp uint)
|
|
0:108 'i' ( temp uint)
|
|
0:111 imageStore ( global void)
|
|
0:111 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
|
0:111 Construct ivec2 ( temp 2-component vector of int)
|
|
0:111 Convert uint to int ( temp int)
|
|
0:111 'iid' ( temp uint)
|
|
0:111 indirect index ( temp 4-component vector of float)
|
|
0:111 'mem' ( shared 10-element array of 4-component vector of float)
|
|
0:111 'gid' ( temp uint)
|
|
0:112 imageStore ( global void)
|
|
0:112 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
|
0:112 Construct ivec2 ( temp 2-component vector of int)
|
|
0:112 Convert uint to int ( temp int)
|
|
0:112 'iid' ( temp uint)
|
|
0:112 indirect index ( temp 4-component vector of float)
|
|
0:112 'mem' ( shared 10-element array of 4-component vector of float)
|
|
0:112 add ( temp uint)
|
|
0:112 'gid' ( temp uint)
|
|
0:112 Constant:
|
|
0:112 1 (const uint)
|
|
0:114 MemoryBarrierShared ( global void)
|
|
0:114 Barrier ( global void)
|
|
0:118 move second child to first child ( temp 2-component vector of float)
|
|
0:118 dummy: direct index for structure ( global 2-component vector of float)
|
|
0:118 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:118 Constant:
|
|
0:118 0 (const int)
|
|
0:118 Constant:
|
|
0:118 30.000000
|
|
0:118 31.000000
|
|
0:119 move second child to first child ( temp 2-component vector of float)
|
|
0:119 direct index ( temp 2-component vector of float)
|
|
0:119 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:119 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:119 Constant:
|
|
0:119 1 (const int)
|
|
0:119 Constant:
|
|
0:119 0 (const int)
|
|
0:119 Constant:
|
|
0:119 32.000000
|
|
0:119 33.000000
|
|
0:120 move second child to first child ( temp 2-component vector of float)
|
|
0:120 direct index ( temp 2-component vector of float)
|
|
0:120 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:120 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:120 Constant:
|
|
0:120 1 (const int)
|
|
0:120 Constant:
|
|
0:120 1 (const int)
|
|
0:120 Constant:
|
|
0:120 34.000000
|
|
0:120 35.000000
|
|
0:121 move second child to first child ( temp 2-component vector of float)
|
|
0:121 direct index ( temp 2-component vector of float)
|
|
0:121 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:121 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:121 Constant:
|
|
0:121 1 (const int)
|
|
0:121 Constant:
|
|
0:121 2 (const int)
|
|
0:121 indirect index ( temp 2-component vector of float)
|
|
0:121 submesh: direct index for structure ( global 3-element array of 2-component vector of float)
|
|
0:121 'mytask' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
0:121 Constant:
|
|
0:121 1 (const int)
|
|
0:121 mod ( temp uint)
|
|
0:121 'gid' ( temp uint)
|
|
0:121 Constant:
|
|
0:121 2 (const uint)
|
|
0:123 MemoryBarrierShared ( global void)
|
|
0:123 Barrier ( global void)
|
|
0:126 EmitMeshTasksEXT ( global void)
|
|
0:126 Constant:
|
|
0:126 3 (const uint)
|
|
0:126 Constant:
|
|
0:126 1 (const uint)
|
|
0:126 Constant:
|
|
0:126 1 (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' ( taskPayloadSharedEXT structure{ global 2-component vector of float dummy, global 3-element array of 2-component vector of float submesh})
|
|
|