Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
3ae0f583
Commit
3ae0f583
authored
Sep 26, 2018
by
Sahil Parmar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
changes based on feedback
parent
95e2d4ec
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
453 additions
and
188 deletions
+453
-188
spv.320.meshShaderUserDefined.mesh.out
Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
+205
-0
spv.meshShaderUserDefined.mesh.out
Test/baseResults/spv.meshShaderUserDefined.mesh.out
+179
-181
spv.320.meshShaderUserDefined.mesh
Test/spv.320.meshShaderUserDefined.mesh
+59
-0
spv.meshShaderUserDefined.mesh
Test/spv.meshShaderUserDefined.mesh
+3
-3
ParseHelper.cpp
glslang/MachineIndependent/ParseHelper.cpp
+1
-0
Versions.cpp
glslang/MachineIndependent/Versions.cpp
+4
-2
parseVersions.h
glslang/MachineIndependent/parseVersions.h
+1
-1
Pp.cpp
glslang/MachineIndependent/preprocessor/Pp.cpp
+1
-1
No files found.
Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
0 → 100644
View file @
3ae0f583
spv.meshShaderUserDefined.mesh
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 140
Capability MeshShadingNV
Extension "SPV_NV_mesh_shader"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint MeshNV 4 "main" 12 19 37 103
ExecutionMode 4 LocalSize 32 1 1
ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputPrimitivesNV 32
ExecutionMode 4 OutputTrianglesNV
Source ESSL 320
SourceExtension "GL_NV_mesh_shader"
Name 4 "main"
Name 8 "iid"
Name 12 "gl_LocalInvocationID"
Name 18 "gid"
Name 19 "gl_WorkGroupID"
Name 33 "myblock"
MemberName 33(myblock) 0 "f"
MemberName 33(myblock) 1 "fArr"
MemberName 33(myblock) 2 "pos"
MemberName 33(myblock) 3 "posArr"
MemberName 33(myblock) 4 "m"
MemberName 33(myblock) 5 "mArr"
Name 37 "blk"
Name 99 "myblock2"
MemberName 99(myblock2) 0 "f"
MemberName 99(myblock2) 1 "pos"
MemberName 99(myblock2) 2 "m"
Name 103 "blk2"
Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 33(myblock) 0 PerPrimitiveNV
MemberDecorate 33(myblock) 1 PerPrimitiveNV
MemberDecorate 33(myblock) 2 PerPrimitiveNV
MemberDecorate 33(myblock) 3 PerPrimitiveNV
MemberDecorate 33(myblock) 4 PerPrimitiveNV
MemberDecorate 33(myblock) 5 PerPrimitiveNV
Decorate 33(myblock) Block
Decorate 37(blk) Location 0
Decorate 99(myblock2) Block
Decorate 103(blk2) Location 20
Decorate 139 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: TypeInt 32 0
10: TypeVector 9(int) 3
11: TypePointer Input 10(ivec3)
12(gl_LocalInvocationID): 11(ptr) Variable Input
13: 9(int) Constant 0
14: TypePointer Input 9(int)
19(gl_WorkGroupID): 11(ptr) Variable Input
23: TypeFloat 32
24: 9(int) Constant 4
25: TypeArray 23(float) 24
26: TypeVector 23(float) 3
27: TypeVector 23(float) 4
28: TypeArray 27(fvec4) 24
29: TypeMatrix 27(fvec4) 4
30: TypeMatrix 26(fvec3) 3
31: 9(int) Constant 2
32: TypeArray 30 31
33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29 32
34: 9(int) Constant 32
35: TypeArray 33(myblock) 34
36: TypePointer Output 35
37(blk): 36(ptr) Variable Output
39: 6(int) Constant 0
40: 23(float) Constant 1093664768
41: TypePointer Output 23(float)
44: 6(int) Constant 1
52: 6(int) Constant 2
54: 23(float) Constant 1096810496
55: 23(float) Constant 1097859072
56: 23(float) Constant 1095761920
57: 26(fvec3) ConstantComposite 54 55 56
58: TypePointer Output 26(fvec3)
64: 6(int) Constant 3
69: TypePointer Output 27(fvec4)
74: 6(int) Constant 4
76: 23(float) Constant 1098907648
77: 27(fvec4) ConstantComposite 56 54 55 76
82: 6(int) Constant 5
85: 9(int) Constant 3
88: 9(int) Constant 1
93: 23(float) Constant 1099431936
94: 23(float) Constant 1099956224
95: 23(float) Constant 1100480512
96: 26(fvec3) ConstantComposite 93 94 95
98: 9(int) Constant 264
99(myblock2): TypeStruct 23(float) 27(fvec4) 29
100: 9(int) Constant 81
101: TypeArray 99(myblock2) 100
102: TypePointer Output 101
103(blk2): 102(ptr) Variable Output
109: 23(float) Constant 1101004800
113: 23(float) Constant 1101529088
114: 23(float) Constant 1102053376
115: 23(float) Constant 1102577664
116: 23(float) Constant 1103101952
117: 27(fvec4) ConstantComposite 113 114 115 116
129: 23(float) Constant 1105723392
139: 10(ivec3) ConstantComposite 34 88 88
4(main): 2 Function None 3
5: Label
8(iid): 7(ptr) Variable Function
18(gid): 7(ptr) Variable Function
15: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13
16: 9(int) Load 15
17: 6(int) Bitcast 16
Store 8(iid) 17
20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13
21: 9(int) Load 20
22: 6(int) Bitcast 21
Store 18(gid) 22
38: 6(int) Load 8(iid)
42: 41(ptr) AccessChain 37(blk) 38 39
Store 42 40
43: 6(int) Load 8(iid)
45: 6(int) IAdd 43 44
46: 6(int) Load 18(gid)
47: 6(int) Load 8(iid)
48: 41(ptr) AccessChain 37(blk) 47 39
49: 23(float) Load 48
50: 41(ptr) AccessChain 37(blk) 45 44 46
Store 50 49
51: 6(int) Load 8(iid)
53: 6(int) SDiv 51 52
59: 58(ptr) AccessChain 37(blk) 53 52
60: 26(fvec3) Load 59
61: 26(fvec3) VectorShuffle 60 57 5 3 4
Store 59 61
62: 6(int) Load 8(iid)
63: 6(int) IMul 62 52
65: 6(int) Load 8(iid)
66: 6(int) SDiv 65 52
67: 58(ptr) AccessChain 37(blk) 66 52
68: 26(fvec3) Load 67
70: 69(ptr) AccessChain 37(blk) 63 64 44
71: 27(fvec4) Load 70
72: 27(fvec4) VectorShuffle 71 68 0 4 5 6
Store 70 72
73: 6(int) Load 8(iid)
75: 6(int) SDiv 73 74
78: 69(ptr) AccessChain 37(blk) 75 74 52
79: 27(fvec4) Load 78
80: 27(fvec4) VectorShuffle 79 77 7 6 5 4
Store 78 80
81: 6(int) Load 8(iid)
83: 6(int) Load 8(iid)
84: 6(int) SDiv 83 74
86: 41(ptr) AccessChain 37(blk) 84 74 52 85
87: 23(float) Load 86
89: 41(ptr) AccessChain 37(blk) 81 82 39 44 88
Store 89 87
90: 6(int) Load 8(iid)
91: 6(int) IMul 90 74
92: 6(int) Load 18(gid)
97: 58(ptr) AccessChain 37(blk) 91 82 44 92
Store 97 96
MemoryBarrier 88 98
ControlBarrier 31 31 98
104: 6(int) Load 8(iid)
105: 6(int) Load 8(iid)
106: 6(int) ISub 105 44
107: 41(ptr) AccessChain 103(blk2) 106 39
108: 23(float) Load 107
110: 23(float) FAdd 108 109
111: 41(ptr) AccessChain 103(blk2) 104 39
Store 111 110
112: 6(int) Load 8(iid)
118: 69(ptr) AccessChain 103(blk2) 112 44
Store 118 117
119: 6(int) Load 8(iid)
120: 6(int) IAdd 119 44
121: 6(int) Load 18(gid)
122: 6(int) Load 8(iid)
123: 69(ptr) AccessChain 103(blk2) 122 44
124: 27(fvec4) Load 123
125: 69(ptr) AccessChain 103(blk2) 120 52 121
Store 125 124
126: 6(int) Load 8(iid)
127: 6(int) IAdd 126 44
128: 6(int) Load 18(gid)
130: 41(ptr) AccessChain 103(blk2) 127 52 128 31
Store 130 129
131: 6(int) Load 8(iid)
132: 6(int) IAdd 131 52
133: 6(int) Load 8(iid)
134: 6(int) IAdd 133 44
135: 6(int) Load 18(gid)
136: 69(ptr) AccessChain 103(blk2) 134 52 135
137: 27(fvec4) Load 136
138: 69(ptr) AccessChain 103(blk2) 132 52 64
Store 138 137
MemoryBarrier 88 98
ControlBarrier 31 31 98
Return
FunctionEnd
Test/baseResults/spv.meshShaderUserDefined.mesh.out
View file @
3ae0f583
spv.meshShaderUserDefined.mesh
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 1
40
// Id's are bound by 1
38
Capability MeshShadingNV
Extension "SPV_NV_mesh_shader"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint MeshNV 4 "main" 1
2 19 37 103
EntryPoint MeshNV 4 "main" 1
1 17 34 101
ExecutionMode 4 LocalSize 32 1 1
ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputPrimitivesNV 32
ExecutionMode 4 OutputTrianglesNV
Source
ESSL 32
0
Source
GLSL 45
0
SourceExtension "GL_NV_mesh_shader"
Name 4 "main"
Name 8 "iid"
Name 1
2
"gl_LocalInvocationID"
Name 1
8
"gid"
Name 1
9
"gl_WorkGroupID"
Name 3
3
"myblock"
MemberName 3
3
(myblock) 0 "f"
MemberName 3
3
(myblock) 1 "fArr"
MemberName 3
3
(myblock) 2 "pos"
MemberName 3
3
(myblock) 3 "posArr"
MemberName 3
3
(myblock) 4 "m"
MemberName 3
3
(myblock) 5 "mArr"
Name 3
7
"blk"
Name 9
9
"myblock2"
MemberName 9
9
(myblock2) 0 "f"
MemberName 9
9
(myblock2) 1 "pos"
MemberName 9
9
(myblock2) 2 "m"
Name 10
3
"blk2"
Decorate 1
2
(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 1
9
(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 3
3
(myblock) 0 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 1 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 2 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 3 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 4 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 5 PerPrimitiveNV
Decorate 3
3
(myblock) Block
Decorate 3
7
(blk) Location 0
Decorate 9
9
(myblock2) Block
Decorate 10
3
(blk2) Location 20
Decorate 13
9
BuiltIn WorkgroupSize
Name 1
1
"gl_LocalInvocationID"
Name 1
6
"gid"
Name 1
7
"gl_WorkGroupID"
Name 3
0
"myblock"
MemberName 3
0
(myblock) 0 "f"
MemberName 3
0
(myblock) 1 "fArr"
MemberName 3
0
(myblock) 2 "pos"
MemberName 3
0
(myblock) 3 "posArr"
MemberName 3
0
(myblock) 4 "m"
MemberName 3
0
(myblock) 5 "mArr"
Name 3
4
"blk"
Name 9
7
"myblock2"
MemberName 9
7
(myblock2) 0 "f"
MemberName 9
7
(myblock2) 1 "pos"
MemberName 9
7
(myblock2) 2 "m"
Name 10
1
"blk2"
Decorate 1
1
(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 1
7
(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 3
0
(myblock) 0 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 1 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 2 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 3 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 4 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 5 PerPrimitiveNV
Decorate 3
0
(myblock) Block
Decorate 3
4
(blk) Location 0
Decorate 9
7
(myblock2) Block
Decorate 10
1
(blk2) Location 20
Decorate 13
7
BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32
1
6: TypeInt 32
0
7: TypePointer Function 6(int)
9: Type
Int 32 0
10: Type
Vector 9(int) 3
11: TypePointer Input 10(ivec3)
12(gl_LocalInvocationID): 11(ptr) Variable Input
13:
9(int) Constant 0
14: TypePointer Input 9(int)
19(gl_WorkGroupID): 11(ptr) Variable Input
2
3: TypeFloat 32
2
4: 9(int) Constant 4
2
5: TypeArray 23(float) 24
2
6: TypeVector 23(float) 3
2
7: TypeVector 23(float) 4
2
8: TypeArray 27(fvec4) 2
4
2
9: TypeMatrix 27(fvec4) 4
30: TypeMatrix 26(fvec3) 3
31: 9(int) Constant 2
32: TypeArray 30 31
33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29
32
3
4: 9(int) Constant 32
3
5: TypeArray 33(myblock) 34
36: TypePointer Output 35
37(blk): 36(ptr) Variable Output
3
9:
6(int) Constant 0
40: 23
(float) Constant 1093664768
41: TypePointer Output 23
(float)
4
4
: 6(int) Constant 1
52: 6(int) Constant 2
5
4: 23(float) Constant 1096810496
5
5: 23(float) Constant 1097859072
5
6: 23(float) Constant 1095761920
5
7: 26(fvec3) ConstantComposite 54 55 56
5
8: TypePointer Output 26(fvec3)
64: 6(int) Constant 3
6
9: TypePointer Output 27(fvec4)
74: 6(int) Constant 4
7
6: 23(float) Constant 1098907648
7
7: 27(fvec4) ConstantComposite 56 54 55 76
82: 6(int) Constant
5
8
5: 9(int) Constant 3
8
8: 9(int) Constant 1
9
3: 23
(float) Constant 1099431936
9
4: 23
(float) Constant 1099956224
9
5: 23
(float) Constant 1100480512
9
6: 26(fvec3) ConstantComposite 93 94 95
9
8: 9
(int) Constant 264
9
9(myblock2): TypeStruct 23(float) 27(fvec4) 29
100: 9
(int) Constant 81
101: TypeArray 99(myblock2) 100
10
2: TypePointer Output 101
10
3(blk2): 102
(ptr) Variable Output
10
9: 23
(float) Constant 1101004800
11
3: 23
(float) Constant 1101529088
11
4: 23
(float) Constant 1102053376
11
5: 23
(float) Constant 1102577664
11
6: 23
(float) Constant 1103101952
11
7: 27(fvec4) ConstantComposite 113 114 115 116
12
9: 23
(float) Constant 1105723392
13
9: 10(ivec3) ConstantComposite 34 88 88
9: Type
Vector 6(int) 3
10: Type
Pointer 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
2
1: 6(int) Constant 4
2
2: TypeArray 20(float) 21
2
3: TypeVector 20(float) 3
2
4: TypeVector 20(float) 4
2
5: TypeArray 24(fvec4) 21
2
6: TypeMatrix 24(fvec4)
4
2
7: 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
3
2: TypeArray 30(myblock) 31
3
3: TypePointer Output 32
34(blk): 33(ptr) Variable Output
36: TypeInt 32 1
3
7: 3
6(int) Constant 0
38: 20
(float) Constant 1093664768
39: TypePointer Output 20
(float)
4
2
: 6(int) Constant 1
44: 36(int) Constant 1
5
2: 36(int) Constant 2
5
3: 20(float) Constant 1096810496
5
4: 20(float) Constant 1097859072
5
5: 20(float) Constant 1095761920
5
6: 23(fvec3) ConstantComposite 53 54 55
57: TypePointer Output 23(fvec3)
6
3: 36(int) Constant 3
68: TypePointer Output 24(fvec4)
7
4: 36(int) Constant 4
7
5: 20(float) Constant 1098907648
76: 24(fvec4) ConstantComposite 55 53 54 7
5
8
1: 36(int) Constant 5
8
4: 6(int) Constant 3
9
1: 20
(float) Constant 1099431936
9
2: 20
(float) Constant 1099956224
9
3: 20
(float) Constant 1100480512
9
4: 23(fvec3) ConstantComposite 91 92 93
9
6: 6
(int) Constant 264
9
7(myblock2): TypeStruct 20(float) 24(fvec4) 26
98: 6
(int) Constant 81
99: TypeArray 97(myblock2) 98
10
0: TypePointer Output 99
10
1(blk2): 100
(ptr) Variable Output
10
7: 20
(float) Constant 1101004800
11
1: 20
(float) Constant 1101529088
11
2: 20
(float) Constant 1102053376
11
3: 20
(float) Constant 1102577664
11
4: 20
(float) Constant 1103101952
11
5: 24(fvec4) ConstantComposite 111 112 113 114
12
7: 20
(float) Constant 1105723392
13
7: 9(ivec3) ConstantComposite 31 42 42
4(main): 2 Function None 3
5: Label
8(iid): 7(ptr) Variable Function
1
8
(gid): 7(ptr) Variable Function
1
5: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13
1
6: 9(int) Load 15
17: 6(int) Bitcast 16
Store 8(iid) 17
20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13
21: 9(int) Load 20
22: 6(int) Bitcast 21
Store 18(gid) 22
38: 6(int) Load 8(iid)
4
2: 41(ptr) AccessChain 37(blk) 38 39
Store 42 40
4
3: 6(int) Load 8(i
id)
4
5: 6(int) IAdd 43 44
4
6: 6(int) Load 18(gid)
4
7: 6(int) Load 8(iid)
4
8: 41(ptr) AccessChain 37(blk) 47 39
49: 23(float) Load
48
50:
41(ptr) AccessChain 37(blk) 45 44 46
Store 50 49
5
1: 6(int) Load 8(iid)
5
3: 6(int) SDiv 51 52
59: 58(ptr) AccessChain 37(blk) 53 52
60: 26(fvec3) Load 59
61:
26(fvec3) VectorShuffle 60 57 5 3 4
Store 59 61
6
2
: 6(int) Load 8(iid)
6
3: 6(int) IMul 62 52
6
5: 6(int) Load 8(iid)
6
6: 6(int) SDiv 65 52
6
7: 58(ptr) AccessChain 37(blk) 66 52
68: 26(fvec3) Load 67
7
0: 69(ptr) AccessChain 37(blk) 63 64 44
71: 27(fvec4) Load 70
72:
27(fvec4) VectorShuffle 71 68 0 4 5 6
Store 70 72
7
3: 6(int) Load 8(iid)
7
5: 6(int) SDiv 73 74
7
8: 69(ptr) AccessChain 37(blk) 75 74 52
79: 27(fvec4) Load 78
80:
27(fvec4) VectorShuffle 79 77 7 6 5 4
Store 78 80
8
1: 6(int) Load 8(iid)
8
3: 6(int) Load 8(iid)
8
4: 6(int) SDiv 83 74
8
6: 41(ptr) AccessChain 37(blk) 84 74 52 85
87: 23(float) Load
86
8
9: 41(ptr) AccessChain 37(blk) 81 82 39 44 88
Store 89 87
90: 6(int) Load
8(i
id)
9
1: 6(int) IMul 90 74
92: 6(int) Load 18(gid)
97: 58(ptr) AccessChain 37(blk) 91 82 44 92
Store 97
96
MemoryBarrier 88 98
ControlBarrier 31 31 98
104: 6(int)
Load 8(iid)
105:
6(int) Load 8(iid)
106:
6(int) ISub 105 44
10
7: 41(ptr) AccessChain 103(blk2) 106 39
10
8: 23(float) Load 10
7
110: 23(float) FAdd 108 109
11
1: 41(ptr) AccessChain 103(blk2) 104 39
Store 111 110
112: 6(int) Load 8(iid)
11
8: 69(ptr) AccessChain 103(blk2) 112 44
Store 118 117
119: 6(int) Load
8(i
id)
120: 6(int)
IAdd 119 44
121:
6(int) Load 18(gid)
122:
6(int) Load 8(iid)
123: 6
9(ptr) AccessChain 103(blk2) 122 44
124: 27(fvec4) Load 123
12
5: 69(ptr) AccessChain 103(blk2) 120 52 121
Store 125 124
126: 6(int) Load
8(i
id)
12
7: 6(int) IAdd 126 44
128: 6(int) Load 18(gid)
1
30: 41(ptr) AccessChain 103(blk2) 127 52 128 31
Store 130 129
1
6
(gid): 7(ptr) Variable Function
1
4: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
1
5: 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
4
1: 6(int) Load 8(iid)
43: 6(int) IAdd 41 42
4
5: 6(int) Load 16(g
id)
4
6: 6(int) Load 8(iid)
4
7: 39(ptr) AccessChain 34(blk) 46 37
4
8: 20(float) Load 47
4
9: 39(ptr) AccessChain 34(blk) 43 44 45
Store 49
48
50:
6(int) Load 8(iid)
51: 6(int) UDiv 50 28
5
8: 57(ptr) AccessChain 34(blk) 51 52
5
9: 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
6
4
: 6(int) Load 8(iid)
6
5: 6(int) UDiv 64 28
6
6: 57(ptr) AccessChain 34(blk) 65 52
6
7: 23(fvec3) Load 66
6
9: 68(ptr) AccessChain 34(blk) 62 63 44
70: 24(fvec4) Load 69
7
1: 24(fvec4) VectorShuffle 70 67 0 4 5 6
Store 69 71
72:
6(int) Load 8(iid)
73: 6(int) UDiv 72 21
7
7: 68(ptr) AccessChain 34(blk) 73 74 52
7
8: 24(fvec4) Load 77
7
9: 24(fvec4) VectorShuffle 78 76 7 6 5 4
Store 77 79
80:
6(int) Load 8(iid)
82: 6(int) Load 8(iid)
8
3: 6(int) UDiv 82 21
8
5: 39(ptr) AccessChain 34(blk) 83 74 52 84
8
6: 20(float) Load 85
8
7: 39(ptr) AccessChain 34(blk) 80 81 37 44 42
Store 87
86
8
8: 6(int) Load 8(iid)
89: 6(int) IMul 88 21
90: 6(int) Load
16(g
id)
9
5: 57(ptr) AccessChain 34(blk) 89 81 44 90
Store 95 94
MemoryBarrier 42 96
ControlBarrier 28 28
96
102: 6(int) Load 8(iid)
103: 6(int) Load 8(iid)
104: 6(int)
ISub 103 42
105:
39(ptr) AccessChain 101(blk2) 104 37
106:
20(float) Load 105
10
8: 20(float) FAdd 106 107
10
9: 39(ptr) AccessChain 101(blk2) 102 3
7
Store 109 108
11
0: 6(int) Load 8(iid)
116: 68(ptr) AccessChain 101(blk2) 110 44
Store 116 115
11
7: 6(int) Load 8(iid)
118: 6(int) IAdd 117 42
119: 6(int) Load
16(g
id)
120: 6(int)
Load 8(iid)
121:
68(ptr) AccessChain 101(blk2) 120 44
122:
24(fvec4) Load 121
123: 6
8(ptr) AccessChain 101(blk2) 118 52 119
Store 123 122
12
4: 6(int) Load 8(iid)
125: 6(int) IAdd 124 42
126: 6(int) Load
16(g
id)
12
8: 39(ptr) AccessChain 101(blk2) 125 52 126 28
Store 128 127
1
29: 6(int) Load 8(iid)
130: 6(int) IAdd 129 28
131: 6(int) Load 8(iid)
132: 6(int) IAdd 131 52
133: 6(int) Load 8(iid)
134: 6(int) IAdd 133 44
135: 6(int) Load 18(gid)
136: 69(ptr) AccessChain 103(blk2) 134 52 135
137: 27(fvec4) Load 136
138: 69(ptr) AccessChain 103(blk2) 132 52 64
Store 138 137
MemoryBarrier 88 98
ControlBarrier 31 31 98
132: 6(int) IAdd 131 42
133: 6(int) Load 16(gid)
134: 68(ptr) AccessChain 101(blk2) 132 52 133
135: 24(fvec4) Load 134
136: 68(ptr) AccessChain 101(blk2) 130 52 63
Store 136 135
MemoryBarrier 42 96
ControlBarrier 28 28 96
Return
FunctionEnd
Test/spv.320.meshShaderUserDefined.mesh
0 → 100644
View file @
3ae0f583
#version 320 es
#define MAX_VER 81
#define MAX_PRIM 32
#define BARRIER() \
memoryBarrierShared(); \
barrier();
#extension GL_NV_mesh_shader : enable
layout(local_size_x = 32) in;
layout(max_vertices=MAX_VER) out;
layout(max_primitives=MAX_PRIM) out;
layout(triangles) out;
// test use of user defined interface out blocks:
// per-primitive block
perprimitiveNV layout(location=0) out myblock {
float f;
float fArr[4];
vec3 pos;
vec4 posArr[4];
mat4 m;
mat3 mArr[2];
} blk[];
// per-vertex block
layout(location=20) out myblock2 {
float f;
vec4 pos;
mat4 m;
} blk2[];
void main()
{
int iid = int(gl_LocalInvocationID.x);
int gid = int(gl_WorkGroupID.x);
blk[iid].f = 11.0;
blk[iid+1].fArr[gid] = blk[iid].f;
blk[iid/2].pos.yzx = vec3(14.0, 15.0, 13.0);
blk[iid*2].posArr[1].yzw = blk[iid/2].pos;
blk[iid/4].m[2].wzyx = vec4(13.0, 14.0, 15.0, 16.0);
blk[iid].mArr[0][1][1] = blk[iid/4].m[2].w;
blk[iid*4].mArr[1][gid] = vec3(17.0, 18.0, 19.0);
BARRIER();
blk2[iid].f = blk2[iid-1].f + 20.0;
blk2[iid].pos = vec4(21.0, 22.0, 23.0, 24.0);
blk2[iid+1].m[gid] = blk2[iid].pos;
blk2[iid+1].m[gid][2] = 29.0;
blk2[iid+2].m[3] = blk2[iid+1].m[gid];
BARRIER();
}
Test/spv.meshShaderUserDefined.mesh
View file @
3ae0f583
#version
320 es
#version
450
#define MAX_VER 81
#define MAX_PRIM 32
...
...
@@ -36,8 +36,8 @@ layout(location=20) out myblock2 {
void main()
{
int iid = int(gl_LocalInvocationID.x)
;
int gid = int(gl_WorkGroupID.x)
;
uint iid = gl_LocalInvocationID.x
;
uint gid = gl_WorkGroupID.x
;
blk[iid].f = 11.0;
blk[iid+1].fArr[gid] = blk[iid].f;
...
...
glslang/MachineIndependent/ParseHelper.cpp
View file @
3ae0f583
...
...
@@ -3606,6 +3606,7 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
if
((
profile
==
EEsProfile
&&
version
>=
320
)
||
extensionTurnedOn
(
E_GL_NV_mesh_shader
))
return
;
break
;
#endif
default
:
break
;
...
...
glslang/MachineIndependent/Versions.cpp
View file @
3ae0f583
...
...
@@ -835,8 +835,8 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe
}
#ifdef NV_EXTENSIONS
//
Validate if extension name
is used with correct shader stage.
bool
TParseVersions
::
validateExtensionName
(
const
TSourceLoc
&
loc
,
const
char
*
const
extension
)
//
Check if extension
is used with correct shader stage.
bool
TParseVersions
::
checkShaderStageForNVExtensions
(
const
TSourceLoc
&
loc
,
const
char
*
const
extension
)
{
int
lNumErrors
=
getNumErrors
();
...
...
@@ -845,6 +845,8 @@ bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * c
requireStage
(
loc
,
(
EShLanguageMask
)(
EShLangTaskNVMask
|
EShLangMeshNVMask
),
"#extension GL_NV_mesh_shader"
);
// TODO: need to add error checks for other nvidia turing extensions
if
(
getNumErrors
()
>
lNumErrors
)
return
false
;
return
true
;
...
...
glslang/MachineIndependent/parseVersions.h
View file @
3ae0f583
...
...
@@ -104,7 +104,7 @@ public:
virtual
bool
checkExtensionsRequested
(
const
TSourceLoc
&
,
int
numExtensions
,
const
char
*
const
extensions
[],
const
char
*
featureDesc
);
virtual
void
updateExtensionBehavior
(
const
char
*
const
extension
,
TExtensionBehavior
);
#ifdef NV_EXTENSIONS
virtual
bool
validateExtensionName
(
const
TSourceLoc
&
,
const
char
*
const
extension
);
virtual
bool
checkShaderStageForNVExtensions
(
const
TSourceLoc
&
,
const
char
*
const
extension
);
#endif
virtual
void
C_DECL
error
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
...
...
glslang/MachineIndependent/preprocessor/Pp.cpp
View file @
3ae0f583
...
...
@@ -875,7 +875,7 @@ int TPpContext::CPPextension(TPpToken* ppToken)
}
#ifdef NV_EXTENSIONS
if
(
!
parseContext
.
validateExtensionName
(
ppToken
->
loc
,
extensionName
))
if
(
!
parseContext
.
checkShaderStageForNVExtensions
(
ppToken
->
loc
,
extensionName
))
return
token
;
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment