GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation
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
This commit is contained in:
1039
Test/baseResults/glsl.460.subgroupEXT.mesh.out
Normal file
1039
Test/baseResults/glsl.460.subgroupEXT.mesh.out
Normal file
File diff suppressed because it is too large
Load Diff
707
Test/baseResults/glsl.460.subgroupEXT.task.out
Normal file
707
Test/baseResults/glsl.460.subgroupEXT.task.out
Normal file
@@ -0,0 +1,707 @@
|
||||
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})
|
||||
|
||||
448
Test/baseResults/spv.460.subgroupEXT.mesh.out
Normal file
448
Test/baseResults/spv.460.subgroupEXT.mesh.out
Normal file
@@ -0,0 +1,448 @@
|
||||
spv.460.subgroupEXT.mesh
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 280
|
||||
|
||||
Capability ClipDistance
|
||||
Capability CullDistance
|
||||
Capability GroupNonUniform
|
||||
Capability GroupNonUniformVote
|
||||
Capability GroupNonUniformArithmetic
|
||||
Capability GroupNonUniformBallot
|
||||
Capability GroupNonUniformShuffle
|
||||
Capability GroupNonUniformShuffleRelative
|
||||
Capability GroupNonUniformClustered
|
||||
Capability GroupNonUniformQuad
|
||||
Capability FragmentShadingRateKHR
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
Extension "SPV_KHR_fragment_shading_rate"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint MeshEXT 4 "main" 35 41 57 109 148 162 163 168 169 172 173 174 175 176
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
ExecutionMode 4 OutputVertices 81
|
||||
ExecutionMode 4 OutputPrimitivesNV 32
|
||||
ExecutionMode 4 OutputTrianglesNV
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
SourceExtension "GL_KHR_shader_subgroup_arithmetic"
|
||||
SourceExtension "GL_KHR_shader_subgroup_ballot"
|
||||
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||
SourceExtension "GL_KHR_shader_subgroup_clustered"
|
||||
SourceExtension "GL_KHR_shader_subgroup_quad"
|
||||
SourceExtension "GL_KHR_shader_subgroup_shuffle"
|
||||
SourceExtension "GL_KHR_shader_subgroup_shuffle_relative"
|
||||
SourceExtension "GL_KHR_shader_subgroup_vote"
|
||||
Name 4 "main"
|
||||
Name 6 "basic_works("
|
||||
Name 13 "ballot_works(vf4;"
|
||||
Name 12 "f4"
|
||||
Name 16 "vote_works(vf4;"
|
||||
Name 15 "f4"
|
||||
Name 19 "shuffle_works(vf4;"
|
||||
Name 18 "f4"
|
||||
Name 22 "arith_works(vf4;"
|
||||
Name 21 "f4"
|
||||
Name 25 "clustered_works(vf4;"
|
||||
Name 24 "f4"
|
||||
Name 28 "quad_works(vf4;"
|
||||
Name 27 "f4"
|
||||
Name 32 "iid"
|
||||
Name 35 "gl_LocalInvocationID"
|
||||
Name 40 "gid"
|
||||
Name 41 "gl_WorkGroupID"
|
||||
Name 44 "vertexCount"
|
||||
Name 46 "primitiveCount"
|
||||
Name 54 "gl_MeshPerVertexEXT"
|
||||
MemberName 54(gl_MeshPerVertexEXT) 0 "gl_Position"
|
||||
MemberName 54(gl_MeshPerVertexEXT) 1 "gl_PointSize"
|
||||
MemberName 54(gl_MeshPerVertexEXT) 2 "gl_ClipDistance"
|
||||
MemberName 54(gl_MeshPerVertexEXT) 3 "gl_CullDistance"
|
||||
Name 57 "gl_MeshVerticesEXT"
|
||||
Name 106 "gl_MeshPerPrimitiveEXT"
|
||||
MemberName 106(gl_MeshPerPrimitiveEXT) 0 "gl_PrimitiveID"
|
||||
MemberName 106(gl_MeshPerPrimitiveEXT) 1 "gl_Layer"
|
||||
MemberName 106(gl_MeshPerPrimitiveEXT) 2 "gl_ViewportIndex"
|
||||
MemberName 106(gl_MeshPerPrimitiveEXT) 3 "gl_CullPrimitiveEXT"
|
||||
MemberName 106(gl_MeshPerPrimitiveEXT) 4 "gl_PrimitiveShadingRateEXT"
|
||||
Name 109 "gl_MeshPrimitivesEXT"
|
||||
Name 148 "gl_PrimitiveTriangleIndicesEXT"
|
||||
Name 162 "gl_SubgroupSize"
|
||||
Name 163 "gl_SubgroupInvocationID"
|
||||
Name 168 "gl_NumSubgroups"
|
||||
Name 169 "gl_SubgroupID"
|
||||
Name 172 "gl_SubgroupEqMask"
|
||||
Name 173 "gl_SubgroupGeMask"
|
||||
Name 174 "gl_SubgroupGtMask"
|
||||
Name 175 "gl_SubgroupLeMask"
|
||||
Name 176 "gl_SubgroupLtMask"
|
||||
Name 182 "ballot"
|
||||
Name 219 "ballot"
|
||||
Name 254 "ballot"
|
||||
Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||
MemberDecorate 54(gl_MeshPerVertexEXT) 0 BuiltIn Position
|
||||
MemberDecorate 54(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
|
||||
MemberDecorate 54(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 54(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
|
||||
Decorate 54(gl_MeshPerVertexEXT) Block
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
|
||||
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
|
||||
Decorate 106(gl_MeshPerPrimitiveEXT) Block
|
||||
Decorate 148(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
|
||||
Decorate 162(gl_SubgroupSize) RelaxedPrecision
|
||||
Decorate 162(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||
Decorate 163(gl_SubgroupInvocationID) RelaxedPrecision
|
||||
Decorate 163(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||
Decorate 168(gl_NumSubgroups) BuiltIn NumSubgroups
|
||||
Decorate 169(gl_SubgroupID) BuiltIn SubgroupId
|
||||
Decorate 172(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
||||
Decorate 173(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
|
||||
Decorate 174(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
|
||||
Decorate 175(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
|
||||
Decorate 176(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
|
||||
Decorate 279 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
8: TypeFloat 32
|
||||
9: TypeVector 8(float) 4
|
||||
10: TypePointer Function 9(fvec4)
|
||||
11: TypeFunction 2 10(ptr)
|
||||
30: TypeInt 32 0
|
||||
31: TypePointer Function 30(int)
|
||||
33: TypeVector 30(int) 3
|
||||
34: TypePointer Input 33(ivec3)
|
||||
35(gl_LocalInvocationID): 34(ptr) Variable Input
|
||||
36: 30(int) Constant 0
|
||||
37: TypePointer Input 30(int)
|
||||
41(gl_WorkGroupID): 34(ptr) Variable Input
|
||||
45: 30(int) Constant 81
|
||||
47: 30(int) Constant 32
|
||||
50: 30(int) Constant 4
|
||||
51: TypeArray 8(float) 50
|
||||
52: 30(int) Constant 3
|
||||
53: TypeArray 8(float) 52
|
||||
54(gl_MeshPerVertexEXT): TypeStruct 9(fvec4) 8(float) 51 53
|
||||
55: TypeArray 54(gl_MeshPerVertexEXT) 45
|
||||
56: TypePointer Output 55
|
||||
57(gl_MeshVerticesEXT): 56(ptr) Variable Output
|
||||
59: TypeInt 32 1
|
||||
60: 59(int) Constant 0
|
||||
61: 8(float) Constant 1065353216
|
||||
62: 9(fvec4) ConstantComposite 61 61 61 61
|
||||
63: TypePointer Output 9(fvec4)
|
||||
66: 59(int) Constant 1
|
||||
67: 8(float) Constant 1073741824
|
||||
68: TypePointer Output 8(float)
|
||||
71: 59(int) Constant 2
|
||||
72: 59(int) Constant 3
|
||||
73: 8(float) Constant 1077936128
|
||||
76: 8(float) Constant 1082130432
|
||||
78: 30(int) Constant 1
|
||||
79: 30(int) Constant 264
|
||||
80: 30(int) Constant 2
|
||||
105: TypeBool
|
||||
106(gl_MeshPerPrimitiveEXT): TypeStruct 59(int) 59(int) 59(int) 105(bool) 59(int)
|
||||
107: TypeArray 106(gl_MeshPerPrimitiveEXT) 47
|
||||
108: TypePointer Output 107
|
||||
109(gl_MeshPrimitivesEXT): 108(ptr) Variable Output
|
||||
111: 59(int) Constant 6
|
||||
112: TypePointer Output 59(int)
|
||||
115: 59(int) Constant 7
|
||||
118: 59(int) Constant 8
|
||||
121: 105(bool) ConstantFalse
|
||||
122: TypePointer Output 105(bool)
|
||||
145: 30(int) Constant 96
|
||||
146: TypeArray 33(ivec3) 145
|
||||
147: TypePointer Output 146
|
||||
148(gl_PrimitiveTriangleIndicesEXT): 147(ptr) Variable Output
|
||||
149: 33(ivec3) ConstantComposite 78 78 78
|
||||
150: TypePointer Output 33(ivec3)
|
||||
154: 33(ivec3) ConstantComposite 80 80 80
|
||||
162(gl_SubgroupSize): 37(ptr) Variable Input
|
||||
163(gl_SubgroupInvocationID): 37(ptr) Variable Input
|
||||
164: 30(int) Constant 3400
|
||||
165: 30(int) Constant 72
|
||||
166: 30(int) Constant 2056
|
||||
168(gl_NumSubgroups): 37(ptr) Variable Input
|
||||
169(gl_SubgroupID): 37(ptr) Variable Input
|
||||
170: TypeVector 30(int) 4
|
||||
171: TypePointer Input 170(ivec4)
|
||||
172(gl_SubgroupEqMask): 171(ptr) Variable Input
|
||||
173(gl_SubgroupGeMask): 171(ptr) Variable Input
|
||||
174(gl_SubgroupGtMask): 171(ptr) Variable Input
|
||||
175(gl_SubgroupLeMask): 171(ptr) Variable Input
|
||||
176(gl_SubgroupLtMask): 171(ptr) Variable Input
|
||||
181: TypePointer Function 170(ivec4)
|
||||
184: 170(ivec4) ConstantComposite 78 78 78 78
|
||||
198: 105(bool) ConstantTrue
|
||||
255: 30(int) Constant 85
|
||||
256: 170(ivec4) ConstantComposite 255 36 36 36
|
||||
279: 33(ivec3) ConstantComposite 47 78 78
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
32(iid): 31(ptr) Variable Function
|
||||
40(gid): 31(ptr) Variable Function
|
||||
44(vertexCount): 31(ptr) Variable Function
|
||||
46(primitiveCount): 31(ptr) Variable Function
|
||||
38: 37(ptr) AccessChain 35(gl_LocalInvocationID) 36
|
||||
39: 30(int) Load 38
|
||||
Store 32(iid) 39
|
||||
42: 37(ptr) AccessChain 41(gl_WorkGroupID) 36
|
||||
43: 30(int) Load 42
|
||||
Store 40(gid) 43
|
||||
Store 44(vertexCount) 45
|
||||
Store 46(primitiveCount) 47
|
||||
48: 30(int) Load 44(vertexCount)
|
||||
49: 30(int) Load 46(primitiveCount)
|
||||
SetMeshOutputsEXT 48 49
|
||||
58: 30(int) Load 32(iid)
|
||||
64: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 58 60
|
||||
Store 64 62
|
||||
65: 30(int) Load 32(iid)
|
||||
69: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 65 66
|
||||
Store 69 67
|
||||
70: 30(int) Load 32(iid)
|
||||
74: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 70 71 72
|
||||
Store 74 73
|
||||
75: 30(int) Load 32(iid)
|
||||
77: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 75 72 71
|
||||
Store 77 76
|
||||
MemoryBarrier 78 79
|
||||
ControlBarrier 80 80 79
|
||||
81: 30(int) Load 32(iid)
|
||||
82: 30(int) IAdd 81 78
|
||||
83: 30(int) Load 32(iid)
|
||||
84: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 83 60
|
||||
85: 9(fvec4) Load 84
|
||||
86: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 82 60
|
||||
Store 86 85
|
||||
87: 30(int) Load 32(iid)
|
||||
88: 30(int) IAdd 87 78
|
||||
89: 30(int) Load 32(iid)
|
||||
90: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 89 66
|
||||
91: 8(float) Load 90
|
||||
92: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 88 66
|
||||
Store 92 91
|
||||
93: 30(int) Load 32(iid)
|
||||
94: 30(int) IAdd 93 78
|
||||
95: 30(int) Load 32(iid)
|
||||
96: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 95 71 72
|
||||
97: 8(float) Load 96
|
||||
98: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 94 71 72
|
||||
Store 98 97
|
||||
99: 30(int) Load 32(iid)
|
||||
100: 30(int) IAdd 99 78
|
||||
101: 30(int) Load 32(iid)
|
||||
102: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 101 72 71
|
||||
103: 8(float) Load 102
|
||||
104: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 100 72 71
|
||||
Store 104 103
|
||||
MemoryBarrier 78 79
|
||||
ControlBarrier 80 80 79
|
||||
110: 30(int) Load 32(iid)
|
||||
113: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 110 60
|
||||
Store 113 111
|
||||
114: 30(int) Load 32(iid)
|
||||
116: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 114 66
|
||||
Store 116 115
|
||||
117: 30(int) Load 32(iid)
|
||||
119: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 117 71
|
||||
Store 119 118
|
||||
120: 30(int) Load 32(iid)
|
||||
123: 122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 120 72
|
||||
Store 123 121
|
||||
MemoryBarrier 78 79
|
||||
ControlBarrier 80 80 79
|
||||
124: 30(int) Load 32(iid)
|
||||
125: 30(int) IAdd 124 78
|
||||
126: 30(int) Load 32(iid)
|
||||
127: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 126 60
|
||||
128: 59(int) Load 127
|
||||
129: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 125 60
|
||||
Store 129 128
|
||||
130: 30(int) Load 32(iid)
|
||||
131: 30(int) IAdd 130 78
|
||||
132: 30(int) Load 32(iid)
|
||||
133: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 132 66
|
||||
134: 59(int) Load 133
|
||||
135: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 131 66
|
||||
Store 135 134
|
||||
136: 30(int) Load 32(iid)
|
||||
137: 30(int) IAdd 136 78
|
||||
138: 30(int) Load 32(iid)
|
||||
139: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 138 71
|
||||
140: 59(int) Load 139
|
||||
141: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 137 71
|
||||
Store 141 140
|
||||
142: 30(int) Load 32(iid)
|
||||
143: 30(int) IAdd 142 78
|
||||
144: 122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 143 72
|
||||
Store 144 121
|
||||
MemoryBarrier 78 79
|
||||
ControlBarrier 80 80 79
|
||||
151: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 60
|
||||
Store 151 149
|
||||
152: 30(int) Load 46(primitiveCount)
|
||||
153: 30(int) ISub 152 78
|
||||
155: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 153
|
||||
Store 155 154
|
||||
156: 30(int) Load 40(gid)
|
||||
157: 30(int) Load 40(gid)
|
||||
158: 30(int) ISub 157 78
|
||||
159: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 158
|
||||
160: 33(ivec3) Load 159
|
||||
161: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 156
|
||||
Store 161 160
|
||||
MemoryBarrier 78 79
|
||||
ControlBarrier 80 80 79
|
||||
Return
|
||||
FunctionEnd
|
||||
6(basic_works(): 2 Function None 3
|
||||
7: Label
|
||||
ControlBarrier 52 52 164
|
||||
MemoryBarrier 52 164
|
||||
MemoryBarrier 52 165
|
||||
MemoryBarrier 52 166
|
||||
167: 105(bool) GroupNonUniformElect 52
|
||||
MemoryBarrier 52 79
|
||||
Return
|
||||
FunctionEnd
|
||||
13(ballot_works(vf4;): 2 Function None 11
|
||||
12(f4): 10(ptr) FunctionParameter
|
||||
14: Label
|
||||
182(ballot): 181(ptr) Variable Function
|
||||
177: 9(fvec4) Load 12(f4)
|
||||
178: 9(fvec4) GroupNonUniformBroadcast 52 177 36
|
||||
179: 9(fvec4) Load 12(f4)
|
||||
180: 9(fvec4) GroupNonUniformBroadcastFirst 52 179
|
||||
183: 170(ivec4) GroupNonUniformBallot 52 121
|
||||
Store 182(ballot) 183
|
||||
185: 105(bool) GroupNonUniformInverseBallot 52 184
|
||||
186: 170(ivec4) Load 182(ballot)
|
||||
187: 105(bool) GroupNonUniformBallotBitExtract 52 186 36
|
||||
188: 170(ivec4) Load 182(ballot)
|
||||
189: 30(int) GroupNonUniformBallotBitCount 52 Reduce 188
|
||||
190: 170(ivec4) Load 182(ballot)
|
||||
191: 30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 190
|
||||
192: 170(ivec4) Load 182(ballot)
|
||||
193: 30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 192
|
||||
194: 170(ivec4) Load 182(ballot)
|
||||
195: 30(int) GroupNonUniformBallotFindLSB 52 194
|
||||
196: 170(ivec4) Load 182(ballot)
|
||||
197: 30(int) GroupNonUniformBallotFindMSB 52 196
|
||||
Return
|
||||
FunctionEnd
|
||||
16(vote_works(vf4;): 2 Function None 11
|
||||
15(f4): 10(ptr) FunctionParameter
|
||||
17: Label
|
||||
199: 105(bool) GroupNonUniformAll 52 198
|
||||
200: 105(bool) GroupNonUniformAny 52 121
|
||||
201: 9(fvec4) Load 15(f4)
|
||||
202: 105(bool) GroupNonUniformAllEqual 52 201
|
||||
Return
|
||||
FunctionEnd
|
||||
19(shuffle_works(vf4;): 2 Function None 11
|
||||
18(f4): 10(ptr) FunctionParameter
|
||||
20: Label
|
||||
203: 9(fvec4) Load 18(f4)
|
||||
204: 9(fvec4) GroupNonUniformShuffle 52 203 36
|
||||
205: 9(fvec4) Load 18(f4)
|
||||
206: 9(fvec4) GroupNonUniformShuffleXor 52 205 78
|
||||
207: 9(fvec4) Load 18(f4)
|
||||
208: 9(fvec4) GroupNonUniformShuffleUp 52 207 78
|
||||
209: 9(fvec4) Load 18(f4)
|
||||
210: 9(fvec4) GroupNonUniformShuffleDown 52 209 78
|
||||
Return
|
||||
FunctionEnd
|
||||
22(arith_works(vf4;): 2 Function None 11
|
||||
21(f4): 10(ptr) FunctionParameter
|
||||
23: Label
|
||||
219(ballot): 181(ptr) Variable Function
|
||||
211: 9(fvec4) Load 21(f4)
|
||||
212: 9(fvec4) GroupNonUniformFAdd 52 Reduce 211
|
||||
213: 9(fvec4) Load 21(f4)
|
||||
214: 9(fvec4) GroupNonUniformFMul 52 Reduce 213
|
||||
215: 9(fvec4) Load 21(f4)
|
||||
216: 9(fvec4) GroupNonUniformFMin 52 Reduce 215
|
||||
217: 9(fvec4) Load 21(f4)
|
||||
218: 9(fvec4) GroupNonUniformFMax 52 Reduce 217
|
||||
220: 170(ivec4) Load 219(ballot)
|
||||
221: 170(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 220
|
||||
222: 170(ivec4) Load 219(ballot)
|
||||
223: 170(ivec4) GroupNonUniformBitwiseOr 52 Reduce 222
|
||||
224: 170(ivec4) Load 219(ballot)
|
||||
225: 170(ivec4) GroupNonUniformBitwiseXor 52 Reduce 224
|
||||
226: 9(fvec4) Load 21(f4)
|
||||
227: 9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 226
|
||||
228: 9(fvec4) Load 21(f4)
|
||||
229: 9(fvec4) GroupNonUniformFMul 52 InclusiveScan 228
|
||||
230: 9(fvec4) Load 21(f4)
|
||||
231: 9(fvec4) GroupNonUniformFMin 52 InclusiveScan 230
|
||||
232: 9(fvec4) Load 21(f4)
|
||||
233: 9(fvec4) GroupNonUniformFMax 52 InclusiveScan 232
|
||||
234: 170(ivec4) Load 219(ballot)
|
||||
235: 170(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 234
|
||||
236: 170(ivec4) Load 219(ballot)
|
||||
237: 170(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 236
|
||||
238: 170(ivec4) Load 219(ballot)
|
||||
239: 170(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 238
|
||||
240: 9(fvec4) Load 21(f4)
|
||||
241: 9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 240
|
||||
242: 9(fvec4) Load 21(f4)
|
||||
243: 9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 242
|
||||
244: 9(fvec4) Load 21(f4)
|
||||
245: 9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 244
|
||||
246: 9(fvec4) Load 21(f4)
|
||||
247: 9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 246
|
||||
248: 170(ivec4) Load 219(ballot)
|
||||
249: 170(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 248
|
||||
250: 170(ivec4) Load 219(ballot)
|
||||
251: 170(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 250
|
||||
252: 170(ivec4) Load 219(ballot)
|
||||
253: 170(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 252
|
||||
Return
|
||||
FunctionEnd
|
||||
25(clustered_works(vf4;): 2 Function None 11
|
||||
24(f4): 10(ptr) FunctionParameter
|
||||
26: Label
|
||||
254(ballot): 181(ptr) Variable Function
|
||||
Store 254(ballot) 256
|
||||
257: 9(fvec4) Load 24(f4)
|
||||
258: 9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 257 80
|
||||
259: 9(fvec4) Load 24(f4)
|
||||
260: 9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 259 80
|
||||
261: 9(fvec4) Load 24(f4)
|
||||
262: 9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 261 80
|
||||
263: 9(fvec4) Load 24(f4)
|
||||
264: 9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 263 80
|
||||
265: 170(ivec4) Load 254(ballot)
|
||||
266: 170(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 265 80
|
||||
267: 170(ivec4) Load 254(ballot)
|
||||
268: 170(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 267 80
|
||||
269: 170(ivec4) Load 254(ballot)
|
||||
270: 170(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 269 80
|
||||
Return
|
||||
FunctionEnd
|
||||
28(quad_works(vf4;): 2 Function None 11
|
||||
27(f4): 10(ptr) FunctionParameter
|
||||
29: Label
|
||||
271: 9(fvec4) Load 27(f4)
|
||||
272: 9(fvec4) GroupNonUniformQuadBroadcast 52 271 36
|
||||
273: 9(fvec4) Load 27(f4)
|
||||
274: 9(fvec4) GroupNonUniformQuadSwap 52 273 36
|
||||
275: 9(fvec4) Load 27(f4)
|
||||
276: 9(fvec4) GroupNonUniformQuadSwap 52 275 78
|
||||
277: 9(fvec4) Load 27(f4)
|
||||
278: 9(fvec4) GroupNonUniformQuadSwap 52 277 80
|
||||
Return
|
||||
FunctionEnd
|
||||
376
Test/baseResults/spv.460.subgroupEXT.task.out
Normal file
376
Test/baseResults/spv.460.subgroupEXT.task.out
Normal file
@@ -0,0 +1,376 @@
|
||||
spv.460.subgroupEXT.task
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 242
|
||||
|
||||
Capability StorageImageWriteWithoutFormat
|
||||
Capability GroupNonUniform
|
||||
Capability GroupNonUniformVote
|
||||
Capability GroupNonUniformArithmetic
|
||||
Capability GroupNonUniformBallot
|
||||
Capability GroupNonUniformShuffle
|
||||
Capability GroupNonUniformShuffleRelative
|
||||
Capability GroupNonUniformClustered
|
||||
Capability GroupNonUniformQuad
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TaskEXT 4 "main" 35 41 56 61 77 102 122 123 128 129 132 133 134 135 136
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
SourceExtension "GL_KHR_shader_subgroup_arithmetic"
|
||||
SourceExtension "GL_KHR_shader_subgroup_ballot"
|
||||
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||
SourceExtension "GL_KHR_shader_subgroup_clustered"
|
||||
SourceExtension "GL_KHR_shader_subgroup_quad"
|
||||
SourceExtension "GL_KHR_shader_subgroup_shuffle"
|
||||
SourceExtension "GL_KHR_shader_subgroup_shuffle_relative"
|
||||
SourceExtension "GL_KHR_shader_subgroup_vote"
|
||||
Name 4 "main"
|
||||
Name 6 "basic_works("
|
||||
Name 13 "ballot_works(vf4;"
|
||||
Name 12 "f4"
|
||||
Name 16 "vote_works(vf4;"
|
||||
Name 15 "f4"
|
||||
Name 19 "shuffle_works(vf4;"
|
||||
Name 18 "f4"
|
||||
Name 22 "arith_works(vf4;"
|
||||
Name 21 "f4"
|
||||
Name 25 "clustered_works(vf4;"
|
||||
Name 24 "f4"
|
||||
Name 28 "quad_works(vf4;"
|
||||
Name 27 "f4"
|
||||
Name 32 "iid"
|
||||
Name 35 "gl_LocalInvocationID"
|
||||
Name 40 "gid"
|
||||
Name 41 "gl_WorkGroupID"
|
||||
Name 44 "i"
|
||||
Name 56 "mem"
|
||||
Name 59 "block0"
|
||||
MemberName 59(block0) 0 "uni_value"
|
||||
Name 61 ""
|
||||
Name 77 "uni_image"
|
||||
Name 100 "Task"
|
||||
MemberName 100(Task) 0 "dummy"
|
||||
MemberName 100(Task) 1 "submesh"
|
||||
Name 102 "mytask"
|
||||
Name 122 "gl_SubgroupSize"
|
||||
Name 123 "gl_SubgroupInvocationID"
|
||||
Name 128 "gl_NumSubgroups"
|
||||
Name 129 "gl_SubgroupID"
|
||||
Name 132 "gl_SubgroupEqMask"
|
||||
Name 133 "gl_SubgroupGeMask"
|
||||
Name 134 "gl_SubgroupGtMask"
|
||||
Name 135 "gl_SubgroupLeMask"
|
||||
Name 136 "gl_SubgroupLtMask"
|
||||
Name 142 "ballot"
|
||||
Name 180 "ballot"
|
||||
Name 215 "ballot"
|
||||
Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||
MemberDecorate 59(block0) 0 Offset 0
|
||||
Decorate 59(block0) Block
|
||||
Decorate 61 DescriptorSet 0
|
||||
Decorate 61 Binding 1
|
||||
Decorate 77(uni_image) DescriptorSet 0
|
||||
Decorate 77(uni_image) Binding 0
|
||||
Decorate 77(uni_image) NonReadable
|
||||
Decorate 122(gl_SubgroupSize) RelaxedPrecision
|
||||
Decorate 122(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||
Decorate 123(gl_SubgroupInvocationID) RelaxedPrecision
|
||||
Decorate 123(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||
Decorate 128(gl_NumSubgroups) BuiltIn NumSubgroups
|
||||
Decorate 129(gl_SubgroupID) BuiltIn SubgroupId
|
||||
Decorate 132(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
||||
Decorate 133(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
|
||||
Decorate 134(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
|
||||
Decorate 135(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
|
||||
Decorate 136(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
|
||||
Decorate 241 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
8: TypeFloat 32
|
||||
9: TypeVector 8(float) 4
|
||||
10: TypePointer Function 9(fvec4)
|
||||
11: TypeFunction 2 10(ptr)
|
||||
30: TypeInt 32 0
|
||||
31: TypePointer Function 30(int)
|
||||
33: TypeVector 30(int) 3
|
||||
34: TypePointer Input 33(ivec3)
|
||||
35(gl_LocalInvocationID): 34(ptr) Variable Input
|
||||
36: 30(int) Constant 0
|
||||
37: TypePointer Input 30(int)
|
||||
41(gl_WorkGroupID): 34(ptr) Variable Input
|
||||
51: 30(int) Constant 10
|
||||
52: TypeBool
|
||||
54: TypeArray 9(fvec4) 51
|
||||
55: TypePointer Workgroup 54
|
||||
56(mem): 55(ptr) Variable Workgroup
|
||||
59(block0): TypeStruct 30(int)
|
||||
60: TypePointer Uniform 59(block0)
|
||||
61: 60(ptr) Variable Uniform
|
||||
62: TypeInt 32 1
|
||||
63: 62(int) Constant 0
|
||||
64: TypePointer Uniform 30(int)
|
||||
70: TypePointer Workgroup 9(fvec4)
|
||||
73: 62(int) Constant 1
|
||||
75: TypeImage 8(float) 2D nonsampled format:Unknown
|
||||
76: TypePointer UniformConstant 75
|
||||
77(uni_image): 76(ptr) Variable UniformConstant
|
||||
81: TypeVector 62(int) 2
|
||||
91: 30(int) Constant 1
|
||||
95: 30(int) Constant 264
|
||||
96: 30(int) Constant 2
|
||||
97: TypeVector 8(float) 2
|
||||
98: 30(int) Constant 3
|
||||
99: TypeArray 97(fvec2) 98
|
||||
100(Task): TypeStruct 97(fvec2) 99
|
||||
101: TypePointer TaskPayloadWorkgroupEXT 100(Task)
|
||||
102(mytask): 101(ptr) Variable TaskPayloadWorkgroupEXT
|
||||
103: 8(float) Constant 1106247680
|
||||
104: 8(float) Constant 1106771968
|
||||
105: 97(fvec2) ConstantComposite 103 104
|
||||
106: TypePointer TaskPayloadWorkgroupEXT 97(fvec2)
|
||||
108: 8(float) Constant 1107296256
|
||||
109: 8(float) Constant 1107558400
|
||||
110: 97(fvec2) ConstantComposite 108 109
|
||||
112: 8(float) Constant 1107820544
|
||||
113: 8(float) Constant 1108082688
|
||||
114: 97(fvec2) ConstantComposite 112 113
|
||||
116: 62(int) Constant 2
|
||||
122(gl_SubgroupSize): 37(ptr) Variable Input
|
||||
123(gl_SubgroupInvocationID): 37(ptr) Variable Input
|
||||
124: 30(int) Constant 3400
|
||||
125: 30(int) Constant 72
|
||||
126: 30(int) Constant 2056
|
||||
128(gl_NumSubgroups): 37(ptr) Variable Input
|
||||
129(gl_SubgroupID): 37(ptr) Variable Input
|
||||
130: TypeVector 30(int) 4
|
||||
131: TypePointer Input 130(ivec4)
|
||||
132(gl_SubgroupEqMask): 131(ptr) Variable Input
|
||||
133(gl_SubgroupGeMask): 131(ptr) Variable Input
|
||||
134(gl_SubgroupGtMask): 131(ptr) Variable Input
|
||||
135(gl_SubgroupLeMask): 131(ptr) Variable Input
|
||||
136(gl_SubgroupLtMask): 131(ptr) Variable Input
|
||||
141: TypePointer Function 130(ivec4)
|
||||
143: 52(bool) ConstantFalse
|
||||
145: 130(ivec4) ConstantComposite 91 91 91 91
|
||||
159: 52(bool) ConstantTrue
|
||||
216: 30(int) Constant 85
|
||||
217: 130(ivec4) ConstantComposite 216 36 36 36
|
||||
240: 30(int) Constant 32
|
||||
241: 33(ivec3) ConstantComposite 240 91 91
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
32(iid): 31(ptr) Variable Function
|
||||
40(gid): 31(ptr) Variable Function
|
||||
44(i): 31(ptr) Variable Function
|
||||
38: 37(ptr) AccessChain 35(gl_LocalInvocationID) 36
|
||||
39: 30(int) Load 38
|
||||
Store 32(iid) 39
|
||||
42: 37(ptr) AccessChain 41(gl_WorkGroupID) 36
|
||||
43: 30(int) Load 42
|
||||
Store 40(gid) 43
|
||||
Store 44(i) 36
|
||||
Branch 45
|
||||
45: Label
|
||||
LoopMerge 47 48 None
|
||||
Branch 49
|
||||
49: Label
|
||||
50: 30(int) Load 44(i)
|
||||
53: 52(bool) ULessThan 50 51
|
||||
BranchConditional 53 46 47
|
||||
46: Label
|
||||
57: 30(int) Load 44(i)
|
||||
58: 30(int) Load 44(i)
|
||||
65: 64(ptr) AccessChain 61 63
|
||||
66: 30(int) Load 65
|
||||
67: 30(int) IAdd 58 66
|
||||
68: 8(float) ConvertUToF 67
|
||||
69: 9(fvec4) CompositeConstruct 68 68 68 68
|
||||
71: 70(ptr) AccessChain 56(mem) 57
|
||||
Store 71 69
|
||||
Branch 48
|
||||
48: Label
|
||||
72: 30(int) Load 44(i)
|
||||
74: 30(int) IAdd 72 73
|
||||
Store 44(i) 74
|
||||
Branch 45
|
||||
47: Label
|
||||
78: 75 Load 77(uni_image)
|
||||
79: 30(int) Load 32(iid)
|
||||
80: 62(int) Bitcast 79
|
||||
82: 81(ivec2) CompositeConstruct 80 80
|
||||
83: 30(int) Load 40(gid)
|
||||
84: 70(ptr) AccessChain 56(mem) 83
|
||||
85: 9(fvec4) Load 84
|
||||
ImageWrite 78 82 85
|
||||
86: 75 Load 77(uni_image)
|
||||
87: 30(int) Load 32(iid)
|
||||
88: 62(int) Bitcast 87
|
||||
89: 81(ivec2) CompositeConstruct 88 88
|
||||
90: 30(int) Load 40(gid)
|
||||
92: 30(int) IAdd 90 91
|
||||
93: 70(ptr) AccessChain 56(mem) 92
|
||||
94: 9(fvec4) Load 93
|
||||
ImageWrite 86 89 94
|
||||
MemoryBarrier 91 95
|
||||
ControlBarrier 96 96 95
|
||||
107: 106(ptr) AccessChain 102(mytask) 63
|
||||
Store 107 105
|
||||
111: 106(ptr) AccessChain 102(mytask) 73 63
|
||||
Store 111 110
|
||||
115: 106(ptr) AccessChain 102(mytask) 73 73
|
||||
Store 115 114
|
||||
117: 30(int) Load 40(gid)
|
||||
118: 30(int) UMod 117 96
|
||||
119: 106(ptr) AccessChain 102(mytask) 73 118
|
||||
120: 97(fvec2) Load 119
|
||||
121: 106(ptr) AccessChain 102(mytask) 73 116
|
||||
Store 121 120
|
||||
MemoryBarrier 91 95
|
||||
ControlBarrier 96 96 95
|
||||
EmitMeshTasksEXT 98 91 91 102(mytask)
|
||||
Return
|
||||
FunctionEnd
|
||||
6(basic_works(): 2 Function None 3
|
||||
7: Label
|
||||
ControlBarrier 98 98 124
|
||||
MemoryBarrier 98 124
|
||||
MemoryBarrier 98 125
|
||||
MemoryBarrier 98 126
|
||||
127: 52(bool) GroupNonUniformElect 98
|
||||
MemoryBarrier 98 95
|
||||
Return
|
||||
FunctionEnd
|
||||
13(ballot_works(vf4;): 2 Function None 11
|
||||
12(f4): 10(ptr) FunctionParameter
|
||||
14: Label
|
||||
142(ballot): 141(ptr) Variable Function
|
||||
137: 9(fvec4) Load 12(f4)
|
||||
138: 9(fvec4) GroupNonUniformBroadcast 98 137 36
|
||||
139: 9(fvec4) Load 12(f4)
|
||||
140: 9(fvec4) GroupNonUniformBroadcastFirst 98 139
|
||||
144: 130(ivec4) GroupNonUniformBallot 98 143
|
||||
Store 142(ballot) 144
|
||||
146: 52(bool) GroupNonUniformInverseBallot 98 145
|
||||
147: 130(ivec4) Load 142(ballot)
|
||||
148: 52(bool) GroupNonUniformBallotBitExtract 98 147 36
|
||||
149: 130(ivec4) Load 142(ballot)
|
||||
150: 30(int) GroupNonUniformBallotBitCount 98 Reduce 149
|
||||
151: 130(ivec4) Load 142(ballot)
|
||||
152: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 151
|
||||
153: 130(ivec4) Load 142(ballot)
|
||||
154: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 153
|
||||
155: 130(ivec4) Load 142(ballot)
|
||||
156: 30(int) GroupNonUniformBallotFindLSB 98 155
|
||||
157: 130(ivec4) Load 142(ballot)
|
||||
158: 30(int) GroupNonUniformBallotFindMSB 98 157
|
||||
Return
|
||||
FunctionEnd
|
||||
16(vote_works(vf4;): 2 Function None 11
|
||||
15(f4): 10(ptr) FunctionParameter
|
||||
17: Label
|
||||
160: 52(bool) GroupNonUniformAll 98 159
|
||||
161: 52(bool) GroupNonUniformAny 98 143
|
||||
162: 9(fvec4) Load 15(f4)
|
||||
163: 52(bool) GroupNonUniformAllEqual 98 162
|
||||
Return
|
||||
FunctionEnd
|
||||
19(shuffle_works(vf4;): 2 Function None 11
|
||||
18(f4): 10(ptr) FunctionParameter
|
||||
20: Label
|
||||
164: 9(fvec4) Load 18(f4)
|
||||
165: 9(fvec4) GroupNonUniformShuffle 98 164 36
|
||||
166: 9(fvec4) Load 18(f4)
|
||||
167: 9(fvec4) GroupNonUniformShuffleXor 98 166 91
|
||||
168: 9(fvec4) Load 18(f4)
|
||||
169: 9(fvec4) GroupNonUniformShuffleUp 98 168 91
|
||||
170: 9(fvec4) Load 18(f4)
|
||||
171: 9(fvec4) GroupNonUniformShuffleDown 98 170 91
|
||||
Return
|
||||
FunctionEnd
|
||||
22(arith_works(vf4;): 2 Function None 11
|
||||
21(f4): 10(ptr) FunctionParameter
|
||||
23: Label
|
||||
180(ballot): 141(ptr) Variable Function
|
||||
172: 9(fvec4) Load 21(f4)
|
||||
173: 9(fvec4) GroupNonUniformFAdd 98 Reduce 172
|
||||
174: 9(fvec4) Load 21(f4)
|
||||
175: 9(fvec4) GroupNonUniformFMul 98 Reduce 174
|
||||
176: 9(fvec4) Load 21(f4)
|
||||
177: 9(fvec4) GroupNonUniformFMin 98 Reduce 176
|
||||
178: 9(fvec4) Load 21(f4)
|
||||
179: 9(fvec4) GroupNonUniformFMax 98 Reduce 178
|
||||
181: 130(ivec4) Load 180(ballot)
|
||||
182: 130(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 181
|
||||
183: 130(ivec4) Load 180(ballot)
|
||||
184: 130(ivec4) GroupNonUniformBitwiseOr 98 Reduce 183
|
||||
185: 130(ivec4) Load 180(ballot)
|
||||
186: 130(ivec4) GroupNonUniformBitwiseXor 98 Reduce 185
|
||||
187: 9(fvec4) Load 21(f4)
|
||||
188: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 187
|
||||
189: 9(fvec4) Load 21(f4)
|
||||
190: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 189
|
||||
191: 9(fvec4) Load 21(f4)
|
||||
192: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 191
|
||||
193: 9(fvec4) Load 21(f4)
|
||||
194: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 193
|
||||
195: 130(ivec4) Load 180(ballot)
|
||||
196: 130(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 195
|
||||
197: 130(ivec4) Load 180(ballot)
|
||||
198: 130(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 197
|
||||
199: 130(ivec4) Load 180(ballot)
|
||||
200: 130(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 199
|
||||
201: 9(fvec4) Load 21(f4)
|
||||
202: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 201
|
||||
203: 9(fvec4) Load 21(f4)
|
||||
204: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 203
|
||||
205: 9(fvec4) Load 21(f4)
|
||||
206: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 205
|
||||
207: 9(fvec4) Load 21(f4)
|
||||
208: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 207
|
||||
209: 130(ivec4) Load 180(ballot)
|
||||
210: 130(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 209
|
||||
211: 130(ivec4) Load 180(ballot)
|
||||
212: 130(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 211
|
||||
213: 130(ivec4) Load 180(ballot)
|
||||
214: 130(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 213
|
||||
Return
|
||||
FunctionEnd
|
||||
25(clustered_works(vf4;): 2 Function None 11
|
||||
24(f4): 10(ptr) FunctionParameter
|
||||
26: Label
|
||||
215(ballot): 141(ptr) Variable Function
|
||||
Store 215(ballot) 217
|
||||
218: 9(fvec4) Load 24(f4)
|
||||
219: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 218 96
|
||||
220: 9(fvec4) Load 24(f4)
|
||||
221: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 220 96
|
||||
222: 9(fvec4) Load 24(f4)
|
||||
223: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 222 96
|
||||
224: 9(fvec4) Load 24(f4)
|
||||
225: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 224 96
|
||||
226: 130(ivec4) Load 215(ballot)
|
||||
227: 130(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 226 96
|
||||
228: 130(ivec4) Load 215(ballot)
|
||||
229: 130(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 228 96
|
||||
230: 130(ivec4) Load 215(ballot)
|
||||
231: 130(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 230 96
|
||||
Return
|
||||
FunctionEnd
|
||||
28(quad_works(vf4;): 2 Function None 11
|
||||
27(f4): 10(ptr) FunctionParameter
|
||||
29: Label
|
||||
232: 9(fvec4) Load 27(f4)
|
||||
233: 9(fvec4) GroupNonUniformQuadBroadcast 98 232 36
|
||||
234: 9(fvec4) Load 27(f4)
|
||||
235: 9(fvec4) GroupNonUniformQuadSwap 98 234 36
|
||||
236: 9(fvec4) Load 27(f4)
|
||||
237: 9(fvec4) GroupNonUniformQuadSwap 98 236 91
|
||||
238: 9(fvec4) Load 27(f4)
|
||||
239: 9(fvec4) GroupNonUniformQuadSwap 98 238 96
|
||||
Return
|
||||
FunctionEnd
|
||||
7
Test/baseResults/spv.atomiAddEXT.error.mesh.out
Normal file
7
Test/baseResults/spv.atomiAddEXT.error.mesh.out
Normal file
@@ -0,0 +1,7 @@
|
||||
spv.atomiAddEXT.error.mesh
|
||||
ERROR: 0:21: 'assign' : l-value required "mytask" (can't modify variable with storage qualifier taskPayloadSharedEXT in mesh shaders)
|
||||
ERROR: 0:21: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters.
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
71
Test/baseResults/spv.atomiAddEXT.task.out
Normal file
71
Test/baseResults/spv.atomiAddEXT.task.out
Normal file
@@ -0,0 +1,71 @@
|
||||
spv.atomiAddEXT.task
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 34
|
||||
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TaskEXT 4 "main" 9 23 28
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
Name 4 "main"
|
||||
Name 7 "Buffer"
|
||||
MemberName 7(Buffer) 0 "x"
|
||||
Name 9 ""
|
||||
Name 20 "structType"
|
||||
MemberName 20(structType) 0 "y"
|
||||
Name 21 "t2"
|
||||
MemberName 21(t2) 0 "f"
|
||||
Name 23 "t"
|
||||
Name 26 "taskBlock"
|
||||
MemberName 26(taskBlock) 0 "atom1"
|
||||
Name 28 "mytask"
|
||||
MemberDecorate 7(Buffer) 0 Coherent
|
||||
MemberDecorate 7(Buffer) 0 Offset 0
|
||||
Decorate 7(Buffer) Block
|
||||
Decorate 9 DescriptorSet 0
|
||||
Decorate 9 Binding 1
|
||||
Decorate 19 ArrayStride 4
|
||||
MemberDecorate 20(structType) 0 Offset 0
|
||||
MemberDecorate 21(t2) 0 Offset 0
|
||||
Decorate 21(t2) Block
|
||||
Decorate 23(t) DescriptorSet 0
|
||||
Decorate 23(t) Binding 0
|
||||
Decorate 33 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7(Buffer): TypeStruct 6(int)
|
||||
8: TypePointer StorageBuffer 7(Buffer)
|
||||
9: 8(ptr) Variable StorageBuffer
|
||||
10: 6(int) Constant 0
|
||||
11: TypePointer StorageBuffer 6(int)
|
||||
13: 6(int) Constant 1
|
||||
14: TypeInt 32 0
|
||||
15: 14(int) Constant 1
|
||||
16: 14(int) Constant 0
|
||||
18: 14(int) Constant 3
|
||||
19: TypeArray 6(int) 18
|
||||
20(structType): TypeStruct 19
|
||||
21(t2): TypeStruct 20(structType)
|
||||
22: TypePointer StorageBuffer 21(t2)
|
||||
23(t): 22(ptr) Variable StorageBuffer
|
||||
26(taskBlock): TypeStruct 6(int)
|
||||
27: TypePointer TaskPayloadWorkgroupEXT 26(taskBlock)
|
||||
28(mytask): 27(ptr) Variable TaskPayloadWorkgroupEXT
|
||||
29: TypePointer TaskPayloadWorkgroupEXT 6(int)
|
||||
32: TypeVector 14(int) 3
|
||||
33: 32(ivec3) ConstantComposite 15 15 15
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 11(ptr) AccessChain 9 10
|
||||
17: 6(int) AtomicIAdd 12 15 16 13
|
||||
24: 11(ptr) AccessChain 23(t) 10 10 13
|
||||
25: 6(int) AtomicIAdd 24 15 16 13
|
||||
30: 29(ptr) AccessChain 28(mytask) 10
|
||||
31: 6(int) AtomicIAdd 30 15 16 13
|
||||
Return
|
||||
FunctionEnd
|
||||
273
Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
Normal file
273
Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
Normal file
@@ -0,0 +1,273 @@
|
||||
spv.ext.meshShaderBuiltins.mesh
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 159
|
||||
|
||||
Capability ClipDistance
|
||||
Capability CullDistance
|
||||
Capability FragmentShadingRateKHR
|
||||
Capability DrawParameters
|
||||
Capability MultiView
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
Extension "SPV_KHR_fragment_shading_rate"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint MeshEXT 4 "main" 13 19 24 41 93 135 153 156
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
ExecutionMode 4 OutputVertices 81
|
||||
ExecutionMode 4 OutputPrimitivesNV 32
|
||||
ExecutionMode 4 OutputTrianglesNV
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_ARB_shader_draw_parameters"
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
SourceExtension "GL_EXT_multiview"
|
||||
Name 4 "main"
|
||||
Name 6 "testAdditionalBuiltins("
|
||||
Name 10 "iid"
|
||||
Name 13 "gl_LocalInvocationID"
|
||||
Name 18 "gid"
|
||||
Name 19 "gl_WorkGroupID"
|
||||
Name 23 "numWorkGrous"
|
||||
Name 24 "gl_NumWorkGroups"
|
||||
Name 26 "vertexCount"
|
||||
Name 28 "primitiveCount"
|
||||
Name 38 "gl_MeshPerVertexEXT"
|
||||
MemberName 38(gl_MeshPerVertexEXT) 0 "gl_Position"
|
||||
MemberName 38(gl_MeshPerVertexEXT) 1 "gl_PointSize"
|
||||
MemberName 38(gl_MeshPerVertexEXT) 2 "gl_ClipDistance"
|
||||
MemberName 38(gl_MeshPerVertexEXT) 3 "gl_CullDistance"
|
||||
Name 41 "gl_MeshVerticesEXT"
|
||||
Name 90 "gl_MeshPerPrimitiveEXT"
|
||||
MemberName 90(gl_MeshPerPrimitiveEXT) 0 "gl_PrimitiveID"
|
||||
MemberName 90(gl_MeshPerPrimitiveEXT) 1 "gl_Layer"
|
||||
MemberName 90(gl_MeshPerPrimitiveEXT) 2 "gl_ViewportIndex"
|
||||
MemberName 90(gl_MeshPerPrimitiveEXT) 3 "gl_CullPrimitiveEXT"
|
||||
MemberName 90(gl_MeshPerPrimitiveEXT) 4 "gl_PrimitiveShadingRateEXT"
|
||||
Name 93 "gl_MeshPrimitivesEXT"
|
||||
Name 135 "gl_PrimitiveTriangleIndicesEXT"
|
||||
Name 151 "id"
|
||||
Name 153 "gl_DrawIDARB"
|
||||
Name 155 "viewIdx"
|
||||
Name 156 "gl_ViewIndex"
|
||||
Decorate 13(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||
Decorate 24(gl_NumWorkGroups) BuiltIn NumWorkgroups
|
||||
MemberDecorate 38(gl_MeshPerVertexEXT) 0 BuiltIn Position
|
||||
MemberDecorate 38(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
|
||||
MemberDecorate 38(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 38(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
|
||||
Decorate 38(gl_MeshPerVertexEXT) Block
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
|
||||
MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
|
||||
Decorate 90(gl_MeshPerPrimitiveEXT) Block
|
||||
Decorate 135(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
|
||||
Decorate 153(gl_DrawIDARB) BuiltIn DrawIndex
|
||||
Decorate 156(gl_ViewIndex) BuiltIn ViewIndex
|
||||
Decorate 158 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
8: TypeInt 32 0
|
||||
9: TypePointer Function 8(int)
|
||||
11: TypeVector 8(int) 3
|
||||
12: TypePointer Input 11(ivec3)
|
||||
13(gl_LocalInvocationID): 12(ptr) Variable Input
|
||||
14: 8(int) Constant 0
|
||||
15: TypePointer Input 8(int)
|
||||
19(gl_WorkGroupID): 12(ptr) Variable Input
|
||||
22: TypePointer Function 11(ivec3)
|
||||
24(gl_NumWorkGroups): 12(ptr) Variable Input
|
||||
27: 8(int) Constant 81
|
||||
29: 8(int) Constant 32
|
||||
32: TypeFloat 32
|
||||
33: TypeVector 32(float) 4
|
||||
34: 8(int) Constant 4
|
||||
35: TypeArray 32(float) 34
|
||||
36: 8(int) Constant 3
|
||||
37: TypeArray 32(float) 36
|
||||
38(gl_MeshPerVertexEXT): TypeStruct 33(fvec4) 32(float) 35 37
|
||||
39: TypeArray 38(gl_MeshPerVertexEXT) 27
|
||||
40: TypePointer Output 39
|
||||
41(gl_MeshVerticesEXT): 40(ptr) Variable Output
|
||||
43: TypeInt 32 1
|
||||
44: 43(int) Constant 0
|
||||
45: 32(float) Constant 1065353216
|
||||
46: 33(fvec4) ConstantComposite 45 45 45 45
|
||||
47: TypePointer Output 33(fvec4)
|
||||
50: 43(int) Constant 1
|
||||
51: 32(float) Constant 1073741824
|
||||
52: TypePointer Output 32(float)
|
||||
55: 43(int) Constant 2
|
||||
56: 43(int) Constant 3
|
||||
57: 32(float) Constant 1077936128
|
||||
60: 32(float) Constant 1082130432
|
||||
62: 8(int) Constant 1
|
||||
63: 8(int) Constant 264
|
||||
64: 8(int) Constant 2
|
||||
89: TypeBool
|
||||
90(gl_MeshPerPrimitiveEXT): TypeStruct 43(int) 43(int) 43(int) 89(bool) 43(int)
|
||||
91: TypeArray 90(gl_MeshPerPrimitiveEXT) 29
|
||||
92: TypePointer Output 91
|
||||
93(gl_MeshPrimitivesEXT): 92(ptr) Variable Output
|
||||
95: 43(int) Constant 6
|
||||
96: TypePointer Output 43(int)
|
||||
99: 43(int) Constant 7
|
||||
102: 43(int) Constant 8
|
||||
105: 89(bool) ConstantFalse
|
||||
106: TypePointer Output 89(bool)
|
||||
132: 8(int) Constant 96
|
||||
133: TypeArray 11(ivec3) 132
|
||||
134: TypePointer Output 133
|
||||
135(gl_PrimitiveTriangleIndicesEXT): 134(ptr) Variable Output
|
||||
136: 8(int) Constant 257
|
||||
137: 11(ivec3) ConstantComposite 136 136 136
|
||||
138: TypePointer Output 11(ivec3)
|
||||
142: 11(ivec3) ConstantComposite 64 64 64
|
||||
150: TypePointer Function 43(int)
|
||||
152: TypePointer Input 43(int)
|
||||
153(gl_DrawIDARB): 152(ptr) Variable Input
|
||||
156(gl_ViewIndex): 152(ptr) Variable Input
|
||||
158: 11(ivec3) ConstantComposite 29 62 62
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(iid): 9(ptr) Variable Function
|
||||
18(gid): 9(ptr) Variable Function
|
||||
23(numWorkGrous): 22(ptr) Variable Function
|
||||
26(vertexCount): 9(ptr) Variable Function
|
||||
28(primitiveCount): 9(ptr) Variable Function
|
||||
16: 15(ptr) AccessChain 13(gl_LocalInvocationID) 14
|
||||
17: 8(int) Load 16
|
||||
Store 10(iid) 17
|
||||
20: 15(ptr) AccessChain 19(gl_WorkGroupID) 14
|
||||
21: 8(int) Load 20
|
||||
Store 18(gid) 21
|
||||
25: 11(ivec3) Load 24(gl_NumWorkGroups)
|
||||
Store 23(numWorkGrous) 25
|
||||
Store 26(vertexCount) 27
|
||||
Store 28(primitiveCount) 29
|
||||
30: 8(int) Load 26(vertexCount)
|
||||
31: 8(int) Load 28(primitiveCount)
|
||||
SetMeshOutputsEXT 30 31
|
||||
42: 8(int) Load 10(iid)
|
||||
48: 47(ptr) AccessChain 41(gl_MeshVerticesEXT) 42 44
|
||||
Store 48 46
|
||||
49: 8(int) Load 10(iid)
|
||||
53: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 49 50
|
||||
Store 53 51
|
||||
54: 8(int) Load 10(iid)
|
||||
58: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 54 55 56
|
||||
Store 58 57
|
||||
59: 8(int) Load 10(iid)
|
||||
61: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 59 56 55
|
||||
Store 61 60
|
||||
MemoryBarrier 62 63
|
||||
ControlBarrier 64 64 63
|
||||
65: 8(int) Load 10(iid)
|
||||
66: 8(int) IAdd 65 62
|
||||
67: 8(int) Load 10(iid)
|
||||
68: 47(ptr) AccessChain 41(gl_MeshVerticesEXT) 67 44
|
||||
69: 33(fvec4) Load 68
|
||||
70: 47(ptr) AccessChain 41(gl_MeshVerticesEXT) 66 44
|
||||
Store 70 69
|
||||
71: 8(int) Load 10(iid)
|
||||
72: 8(int) IAdd 71 62
|
||||
73: 8(int) Load 10(iid)
|
||||
74: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 73 50
|
||||
75: 32(float) Load 74
|
||||
76: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 72 50
|
||||
Store 76 75
|
||||
77: 8(int) Load 10(iid)
|
||||
78: 8(int) IAdd 77 62
|
||||
79: 8(int) Load 10(iid)
|
||||
80: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 79 55 56
|
||||
81: 32(float) Load 80
|
||||
82: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 78 55 56
|
||||
Store 82 81
|
||||
83: 8(int) Load 10(iid)
|
||||
84: 8(int) IAdd 83 62
|
||||
85: 8(int) Load 10(iid)
|
||||
86: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 85 56 55
|
||||
87: 32(float) Load 86
|
||||
88: 52(ptr) AccessChain 41(gl_MeshVerticesEXT) 84 56 55
|
||||
Store 88 87
|
||||
MemoryBarrier 62 63
|
||||
ControlBarrier 64 64 63
|
||||
94: 8(int) Load 10(iid)
|
||||
97: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 94 44
|
||||
Store 97 95
|
||||
98: 8(int) Load 10(iid)
|
||||
100: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 98 50
|
||||
Store 100 99
|
||||
101: 8(int) Load 10(iid)
|
||||
103: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 101 55
|
||||
Store 103 102
|
||||
104: 8(int) Load 10(iid)
|
||||
107: 106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 104 56
|
||||
Store 107 105
|
||||
MemoryBarrier 62 63
|
||||
ControlBarrier 64 64 63
|
||||
108: 8(int) Load 10(iid)
|
||||
109: 8(int) IAdd 108 62
|
||||
110: 8(int) Load 10(iid)
|
||||
111: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 110 44
|
||||
112: 43(int) Load 111
|
||||
113: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 109 44
|
||||
Store 113 112
|
||||
114: 8(int) Load 10(iid)
|
||||
115: 8(int) IAdd 114 62
|
||||
116: 8(int) Load 10(iid)
|
||||
117: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 116 50
|
||||
118: 43(int) Load 117
|
||||
119: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 115 50
|
||||
Store 119 118
|
||||
120: 8(int) Load 10(iid)
|
||||
121: 8(int) IAdd 120 62
|
||||
122: 8(int) Load 10(iid)
|
||||
123: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 122 55
|
||||
124: 43(int) Load 123
|
||||
125: 96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 121 55
|
||||
Store 125 124
|
||||
126: 8(int) Load 10(iid)
|
||||
127: 8(int) IAdd 126 62
|
||||
128: 8(int) Load 10(iid)
|
||||
129: 106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 128 56
|
||||
130: 89(bool) Load 129
|
||||
131: 106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 127 56
|
||||
Store 131 130
|
||||
MemoryBarrier 62 63
|
||||
ControlBarrier 64 64 63
|
||||
139: 138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 44
|
||||
Store 139 137
|
||||
140: 8(int) Load 28(primitiveCount)
|
||||
141: 8(int) ISub 140 62
|
||||
143: 138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 141
|
||||
Store 143 142
|
||||
144: 8(int) Load 18(gid)
|
||||
145: 8(int) Load 18(gid)
|
||||
146: 8(int) ISub 145 62
|
||||
147: 138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 146
|
||||
148: 11(ivec3) Load 147
|
||||
149: 138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 144
|
||||
Store 149 148
|
||||
MemoryBarrier 62 63
|
||||
ControlBarrier 64 64 63
|
||||
Return
|
||||
FunctionEnd
|
||||
6(testAdditionalBuiltins(): 2 Function None 3
|
||||
7: Label
|
||||
151(id): 150(ptr) Variable Function
|
||||
155(viewIdx): 150(ptr) Variable Function
|
||||
154: 43(int) Load 153(gl_DrawIDARB)
|
||||
Store 151(id) 154
|
||||
157: 43(int) Load 156(gl_ViewIndex)
|
||||
Store 155(viewIdx) 157
|
||||
Return
|
||||
FunctionEnd
|
||||
216
Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
Normal file
216
Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
Normal file
@@ -0,0 +1,216 @@
|
||||
spv.ext.meshShaderRedeclBuiltins.mesh
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 128
|
||||
|
||||
Capability ClipDistance
|
||||
Capability CullDistance
|
||||
Capability FragmentShadingRateKHR
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
Extension "SPV_KHR_fragment_shading_rate"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint MeshEXT 4 "main" 11 17 29 81 122
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
ExecutionMode 4 OutputVertices 81
|
||||
ExecutionMode 4 OutputPrimitivesNV 32
|
||||
ExecutionMode 4 OutputPoints
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
Name 4 "main"
|
||||
Name 8 "iid"
|
||||
Name 11 "gl_LocalInvocationID"
|
||||
Name 16 "gid"
|
||||
Name 17 "gl_WorkGroupID"
|
||||
Name 26 "gl_MeshPerVertexEXT"
|
||||
MemberName 26(gl_MeshPerVertexEXT) 0 "gl_Position"
|
||||
MemberName 26(gl_MeshPerVertexEXT) 1 "gl_PointSize"
|
||||
MemberName 26(gl_MeshPerVertexEXT) 2 "gl_ClipDistance"
|
||||
MemberName 26(gl_MeshPerVertexEXT) 3 "gl_CullDistance"
|
||||
Name 29 "gl_MeshVerticesEXT"
|
||||
Name 78 "gl_MeshPerPrimitiveEXT"
|
||||
MemberName 78(gl_MeshPerPrimitiveEXT) 0 "gl_PrimitiveID"
|
||||
MemberName 78(gl_MeshPerPrimitiveEXT) 1 "gl_Layer"
|
||||
MemberName 78(gl_MeshPerPrimitiveEXT) 2 "gl_ViewportIndex"
|
||||
MemberName 78(gl_MeshPerPrimitiveEXT) 3 "gl_CullPrimitiveEXT"
|
||||
MemberName 78(gl_MeshPerPrimitiveEXT) 4 "gl_PrimitiveShadingRateEXT"
|
||||
Name 81 "gl_MeshPrimitivesEXT"
|
||||
Name 122 "gl_PrimitivePointIndicesEXT"
|
||||
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||
MemberDecorate 26(gl_MeshPerVertexEXT) 0 BuiltIn Position
|
||||
MemberDecorate 26(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
|
||||
MemberDecorate 26(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 26(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
|
||||
Decorate 26(gl_MeshPerVertexEXT) Block
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
|
||||
MemberDecorate 78(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
|
||||
Decorate 78(gl_MeshPerPrimitiveEXT) Block
|
||||
Decorate 122(gl_PrimitivePointIndicesEXT) BuiltIn PrimitivePointIndicesEXT
|
||||
Decorate 127 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypeVector 6(int) 3
|
||||
10: TypePointer Input 9(ivec3)
|
||||
11(gl_LocalInvocationID): 10(ptr) Variable Input
|
||||
12: 6(int) Constant 0
|
||||
13: TypePointer Input 6(int)
|
||||
17(gl_WorkGroupID): 10(ptr) Variable Input
|
||||
20: 6(int) Constant 81
|
||||
21: 6(int) Constant 32
|
||||
22: TypeFloat 32
|
||||
23: TypeVector 22(float) 4
|
||||
24: 6(int) Constant 4
|
||||
25: TypeArray 22(float) 24
|
||||
26(gl_MeshPerVertexEXT): TypeStruct 23(fvec4) 22(float) 25 25
|
||||
27: TypeArray 26(gl_MeshPerVertexEXT) 20
|
||||
28: TypePointer Output 27
|
||||
29(gl_MeshVerticesEXT): 28(ptr) Variable Output
|
||||
31: TypeInt 32 1
|
||||
32: 31(int) Constant 0
|
||||
33: 22(float) Constant 1065353216
|
||||
34: 23(fvec4) ConstantComposite 33 33 33 33
|
||||
35: TypePointer Output 23(fvec4)
|
||||
38: 31(int) Constant 1
|
||||
39: 22(float) Constant 1073741824
|
||||
40: TypePointer Output 22(float)
|
||||
43: 31(int) Constant 2
|
||||
44: 31(int) Constant 3
|
||||
45: 22(float) Constant 1077936128
|
||||
48: 22(float) Constant 1082130432
|
||||
50: 6(int) Constant 1
|
||||
51: 6(int) Constant 264
|
||||
52: 6(int) Constant 2
|
||||
77: TypeBool
|
||||
78(gl_MeshPerPrimitiveEXT): TypeStruct 31(int) 31(int) 31(int) 77(bool) 31(int)
|
||||
79: TypeArray 78(gl_MeshPerPrimitiveEXT) 21
|
||||
80: TypePointer Output 79
|
||||
81(gl_MeshPrimitivesEXT): 80(ptr) Variable Output
|
||||
83: 31(int) Constant 6
|
||||
84: TypePointer Output 31(int)
|
||||
87: 31(int) Constant 7
|
||||
90: 31(int) Constant 8
|
||||
93: 77(bool) ConstantFalse
|
||||
94: TypePointer Output 77(bool)
|
||||
120: TypeArray 6(int) 21
|
||||
121: TypePointer Output 120
|
||||
122(gl_PrimitivePointIndicesEXT): 121(ptr) Variable Output
|
||||
123: TypePointer Output 6(int)
|
||||
125: 31(int) Constant 31
|
||||
127: 9(ivec3) ConstantComposite 21 50 50
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(iid): 7(ptr) Variable Function
|
||||
16(gid): 7(ptr) Variable Function
|
||||
14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
|
||||
15: 6(int) Load 14
|
||||
Store 8(iid) 15
|
||||
18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12
|
||||
19: 6(int) Load 18
|
||||
Store 16(gid) 19
|
||||
SetMeshOutputsEXT 20 21
|
||||
30: 6(int) Load 8(iid)
|
||||
36: 35(ptr) AccessChain 29(gl_MeshVerticesEXT) 30 32
|
||||
Store 36 34
|
||||
37: 6(int) Load 8(iid)
|
||||
41: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 37 38
|
||||
Store 41 39
|
||||
42: 6(int) Load 8(iid)
|
||||
46: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 42 43 44
|
||||
Store 46 45
|
||||
47: 6(int) Load 8(iid)
|
||||
49: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 47 44 43
|
||||
Store 49 48
|
||||
MemoryBarrier 50 51
|
||||
ControlBarrier 52 52 51
|
||||
53: 6(int) Load 8(iid)
|
||||
54: 6(int) IAdd 53 50
|
||||
55: 6(int) Load 8(iid)
|
||||
56: 35(ptr) AccessChain 29(gl_MeshVerticesEXT) 55 32
|
||||
57: 23(fvec4) Load 56
|
||||
58: 35(ptr) AccessChain 29(gl_MeshVerticesEXT) 54 32
|
||||
Store 58 57
|
||||
59: 6(int) Load 8(iid)
|
||||
60: 6(int) IAdd 59 50
|
||||
61: 6(int) Load 8(iid)
|
||||
62: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 61 38
|
||||
63: 22(float) Load 62
|
||||
64: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 60 38
|
||||
Store 64 63
|
||||
65: 6(int) Load 8(iid)
|
||||
66: 6(int) IAdd 65 50
|
||||
67: 6(int) Load 8(iid)
|
||||
68: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 67 43 44
|
||||
69: 22(float) Load 68
|
||||
70: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 66 43 44
|
||||
Store 70 69
|
||||
71: 6(int) Load 8(iid)
|
||||
72: 6(int) IAdd 71 50
|
||||
73: 6(int) Load 8(iid)
|
||||
74: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 73 44 43
|
||||
75: 22(float) Load 74
|
||||
76: 40(ptr) AccessChain 29(gl_MeshVerticesEXT) 72 44 43
|
||||
Store 76 75
|
||||
MemoryBarrier 50 51
|
||||
ControlBarrier 52 52 51
|
||||
82: 6(int) Load 8(iid)
|
||||
85: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 82 32
|
||||
Store 85 83
|
||||
86: 6(int) Load 8(iid)
|
||||
88: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 86 38
|
||||
Store 88 87
|
||||
89: 6(int) Load 8(iid)
|
||||
91: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 89 43
|
||||
Store 91 90
|
||||
92: 6(int) Load 8(iid)
|
||||
95: 94(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 92 44
|
||||
Store 95 93
|
||||
MemoryBarrier 50 51
|
||||
ControlBarrier 52 52 51
|
||||
96: 6(int) Load 8(iid)
|
||||
97: 6(int) IAdd 96 50
|
||||
98: 6(int) Load 8(iid)
|
||||
99: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 98 32
|
||||
100: 31(int) Load 99
|
||||
101: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 97 32
|
||||
Store 101 100
|
||||
102: 6(int) Load 8(iid)
|
||||
103: 6(int) IAdd 102 50
|
||||
104: 6(int) Load 8(iid)
|
||||
105: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 104 38
|
||||
106: 31(int) Load 105
|
||||
107: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 103 38
|
||||
Store 107 106
|
||||
108: 6(int) Load 8(iid)
|
||||
109: 6(int) IAdd 108 50
|
||||
110: 6(int) Load 8(iid)
|
||||
111: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 110 43
|
||||
112: 31(int) Load 111
|
||||
113: 84(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 109 43
|
||||
Store 113 112
|
||||
114: 6(int) Load 8(iid)
|
||||
115: 6(int) IAdd 114 50
|
||||
116: 6(int) Load 8(iid)
|
||||
117: 94(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 116 44
|
||||
118: 77(bool) Load 117
|
||||
119: 94(ptr) AccessChain 81(gl_MeshPrimitivesEXT) 115 44
|
||||
Store 119 118
|
||||
MemoryBarrier 50 51
|
||||
ControlBarrier 52 52 51
|
||||
124: 123(ptr) AccessChain 122(gl_PrimitivePointIndicesEXT) 32
|
||||
Store 124 50
|
||||
126: 123(ptr) AccessChain 122(gl_PrimitivePointIndicesEXT) 125
|
||||
Store 126 52
|
||||
Return
|
||||
FunctionEnd
|
||||
102
Test/baseResults/spv.ext.meshShaderTaskMem.mesh.out
Normal file
102
Test/baseResults/spv.ext.meshShaderTaskMem.mesh.out
Normal file
@@ -0,0 +1,102 @@
|
||||
spv.ext.meshShaderTaskMem.mesh
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 58
|
||||
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint MeshEXT 4 "main" 11 22 30 38
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
ExecutionMode 4 OutputVertices 81
|
||||
ExecutionMode 4 OutputPrimitivesNV 32
|
||||
ExecutionMode 4 OutputTrianglesNV
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
Name 4 "main"
|
||||
Name 8 "iid"
|
||||
Name 11 "gl_LocalInvocationID"
|
||||
Name 18 "outBlock"
|
||||
MemberName 18(outBlock) 0 "gid5"
|
||||
MemberName 18(outBlock) 1 "gid6"
|
||||
Name 22 "myblk"
|
||||
Name 28 "taskBlock"
|
||||
MemberName 28(taskBlock) 0 "gid1"
|
||||
MemberName 28(taskBlock) 1 "gid2"
|
||||
Name 30 "mytask"
|
||||
Name 36 "bufferBlock"
|
||||
MemberName 36(bufferBlock) 0 "gid3"
|
||||
MemberName 36(bufferBlock) 1 "gid4"
|
||||
Name 38 "mybuf"
|
||||
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 18(outBlock) Block
|
||||
Decorate 22(myblk) Location 0
|
||||
Decorate 35 ArrayStride 4
|
||||
MemberDecorate 36(bufferBlock) 0 Offset 0
|
||||
MemberDecorate 36(bufferBlock) 1 Offset 16
|
||||
Decorate 36(bufferBlock) Block
|
||||
Decorate 38(mybuf) DescriptorSet 0
|
||||
Decorate 38(mybuf) Binding 0
|
||||
Decorate 57 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypeVector 6(int) 3
|
||||
10: TypePointer Input 9(ivec3)
|
||||
11(gl_LocalInvocationID): 10(ptr) Variable Input
|
||||
12: 6(int) Constant 0
|
||||
13: TypePointer Input 6(int)
|
||||
16: TypeFloat 32
|
||||
17: TypeVector 16(float) 4
|
||||
18(outBlock): TypeStruct 16(float) 17(fvec4)
|
||||
19: 6(int) Constant 81
|
||||
20: TypeArray 18(outBlock) 19
|
||||
21: TypePointer Output 20
|
||||
22(myblk): 21(ptr) Variable Output
|
||||
24: TypeInt 32 1
|
||||
25: 24(int) Constant 0
|
||||
26: 6(int) Constant 2
|
||||
27: TypeArray 16(float) 26
|
||||
28(taskBlock): TypeStruct 27 17(fvec4)
|
||||
29: TypePointer TaskPayloadWorkgroupEXT 28(taskBlock)
|
||||
30(mytask): 29(ptr) Variable TaskPayloadWorkgroupEXT
|
||||
31: 24(int) Constant 1
|
||||
32: TypePointer TaskPayloadWorkgroupEXT 16(float)
|
||||
35: TypeArray 16(float) 26
|
||||
36(bufferBlock): TypeStruct 35 17(fvec4)
|
||||
37: TypePointer StorageBuffer 36(bufferBlock)
|
||||
38(mybuf): 37(ptr) Variable StorageBuffer
|
||||
39: TypePointer StorageBuffer 16(float)
|
||||
43: TypePointer Output 16(float)
|
||||
46: TypePointer TaskPayloadWorkgroupEXT 17(fvec4)
|
||||
49: TypePointer StorageBuffer 17(fvec4)
|
||||
53: TypePointer Output 17(fvec4)
|
||||
55: 6(int) Constant 32
|
||||
56: 6(int) Constant 1
|
||||
57: 9(ivec3) ConstantComposite 55 56 56
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(iid): 7(ptr) Variable Function
|
||||
14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
|
||||
15: 6(int) Load 14
|
||||
Store 8(iid) 15
|
||||
23: 6(int) Load 8(iid)
|
||||
33: 32(ptr) AccessChain 30(mytask) 25 31
|
||||
34: 16(float) Load 33
|
||||
40: 39(ptr) AccessChain 38(mybuf) 25 31
|
||||
41: 16(float) Load 40
|
||||
42: 16(float) FAdd 34 41
|
||||
44: 43(ptr) AccessChain 22(myblk) 23 25
|
||||
Store 44 42
|
||||
45: 6(int) Load 8(iid)
|
||||
47: 46(ptr) AccessChain 30(mytask) 31
|
||||
48: 17(fvec4) Load 47
|
||||
50: 49(ptr) AccessChain 38(mybuf) 31
|
||||
51: 17(fvec4) Load 50
|
||||
52: 17(fvec4) FAdd 48 51
|
||||
54: 53(ptr) AccessChain 22(myblk) 45 31
|
||||
Store 54 52
|
||||
Return
|
||||
FunctionEnd
|
||||
208
Test/baseResults/spv.ext.meshShaderUserDefined.mesh.out
Normal file
208
Test/baseResults/spv.ext.meshShaderUserDefined.mesh.out
Normal file
@@ -0,0 +1,208 @@
|
||||
spv.ext.meshShaderUserDefined.mesh
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 141
|
||||
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint MeshEXT 4 "main" 11 17 34 104
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
ExecutionMode 4 OutputVertices 81
|
||||
ExecutionMode 4 OutputPrimitivesNV 32
|
||||
ExecutionMode 4 OutputTrianglesNV
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
Name 4 "main"
|
||||
Name 8 "iid"
|
||||
Name 11 "gl_LocalInvocationID"
|
||||
Name 16 "gid"
|
||||
Name 17 "gl_WorkGroupID"
|
||||
Name 30 "myblock"
|
||||
MemberName 30(myblock) 0 "f"
|
||||
MemberName 30(myblock) 1 "fArr"
|
||||
MemberName 30(myblock) 2 "pos"
|
||||
MemberName 30(myblock) 3 "posArr"
|
||||
MemberName 30(myblock) 4 "m"
|
||||
MemberName 30(myblock) 5 "mArr"
|
||||
Name 34 "blk"
|
||||
Name 100 "myblock2"
|
||||
MemberName 100(myblock2) 0 "f"
|
||||
MemberName 100(myblock2) 1 "pos"
|
||||
MemberName 100(myblock2) 2 "m"
|
||||
Name 104 "blk2"
|
||||
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||
MemberDecorate 30(myblock) 0 PerPrimitiveNV
|
||||
MemberDecorate 30(myblock) 1 PerPrimitiveNV
|
||||
MemberDecorate 30(myblock) 2 PerPrimitiveNV
|
||||
MemberDecorate 30(myblock) 3 PerPrimitiveNV
|
||||
MemberDecorate 30(myblock) 4 PerPrimitiveNV
|
||||
MemberDecorate 30(myblock) 5 PerPrimitiveNV
|
||||
Decorate 30(myblock) Block
|
||||
Decorate 34(blk) Location 0
|
||||
Decorate 100(myblock2) Block
|
||||
Decorate 104(blk2) Location 20
|
||||
Decorate 140 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypeVector 6(int) 3
|
||||
10: TypePointer Input 9(ivec3)
|
||||
11(gl_LocalInvocationID): 10(ptr) Variable Input
|
||||
12: 6(int) Constant 0
|
||||
13: TypePointer Input 6(int)
|
||||
17(gl_WorkGroupID): 10(ptr) Variable Input
|
||||
20: TypeFloat 32
|
||||
21: 6(int) Constant 4
|
||||
22: TypeArray 20(float) 21
|
||||
23: TypeVector 20(float) 3
|
||||
24: TypeVector 20(float) 4
|
||||
25: TypeArray 24(fvec4) 21
|
||||
26: TypeMatrix 24(fvec4) 4
|
||||
27: TypeMatrix 23(fvec3) 3
|
||||
28: 6(int) Constant 2
|
||||
29: TypeArray 27 28
|
||||
30(myblock): TypeStruct 20(float) 22 23(fvec3) 25 26 29
|
||||
31: 6(int) Constant 32
|
||||
32: TypeArray 30(myblock) 31
|
||||
33: TypePointer Output 32
|
||||
34(blk): 33(ptr) Variable Output
|
||||
36: TypeInt 32 1
|
||||
37: 36(int) Constant 0
|
||||
38: 20(float) Constant 1093664768
|
||||
39: TypePointer Output 20(float)
|
||||
42: 6(int) Constant 1
|
||||
44: 36(int) Constant 1
|
||||
52: 36(int) Constant 2
|
||||
53: 20(float) Constant 1096810496
|
||||
54: 20(float) Constant 1097859072
|
||||
55: 20(float) Constant 1095761920
|
||||
56: 23(fvec3) ConstantComposite 53 54 55
|
||||
57: TypePointer Output 23(fvec3)
|
||||
63: 36(int) Constant 3
|
||||
72: 6(int) Constant 3
|
||||
77: 36(int) Constant 4
|
||||
78: 20(float) Constant 1098907648
|
||||
79: 24(fvec4) ConstantComposite 55 53 54 78
|
||||
80: TypePointer Output 24(fvec4)
|
||||
85: 36(int) Constant 5
|
||||
94: 20(float) Constant 1099431936
|
||||
95: 20(float) Constant 1099956224
|
||||
96: 20(float) Constant 1100480512
|
||||
97: 23(fvec3) ConstantComposite 94 95 96
|
||||
99: 6(int) Constant 264
|
||||
100(myblock2): TypeStruct 20(float) 24(fvec4) 26
|
||||
101: 6(int) Constant 81
|
||||
102: TypeArray 100(myblock2) 101
|
||||
103: TypePointer Output 102
|
||||
104(blk2): 103(ptr) Variable Output
|
||||
110: 20(float) Constant 1101004800
|
||||
114: 20(float) Constant 1101529088
|
||||
115: 20(float) Constant 1102053376
|
||||
116: 20(float) Constant 1102577664
|
||||
117: 20(float) Constant 1103101952
|
||||
118: 24(fvec4) ConstantComposite 114 115 116 117
|
||||
130: 20(float) Constant 1105723392
|
||||
140: 9(ivec3) ConstantComposite 31 42 42
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(iid): 7(ptr) Variable Function
|
||||
16(gid): 7(ptr) Variable Function
|
||||
14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
|
||||
15: 6(int) Load 14
|
||||
Store 8(iid) 15
|
||||
18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12
|
||||
19: 6(int) Load 18
|
||||
Store 16(gid) 19
|
||||
35: 6(int) Load 8(iid)
|
||||
40: 39(ptr) AccessChain 34(blk) 35 37
|
||||
Store 40 38
|
||||
41: 6(int) Load 8(iid)
|
||||
43: 6(int) IAdd 41 42
|
||||
45: 6(int) Load 16(gid)
|
||||
46: 6(int) Load 8(iid)
|
||||
47: 39(ptr) AccessChain 34(blk) 46 37
|
||||
48: 20(float) Load 47
|
||||
49: 39(ptr) AccessChain 34(blk) 43 44 45
|
||||
Store 49 48
|
||||
50: 6(int) Load 8(iid)
|
||||
51: 6(int) UDiv 50 28
|
||||
58: 57(ptr) AccessChain 34(blk) 51 52
|
||||
59: 23(fvec3) Load 58
|
||||
60: 23(fvec3) VectorShuffle 59 56 5 3 4
|
||||
Store 58 60
|
||||
61: 6(int) Load 8(iid)
|
||||
62: 6(int) IMul 61 28
|
||||
64: 6(int) Load 8(iid)
|
||||
65: 6(int) UDiv 64 28
|
||||
66: 57(ptr) AccessChain 34(blk) 65 52
|
||||
67: 23(fvec3) Load 66
|
||||
68: 39(ptr) AccessChain 34(blk) 62 63 44 42
|
||||
69: 20(float) CompositeExtract 67 0
|
||||
Store 68 69
|
||||
70: 39(ptr) AccessChain 34(blk) 62 63 44 28
|
||||
71: 20(float) CompositeExtract 67 1
|
||||
Store 70 71
|
||||
73: 39(ptr) AccessChain 34(blk) 62 63 44 72
|
||||
74: 20(float) CompositeExtract 67 2
|
||||
Store 73 74
|
||||
75: 6(int) Load 8(iid)
|
||||
76: 6(int) UDiv 75 21
|
||||
81: 80(ptr) AccessChain 34(blk) 76 77 52
|
||||
82: 24(fvec4) Load 81
|
||||
83: 24(fvec4) VectorShuffle 82 79 7 6 5 4
|
||||
Store 81 83
|
||||
84: 6(int) Load 8(iid)
|
||||
86: 6(int) Load 8(iid)
|
||||
87: 6(int) UDiv 86 21
|
||||
88: 39(ptr) AccessChain 34(blk) 87 77 52 72
|
||||
89: 20(float) Load 88
|
||||
90: 39(ptr) AccessChain 34(blk) 84 85 37 44 42
|
||||
Store 90 89
|
||||
91: 6(int) Load 8(iid)
|
||||
92: 6(int) IMul 91 21
|
||||
93: 6(int) Load 16(gid)
|
||||
98: 57(ptr) AccessChain 34(blk) 92 85 44 93
|
||||
Store 98 97
|
||||
MemoryBarrier 42 99
|
||||
ControlBarrier 28 28 99
|
||||
105: 6(int) Load 8(iid)
|
||||
106: 6(int) Load 8(iid)
|
||||
107: 6(int) ISub 106 42
|
||||
108: 39(ptr) AccessChain 104(blk2) 107 37
|
||||
109: 20(float) Load 108
|
||||
111: 20(float) FAdd 109 110
|
||||
112: 39(ptr) AccessChain 104(blk2) 105 37
|
||||
Store 112 111
|
||||
113: 6(int) Load 8(iid)
|
||||
119: 80(ptr) AccessChain 104(blk2) 113 44
|
||||
Store 119 118
|
||||
120: 6(int) Load 8(iid)
|
||||
121: 6(int) IAdd 120 42
|
||||
122: 6(int) Load 16(gid)
|
||||
123: 6(int) Load 8(iid)
|
||||
124: 80(ptr) AccessChain 104(blk2) 123 44
|
||||
125: 24(fvec4) Load 124
|
||||
126: 80(ptr) AccessChain 104(blk2) 121 52 122
|
||||
Store 126 125
|
||||
127: 6(int) Load 8(iid)
|
||||
128: 6(int) IAdd 127 42
|
||||
129: 6(int) Load 16(gid)
|
||||
131: 39(ptr) AccessChain 104(blk2) 128 52 129 28
|
||||
Store 131 130
|
||||
132: 6(int) Load 8(iid)
|
||||
133: 6(int) IAdd 132 28
|
||||
134: 6(int) Load 8(iid)
|
||||
135: 6(int) IAdd 134 42
|
||||
136: 6(int) Load 16(gid)
|
||||
137: 80(ptr) AccessChain 104(blk2) 135 52 136
|
||||
138: 24(fvec4) Load 137
|
||||
139: 80(ptr) AccessChain 104(blk2) 133 52 63
|
||||
Store 139 138
|
||||
MemoryBarrier 42 99
|
||||
ControlBarrier 28 28 99
|
||||
Return
|
||||
FunctionEnd
|
||||
163
Test/baseResults/spv.ext.meshTaskShader.task.out
Normal file
163
Test/baseResults/spv.ext.meshTaskShader.task.out
Normal file
@@ -0,0 +1,163 @@
|
||||
spv.ext.meshTaskShader.task
|
||||
// Module Version 10400
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 102
|
||||
|
||||
Capability StorageImageWriteWithoutFormat
|
||||
Capability MeshShadingEXT
|
||||
Extension "SPV_EXT_mesh_shader"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TaskEXT 4 "main" 11 17 34 39 55 80
|
||||
ExecutionMode 4 LocalSize 32 1 1
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_mesh_shader"
|
||||
Name 4 "main"
|
||||
Name 8 "iid"
|
||||
Name 11 "gl_LocalInvocationID"
|
||||
Name 16 "gid"
|
||||
Name 17 "gl_WorkGroupID"
|
||||
Name 20 "i"
|
||||
Name 34 "mem"
|
||||
Name 37 "block0"
|
||||
MemberName 37(block0) 0 "uni_value"
|
||||
Name 39 ""
|
||||
Name 55 "uni_image"
|
||||
Name 78 "Task"
|
||||
MemberName 78(Task) 0 "dummy"
|
||||
MemberName 78(Task) 1 "submesh"
|
||||
Name 80 "mytask"
|
||||
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||
MemberDecorate 37(block0) 0 Offset 0
|
||||
Decorate 37(block0) Block
|
||||
Decorate 39 DescriptorSet 0
|
||||
Decorate 39 Binding 1
|
||||
Decorate 55(uni_image) DescriptorSet 0
|
||||
Decorate 55(uni_image) Binding 0
|
||||
Decorate 55(uni_image) NonReadable
|
||||
Decorate 101 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypeVector 6(int) 3
|
||||
10: TypePointer Input 9(ivec3)
|
||||
11(gl_LocalInvocationID): 10(ptr) Variable Input
|
||||
12: 6(int) Constant 0
|
||||
13: TypePointer Input 6(int)
|
||||
17(gl_WorkGroupID): 10(ptr) Variable Input
|
||||
27: 6(int) Constant 10
|
||||
28: TypeBool
|
||||
30: TypeFloat 32
|
||||
31: TypeVector 30(float) 4
|
||||
32: TypeArray 31(fvec4) 27
|
||||
33: TypePointer Workgroup 32
|
||||
34(mem): 33(ptr) Variable Workgroup
|
||||
37(block0): TypeStruct 6(int)
|
||||
38: TypePointer Uniform 37(block0)
|
||||
39: 38(ptr) Variable Uniform
|
||||
40: TypeInt 32 1
|
||||
41: 40(int) Constant 0
|
||||
42: TypePointer Uniform 6(int)
|
||||
48: TypePointer Workgroup 31(fvec4)
|
||||
51: 40(int) Constant 1
|
||||
53: TypeImage 30(float) 2D nonsampled format:Unknown
|
||||
54: TypePointer UniformConstant 53
|
||||
55(uni_image): 54(ptr) Variable UniformConstant
|
||||
59: TypeVector 40(int) 2
|
||||
69: 6(int) Constant 1
|
||||
73: 6(int) Constant 264
|
||||
74: 6(int) Constant 2
|
||||
75: TypeVector 30(float) 2
|
||||
76: 6(int) Constant 3
|
||||
77: TypeArray 75(fvec2) 76
|
||||
78(Task): TypeStruct 75(fvec2) 77
|
||||
79: TypePointer TaskPayloadWorkgroupEXT 78(Task)
|
||||
80(mytask): 79(ptr) Variable TaskPayloadWorkgroupEXT
|
||||
81: 30(float) Constant 1106247680
|
||||
82: 30(float) Constant 1106771968
|
||||
83: 75(fvec2) ConstantComposite 81 82
|
||||
84: TypePointer TaskPayloadWorkgroupEXT 75(fvec2)
|
||||
86: 30(float) Constant 1107296256
|
||||
87: 30(float) Constant 1107558400
|
||||
88: 75(fvec2) ConstantComposite 86 87
|
||||
90: 30(float) Constant 1107820544
|
||||
91: 30(float) Constant 1108082688
|
||||
92: 75(fvec2) ConstantComposite 90 91
|
||||
94: 40(int) Constant 2
|
||||
100: 6(int) Constant 32
|
||||
101: 9(ivec3) ConstantComposite 100 69 69
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(iid): 7(ptr) Variable Function
|
||||
16(gid): 7(ptr) Variable Function
|
||||
20(i): 7(ptr) Variable Function
|
||||
14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
|
||||
15: 6(int) Load 14
|
||||
Store 8(iid) 15
|
||||
18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12
|
||||
19: 6(int) Load 18
|
||||
Store 16(gid) 19
|
||||
Store 20(i) 12
|
||||
Branch 21
|
||||
21: Label
|
||||
LoopMerge 23 24 None
|
||||
Branch 25
|
||||
25: Label
|
||||
26: 6(int) Load 20(i)
|
||||
29: 28(bool) ULessThan 26 27
|
||||
BranchConditional 29 22 23
|
||||
22: Label
|
||||
35: 6(int) Load 20(i)
|
||||
36: 6(int) Load 20(i)
|
||||
43: 42(ptr) AccessChain 39 41
|
||||
44: 6(int) Load 43
|
||||
45: 6(int) IAdd 36 44
|
||||
46: 30(float) ConvertUToF 45
|
||||
47: 31(fvec4) CompositeConstruct 46 46 46 46
|
||||
49: 48(ptr) AccessChain 34(mem) 35
|
||||
Store 49 47
|
||||
Branch 24
|
||||
24: Label
|
||||
50: 6(int) Load 20(i)
|
||||
52: 6(int) IAdd 50 51
|
||||
Store 20(i) 52
|
||||
Branch 21
|
||||
23: Label
|
||||
56: 53 Load 55(uni_image)
|
||||
57: 6(int) Load 8(iid)
|
||||
58: 40(int) Bitcast 57
|
||||
60: 59(ivec2) CompositeConstruct 58 58
|
||||
61: 6(int) Load 16(gid)
|
||||
62: 48(ptr) AccessChain 34(mem) 61
|
||||
63: 31(fvec4) Load 62
|
||||
ImageWrite 56 60 63
|
||||
64: 53 Load 55(uni_image)
|
||||
65: 6(int) Load 8(iid)
|
||||
66: 40(int) Bitcast 65
|
||||
67: 59(ivec2) CompositeConstruct 66 66
|
||||
68: 6(int) Load 16(gid)
|
||||
70: 6(int) IAdd 68 69
|
||||
71: 48(ptr) AccessChain 34(mem) 70
|
||||
72: 31(fvec4) Load 71
|
||||
ImageWrite 64 67 72
|
||||
MemoryBarrier 69 73
|
||||
ControlBarrier 74 74 73
|
||||
85: 84(ptr) AccessChain 80(mytask) 41
|
||||
Store 85 83
|
||||
89: 84(ptr) AccessChain 80(mytask) 51 41
|
||||
Store 89 88
|
||||
93: 84(ptr) AccessChain 80(mytask) 51 51
|
||||
Store 93 92
|
||||
95: 6(int) Load 16(gid)
|
||||
96: 6(int) UMod 95 74
|
||||
97: 84(ptr) AccessChain 80(mytask) 51 96
|
||||
98: 75(fvec2) Load 97
|
||||
99: 84(ptr) AccessChain 80(mytask) 51 94
|
||||
Store 99 98
|
||||
MemoryBarrier 69 73
|
||||
ControlBarrier 74 74 73
|
||||
EmitMeshTasksEXT 76 69 69 80(mytask)
|
||||
Return
|
||||
FunctionEnd
|
||||
@@ -90,6 +90,15 @@ MaxTaskWorkGroupSizeX_NV 32
|
||||
MaxTaskWorkGroupSizeY_NV 1
|
||||
MaxTaskWorkGroupSizeZ_NV 1
|
||||
MaxMeshViewCountNV 4
|
||||
MaxMeshOutputVerticesEXT 256
|
||||
MaxMeshOutputPrimitivesEXT 256
|
||||
MaxMeshWorkGroupSizeX_EXT 128
|
||||
MaxMeshWorkGroupSizeY_EXT 128
|
||||
MaxMeshWorkGroupSizeZ_EXT 128
|
||||
MaxTaskWorkGroupSizeX_EXT 128
|
||||
MaxTaskWorkGroupSizeY_EXT 128
|
||||
MaxTaskWorkGroupSizeZ_EXT 128
|
||||
MaxMeshViewCountEXT 4
|
||||
MaxDualSourceDrawBuffersEXT 1
|
||||
nonInductiveForLoops 1
|
||||
whileLoops 1
|
||||
|
||||
Reference in New Issue
Block a user