 ab027bef3d
			
		
	
	
		ab027bef3d
		
	
	
	
	
		
			
			- This change also allows redeclaration of gl_PrimitiveIndicesNV and adds error checks against incorrect explicit array size. - Also modifies gtests to check array bound limits and redeclare gl_PrimitiveIndicesNV[].
		
			
				
	
	
		
			218 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| spv.meshShaderRedeclBuiltins.mesh
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80007
 | |
| // Id's are bound by 129
 | |
| 
 | |
|                               Capability ClipDistance
 | |
|                               Capability CullDistance
 | |
|                               Capability MultiViewport
 | |
|                               Capability ShaderViewportMaskNV
 | |
|                               Capability MeshShadingNV
 | |
|                               Extension  "SPV_NV_mesh_shader"
 | |
|                               Extension  "SPV_NV_viewport_array2"
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint MeshNV 4  "main" 11 17 28 81 122 127
 | |
|                               ExecutionMode 4 LocalSize 32 1 1
 | |
|                               ExecutionMode 4 OutputVertices 81
 | |
|                               ExecutionMode 4 OutputPrimitivesNV 32
 | |
|                               ExecutionMode 4 OutputTrianglesNV
 | |
|                               Source GLSL 460
 | |
|                               SourceExtension  "GL_NV_mesh_shader"
 | |
|                               Name 4  "main"
 | |
|                               Name 8  "iid"
 | |
|                               Name 11  "gl_LocalInvocationID"
 | |
|                               Name 16  "gid"
 | |
|                               Name 17  "gl_WorkGroupID"
 | |
|                               Name 24  "gl_MeshPerVertexNV"
 | |
|                               MemberName 24(gl_MeshPerVertexNV) 0  "gl_Position"
 | |
|                               MemberName 24(gl_MeshPerVertexNV) 1  "gl_PointSize"
 | |
|                               MemberName 24(gl_MeshPerVertexNV) 2  "gl_ClipDistance"
 | |
|                               MemberName 24(gl_MeshPerVertexNV) 3  "gl_CullDistance"
 | |
|                               Name 28  "gl_MeshVerticesNV"
 | |
|                               Name 77  "gl_MeshPerPrimitiveNV"
 | |
|                               MemberName 77(gl_MeshPerPrimitiveNV) 0  "gl_PrimitiveID"
 | |
|                               MemberName 77(gl_MeshPerPrimitiveNV) 1  "gl_Layer"
 | |
|                               MemberName 77(gl_MeshPerPrimitiveNV) 2  "gl_ViewportIndex"
 | |
|                               MemberName 77(gl_MeshPerPrimitiveNV) 3  "gl_ViewportMask"
 | |
|                               Name 81  "gl_MeshPrimitivesNV"
 | |
|                               Name 122  "gl_PrimitiveIndicesNV"
 | |
|                               Name 127  "gl_PrimitiveCountNV"
 | |
|                               Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
 | |
|                               Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
 | |
|                               MemberDecorate 24(gl_MeshPerVertexNV) 0 BuiltIn Position
 | |
|                               MemberDecorate 24(gl_MeshPerVertexNV) 1 BuiltIn PointSize
 | |
|                               MemberDecorate 24(gl_MeshPerVertexNV) 2 BuiltIn ClipDistance
 | |
|                               MemberDecorate 24(gl_MeshPerVertexNV) 3 BuiltIn CullDistance
 | |
|                               Decorate 24(gl_MeshPerVertexNV) Block
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 0 PerPrimitiveNV
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 0 BuiltIn PrimitiveId
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 1 PerPrimitiveNV
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 1 BuiltIn Layer
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 2 PerPrimitiveNV
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 2 BuiltIn ViewportIndex
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 3 PerPrimitiveNV
 | |
|                               MemberDecorate 77(gl_MeshPerPrimitiveNV) 3 BuiltIn ViewportMaskNV
 | |
|                               Decorate 77(gl_MeshPerPrimitiveNV) Block
 | |
|                               Decorate 122(gl_PrimitiveIndicesNV) BuiltIn PrimitiveIndicesNV
 | |
|                               Decorate 127(gl_PrimitiveCountNV) BuiltIn PrimitiveCountNV
 | |
|                               Decorate 128 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:             TypeVector 20(float) 4
 | |
|               22:      6(int) Constant 4
 | |
|               23:             TypeArray 20(float) 22
 | |
| 24(gl_MeshPerVertexNV):             TypeStruct 21(fvec4) 20(float) 23 23
 | |
|               25:      6(int) Constant 81
 | |
|               26:             TypeArray 24(gl_MeshPerVertexNV) 25
 | |
|               27:             TypePointer Output 26
 | |
| 28(gl_MeshVerticesNV):     27(ptr) Variable Output
 | |
|               30:             TypeInt 32 1
 | |
|               31:     30(int) Constant 0
 | |
|               32:   20(float) Constant 1065353216
 | |
|               33:   21(fvec4) ConstantComposite 32 32 32 32
 | |
|               34:             TypePointer Output 21(fvec4)
 | |
|               37:     30(int) Constant 1
 | |
|               38:   20(float) Constant 1073741824
 | |
|               39:             TypePointer Output 20(float)
 | |
|               42:     30(int) Constant 2
 | |
|               43:     30(int) Constant 3
 | |
|               44:   20(float) Constant 1077936128
 | |
|               47:   20(float) Constant 1082130432
 | |
|               49:      6(int) Constant 1
 | |
|               50:      6(int) Constant 264
 | |
|               51:      6(int) Constant 2
 | |
|               76:             TypeArray 30(int) 49
 | |
| 77(gl_MeshPerPrimitiveNV):             TypeStruct 30(int) 30(int) 30(int) 76
 | |
|               78:      6(int) Constant 32
 | |
|               79:             TypeArray 77(gl_MeshPerPrimitiveNV) 78
 | |
|               80:             TypePointer Output 79
 | |
| 81(gl_MeshPrimitivesNV):     80(ptr) Variable Output
 | |
|               83:     30(int) Constant 6
 | |
|               84:             TypePointer Output 30(int)
 | |
|               87:     30(int) Constant 7
 | |
|               90:     30(int) Constant 8
 | |
|               93:     30(int) Constant 9
 | |
|              119:      6(int) Constant 96
 | |
|              120:             TypeArray 6(int) 119
 | |
|              121:             TypePointer Output 120
 | |
| 122(gl_PrimitiveIndicesNV):    121(ptr) Variable Output
 | |
|              123:             TypePointer Output 6(int)
 | |
|              125:     30(int) Constant 95
 | |
| 127(gl_PrimitiveCountNV):    123(ptr) Variable Output
 | |
|              128:    9(ivec3) ConstantComposite 78 49 49
 | |
|          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
 | |
|               29:      6(int) Load 8(iid)
 | |
|               35:     34(ptr) AccessChain 28(gl_MeshVerticesNV) 29 31
 | |
|                               Store 35 33
 | |
|               36:      6(int) Load 8(iid)
 | |
|               40:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 36 37
 | |
|                               Store 40 38
 | |
|               41:      6(int) Load 8(iid)
 | |
|               45:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 41 42 43
 | |
|                               Store 45 44
 | |
|               46:      6(int) Load 8(iid)
 | |
|               48:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 46 43 42
 | |
|                               Store 48 47
 | |
|                               MemoryBarrier 49 50
 | |
|                               ControlBarrier 51 51 50
 | |
|               52:      6(int) Load 8(iid)
 | |
|               53:      6(int) IAdd 52 49
 | |
|               54:      6(int) Load 8(iid)
 | |
|               55:     34(ptr) AccessChain 28(gl_MeshVerticesNV) 54 31
 | |
|               56:   21(fvec4) Load 55
 | |
|               57:     34(ptr) AccessChain 28(gl_MeshVerticesNV) 53 31
 | |
|                               Store 57 56
 | |
|               58:      6(int) Load 8(iid)
 | |
|               59:      6(int) IAdd 58 49
 | |
|               60:      6(int) Load 8(iid)
 | |
|               61:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 60 37
 | |
|               62:   20(float) Load 61
 | |
|               63:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 59 37
 | |
|                               Store 63 62
 | |
|               64:      6(int) Load 8(iid)
 | |
|               65:      6(int) IAdd 64 49
 | |
|               66:      6(int) Load 8(iid)
 | |
|               67:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 66 42 43
 | |
|               68:   20(float) Load 67
 | |
|               69:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 65 42 43
 | |
|                               Store 69 68
 | |
|               70:      6(int) Load 8(iid)
 | |
|               71:      6(int) IAdd 70 49
 | |
|               72:      6(int) Load 8(iid)
 | |
|               73:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 72 43 42
 | |
|               74:   20(float) Load 73
 | |
|               75:     39(ptr) AccessChain 28(gl_MeshVerticesNV) 71 43 42
 | |
|                               Store 75 74
 | |
|                               MemoryBarrier 49 50
 | |
|                               ControlBarrier 51 51 50
 | |
|               82:      6(int) Load 8(iid)
 | |
|               85:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 82 31
 | |
|                               Store 85 83
 | |
|               86:      6(int) Load 8(iid)
 | |
|               88:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 86 37
 | |
|                               Store 88 87
 | |
|               89:      6(int) Load 8(iid)
 | |
|               91:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 89 42
 | |
|                               Store 91 90
 | |
|               92:      6(int) Load 8(iid)
 | |
|               94:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 92 43 31
 | |
|                               Store 94 93
 | |
|                               MemoryBarrier 49 50
 | |
|                               ControlBarrier 51 51 50
 | |
|               95:      6(int) Load 8(iid)
 | |
|               96:      6(int) IAdd 95 49
 | |
|               97:      6(int) Load 8(iid)
 | |
|               98:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 97 31
 | |
|               99:     30(int) Load 98
 | |
|              100:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 96 31
 | |
|                               Store 100 99
 | |
|              101:      6(int) Load 8(iid)
 | |
|              102:      6(int) IAdd 101 49
 | |
|              103:      6(int) Load 8(iid)
 | |
|              104:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 103 37
 | |
|              105:     30(int) Load 104
 | |
|              106:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 102 37
 | |
|                               Store 106 105
 | |
|              107:      6(int) Load 8(iid)
 | |
|              108:      6(int) IAdd 107 49
 | |
|              109:      6(int) Load 8(iid)
 | |
|              110:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 109 42
 | |
|              111:     30(int) Load 110
 | |
|              112:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 108 42
 | |
|                               Store 112 111
 | |
|              113:      6(int) Load 8(iid)
 | |
|              114:      6(int) IAdd 113 49
 | |
|              115:      6(int) Load 8(iid)
 | |
|              116:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 115 43 31
 | |
|              117:     30(int) Load 116
 | |
|              118:     84(ptr) AccessChain 81(gl_MeshPrimitivesNV) 114 43 31
 | |
|                               Store 118 117
 | |
|                               MemoryBarrier 49 50
 | |
|                               ControlBarrier 51 51 50
 | |
|              124:    123(ptr) AccessChain 122(gl_PrimitiveIndicesNV) 31
 | |
|                               Store 124 49
 | |
|              126:    123(ptr) AccessChain 122(gl_PrimitiveIndicesNV) 125
 | |
|                               Store 126 51
 | |
|                               Store 127(gl_PrimitiveCountNV) 119
 | |
|                               Return
 | |
|                               FunctionEnd
 |