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
Show 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
spv.meshShaderUserDefined.mesh
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80007
// Generated by (magic number): 80007
// Id's are bound by 1
40
// Id's are bound by 1
38
Capability MeshShadingNV
Capability MeshShadingNV
Extension "SPV_NV_mesh_shader"
Extension "SPV_NV_mesh_shader"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
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 LocalSize 32 1 1
ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputPrimitivesNV 32
ExecutionMode 4 OutputPrimitivesNV 32
ExecutionMode 4 OutputTrianglesNV
ExecutionMode 4 OutputTrianglesNV
Source
ESSL 32
0
Source
GLSL 45
0
SourceExtension "GL_NV_mesh_shader"
SourceExtension "GL_NV_mesh_shader"
Name 4 "main"
Name 4 "main"
Name 8 "iid"
Name 8 "iid"
Name 1
2
"gl_LocalInvocationID"
Name 1
1
"gl_LocalInvocationID"
Name 1
8
"gid"
Name 1
6
"gid"
Name 1
9
"gl_WorkGroupID"
Name 1
7
"gl_WorkGroupID"
Name 3
3
"myblock"
Name 3
0
"myblock"
MemberName 3
3
(myblock) 0 "f"
MemberName 3
0
(myblock) 0 "f"
MemberName 3
3
(myblock) 1 "fArr"
MemberName 3
0
(myblock) 1 "fArr"
MemberName 3
3
(myblock) 2 "pos"
MemberName 3
0
(myblock) 2 "pos"
MemberName 3
3
(myblock) 3 "posArr"
MemberName 3
0
(myblock) 3 "posArr"
MemberName 3
3
(myblock) 4 "m"
MemberName 3
0
(myblock) 4 "m"
MemberName 3
3
(myblock) 5 "mArr"
MemberName 3
0
(myblock) 5 "mArr"
Name 3
7
"blk"
Name 3
4
"blk"
Name 9
9
"myblock2"
Name 9
7
"myblock2"
MemberName 9
9
(myblock2) 0 "f"
MemberName 9
7
(myblock2) 0 "f"
MemberName 9
9
(myblock2) 1 "pos"
MemberName 9
7
(myblock2) 1 "pos"
MemberName 9
9
(myblock2) 2 "m"
MemberName 9
7
(myblock2) 2 "m"
Name 10
3
"blk2"
Name 10
1
"blk2"
Decorate 1
2
(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 1
1
(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 1
9
(gl_WorkGroupID) BuiltIn WorkgroupId
Decorate 1
7
(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 3
3
(myblock) 0 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 0 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 1 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 1 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 2 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 2 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 3 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 3 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 4 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 4 PerPrimitiveNV
MemberDecorate 3
3
(myblock) 5 PerPrimitiveNV
MemberDecorate 3
0
(myblock) 5 PerPrimitiveNV
Decorate 3
3
(myblock) Block
Decorate 3
0
(myblock) Block
Decorate 3
7
(blk) Location 0
Decorate 3
4
(blk) Location 0
Decorate 9
9
(myblock2) Block
Decorate 9
7
(myblock2) Block
Decorate 10
3
(blk2) Location 20
Decorate 10
1
(blk2) Location 20
Decorate 13
9
BuiltIn WorkgroupSize
Decorate 13
7
BuiltIn WorkgroupSize
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeInt 32
1
6: TypeInt 32
0
7: TypePointer Function 6(int)
7: TypePointer Function 6(int)
9: Type
Int 32 0
9: Type
Vector 6(int) 3
10: Type
Vector 9(int) 3
10: Type
Pointer Input 9(ivec3)
11: TypePointer Input 10(ivec3)
11(gl_LocalInvocationID): 10(ptr) Variable Input
12(gl_LocalInvocationID): 11(ptr) Variable Input
12: 6(int) Constant 0
13:
9(int) Constant 0
13:
TypePointer Input 6(int)
14: TypePointer Input 9(int)
17(gl_WorkGroupID): 10(ptr) Variable Input
19(gl_WorkGroupID): 11(ptr) Variable Input
20: TypeFloat 32
2
3: TypeFloat 32
2
1: 6(int) Constant 4
2
4: 9(int) Constant 4
2
2: TypeArray 20(float) 21
2
5: TypeArray 23(float) 24
2
3: TypeVector 20(float) 3
2
6: TypeVector 23(float) 3
2
4: TypeVector 20(float) 4
2
7: TypeVector 23(float) 4
2
5: TypeArray 24(fvec4) 21
2
8: TypeArray 27(fvec4) 2
4
2
6: TypeMatrix 24(fvec4)
4
2
9: TypeMatrix 27(fvec4) 4
2
7: TypeMatrix 23(fvec3) 3
30: TypeMatrix 26(fvec3) 3
28: 6(int) Constant 2
31: 9(int) Constant 2
29: TypeArray 27 28
32: TypeArray 30 31
30(myblock): TypeStruct 20(float) 22 23(fvec3) 25 26 29
33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29
32
31: 6(int) Constant
32
3
4: 9(int) Constant 32
3
2: TypeArray 30(myblock) 31
3
5: TypeArray 33(myblock) 34
3
3: TypePointer Output 32
36: TypePointer Output 35
34(blk): 33(ptr) Variable Output
37(blk): 36(ptr) Variable Output
36: TypeInt 32 1
3
9:
6(int) Constant 0
3
7: 3
6(int) Constant 0
40: 23
(float) Constant 1093664768
38: 20
(float) Constant 1093664768
41: TypePointer Output 23
(float)
39: TypePointer Output 20
(float)
4
4
: 6(int) Constant 1
4
2
: 6(int) Constant 1
52: 6(int) Constant 2
44: 36(int) Constant 1
5
4: 23(float) Constant 1096810496
5
2: 36(int) Constant 2
5
5: 23(float) Constant 1097859072
5
3: 20(float) Constant 1096810496
5
6: 23(float) Constant 1095761920
5
4: 20(float) Constant 1097859072
5
7: 26(fvec3) ConstantComposite 54 55 56
5
5: 20(float) Constant 1095761920
5
8: TypePointer Output 26(fvec3)
5
6: 23(fvec3) ConstantComposite 53 54 55
64: 6(int) Constant 3
57: TypePointer Output 23(fvec3)
6
9: TypePointer Output 27(fvec4)
6
3: 36(int) Constant 3
74: 6(int) Constant 4
68: TypePointer Output 24(fvec4)
7
6: 23(float) Constant 1098907648
7
4: 36(int) Constant 4
7
7: 27(fvec4) ConstantComposite 56 54 55 76
7
5: 20(float) Constant 1098907648
82: 6(int) Constant
5
76: 24(fvec4) ConstantComposite 55 53 54 7
5
8
5: 9(int) Constant 3
8
1: 36(int) Constant 5
8
8: 9(int) Constant 1
8
4: 6(int) Constant 3
9
3: 23
(float) Constant 1099431936
9
1: 20
(float) Constant 1099431936
9
4: 23
(float) Constant 1099956224
9
2: 20
(float) Constant 1099956224
9
5: 23
(float) Constant 1100480512
9
3: 20
(float) Constant 1100480512
9
6: 26(fvec3) ConstantComposite 93 94 95
9
4: 23(fvec3) ConstantComposite 91 92 93
9
8: 9
(int) Constant 264
9
6: 6
(int) Constant 264
9
9(myblock2): TypeStruct 23(float) 27(fvec4) 29
9
7(myblock2): TypeStruct 20(float) 24(fvec4) 26
100: 9
(int) Constant 81
98: 6
(int) Constant 81
101: TypeArray 99(myblock2) 100
99: TypeArray 97(myblock2) 98
10
2: TypePointer Output 101
10
0: TypePointer Output 99
10
3(blk2): 102
(ptr) Variable Output
10
1(blk2): 100
(ptr) Variable Output
10
9: 23
(float) Constant 1101004800
10
7: 20
(float) Constant 1101004800
11
3: 23
(float) Constant 1101529088
11
1: 20
(float) Constant 1101529088
11
4: 23
(float) Constant 1102053376
11
2: 20
(float) Constant 1102053376
11
5: 23
(float) Constant 1102577664
11
3: 20
(float) Constant 1102577664
11
6: 23
(float) Constant 1103101952
11
4: 20
(float) Constant 1103101952
11
7: 27(fvec4) ConstantComposite 113 114 115 116
11
5: 24(fvec4) ConstantComposite 111 112 113 114
12
9: 23
(float) Constant 1105723392
12
7: 20
(float) Constant 1105723392
13
9: 10(ivec3) ConstantComposite 34 88 88
13
7: 9(ivec3) ConstantComposite 31 42 42
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
8(iid): 7(ptr) Variable Function
8(iid): 7(ptr) Variable Function
1
8
(gid): 7(ptr) Variable Function
1
6
(gid): 7(ptr) Variable Function
1
5: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13
1
4: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
1
6: 9(int) Load 15
1
5: 6(int) Load 14
17: 6(int) Bitcast 16
Store 8(iid) 15
Store 8(iid) 17
18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12
20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13
19: 6(int) Load 18
21: 9(int) Load 20
Store 16(gid) 19
22: 6(int) Bitcast 21
35: 6(int) Load 8(iid)
Store 18(gid) 22
40: 39(ptr) AccessChain 34(blk) 35 37
38: 6(int) Load 8(iid)
Store 40 38
4
2: 41(ptr) AccessChain 37(blk) 38 39
4
1: 6(int) Load 8(iid)
Store 42 40
43: 6(int) IAdd 41 42
4
3: 6(int) Load 8(i
id)
4
5: 6(int) Load 16(g
id)
4
5: 6(int) IAdd 43 44
4
6: 6(int) Load 8(iid)
4
6: 6(int) Load 18(gid)
4
7: 39(ptr) AccessChain 34(blk) 46 37
4
7: 6(int) Load 8(iid)
4
8: 20(float) Load 47
4
8: 41(ptr) AccessChain 37(blk) 47 39
4
9: 39(ptr) AccessChain 34(blk) 43 44 45
49: 23(float) Load
48
Store 49
48
50:
41(ptr) AccessChain 37(blk) 45 44 46
50:
6(int) Load 8(iid)
Store 50 49
51: 6(int) UDiv 50 28
5
1: 6(int) Load 8(iid)
5
8: 57(ptr) AccessChain 34(blk) 51 52
5
3: 6(int) SDiv 51 52
5
9: 23(fvec3) Load 58
59: 58(ptr) AccessChain 37(blk) 53 52
60: 23(fvec3) VectorShuffle 59 56 5 3 4
60: 26(fvec3) Load 59
Store 58 60
61:
26(fvec3) VectorShuffle 60 57 5 3 4
61:
6(int) Load 8(iid)
Store 59 61
62: 6(int) IMul 61 28
6
2
: 6(int) Load 8(iid)
6
4
: 6(int) Load 8(iid)
6
3: 6(int) IMul 62 52
6
5: 6(int) UDiv 64 28
6
5: 6(int) Load 8(iid)
6
6: 57(ptr) AccessChain 34(blk) 65 52
6
6: 6(int) SDiv 65 52
6
7: 23(fvec3) Load 66
6
7: 58(ptr) AccessChain 37(blk) 66 52
6
9: 68(ptr) AccessChain 34(blk) 62 63 44
68: 26(fvec3) Load 67
70: 24(fvec4) Load 69
7
0: 69(ptr) AccessChain 37(blk) 63 64 44
7
1: 24(fvec4) VectorShuffle 70 67 0 4 5 6
71: 27(fvec4) Load 70
Store 69 71
72:
27(fvec4) VectorShuffle 71 68 0 4 5 6
72:
6(int) Load 8(iid)
Store 70 72
73: 6(int) UDiv 72 21
7
3: 6(int) Load 8(iid)
7
7: 68(ptr) AccessChain 34(blk) 73 74 52
7
5: 6(int) SDiv 73 74
7
8: 24(fvec4) Load 77
7
8: 69(ptr) AccessChain 37(blk) 75 74 52
7
9: 24(fvec4) VectorShuffle 78 76 7 6 5 4
79: 27(fvec4) Load 78
Store 77 79
80:
27(fvec4) VectorShuffle 79 77 7 6 5 4
80:
6(int) Load 8(iid)
Store 78 80
82: 6(int) Load 8(iid)
8
1: 6(int) Load 8(iid)
8
3: 6(int) UDiv 82 21
8
3: 6(int) Load 8(iid)
8
5: 39(ptr) AccessChain 34(blk) 83 74 52 84
8
4: 6(int) SDiv 83 74
8
6: 20(float) Load 85
8
6: 41(ptr) AccessChain 37(blk) 84 74 52 85
8
7: 39(ptr) AccessChain 34(blk) 80 81 37 44 42
87: 23(float) Load
86
Store 87
86
8
9: 41(ptr) AccessChain 37(blk) 81 82 39 44 88
8
8: 6(int) Load 8(iid)
Store 89 87
89: 6(int) IMul 88 21
90: 6(int) Load
8(i
id)
90: 6(int) Load
16(g
id)
9
1: 6(int) IMul 90 74
9
5: 57(ptr) AccessChain 34(blk) 89 81 44 90
92: 6(int) Load 18(gid)
Store 95 94
97: 58(ptr) AccessChain 37(blk) 91 82 44 92
MemoryBarrier 42 96
Store 97
96
ControlBarrier 28 28
96
MemoryBarrier 88 98
102: 6(int) Load 8(iid)
ControlBarrier 31 31 98
103: 6(int) Load 8(iid)
104: 6(int)
Load 8(iid)
104: 6(int)
ISub 103 42
105:
6(int) Load 8(iid)
105:
39(ptr) AccessChain 101(blk2) 104 37
106:
6(int) ISub 105 44
106:
20(float) Load 105
10
7: 41(ptr) AccessChain 103(blk2) 106 39
10
8: 20(float) FAdd 106 107
10
8: 23(float) Load 10
7
10
9: 39(ptr) AccessChain 101(blk2) 102 3
7
110: 23(float) FAdd 108 109
Store 109 108
11
1: 41(ptr) AccessChain 103(blk2) 104 39
11
0: 6(int) Load 8(iid)
Store 111 110
116: 68(ptr) AccessChain 101(blk2) 110 44
112: 6(int) Load 8(iid)
Store 116 115
11
8: 69(ptr) AccessChain 103(blk2) 112 44
11
7: 6(int) Load 8(iid)
Store 118 117
118: 6(int) IAdd 117 42
119: 6(int) Load
8(i
id)
119: 6(int) Load
16(g
id)
120: 6(int)
IAdd 119 44
120: 6(int)
Load 8(iid)
121:
6(int) Load 18(gid)
121:
68(ptr) AccessChain 101(blk2) 120 44
122:
6(int) Load 8(iid)
122:
24(fvec4) Load 121
123: 6
9(ptr) AccessChain 103(blk2) 122 44
123: 6
8(ptr) AccessChain 101(blk2) 118 52 119
124: 27(fvec4) Load 123
Store 123 122
12
5: 69(ptr) AccessChain 103(blk2) 120 52 121
12
4: 6(int) Load 8(iid)
Store 125 124
125: 6(int) IAdd 124 42
126: 6(int) Load
8(i
id)
126: 6(int) Load
16(g
id)
12
7: 6(int) IAdd 126 44
12
8: 39(ptr) AccessChain 101(blk2) 125 52 126 28
128: 6(int) Load 18(gid)
Store 128 127
1
30: 41(ptr) AccessChain 103(blk2) 127 52 128 31
1
29: 6(int) Load 8(iid)
Store 130 129
130: 6(int) IAdd 129 28
131: 6(int) Load 8(iid)
131: 6(int) Load 8(iid)
132: 6(int) IAdd 131 52
132: 6(int) IAdd 131 42
133: 6(int) Load 8(iid)
133: 6(int) Load 16(gid)
134: 6(int) IAdd 133 44
134: 68(ptr) AccessChain 101(blk2) 132 52 133
135: 6(int) Load 18(gid)
135: 24(fvec4) Load 134
136: 69(ptr) AccessChain 103(blk2) 134 52 135
136: 68(ptr) AccessChain 101(blk2) 130 52 63
137: 27(fvec4) Load 136
Store 136 135
138: 69(ptr) AccessChain 103(blk2) 132 52 64
MemoryBarrier 42 96
Store 138 137
ControlBarrier 28 28 96
MemoryBarrier 88 98
ControlBarrier 31 31 98
Return
Return
FunctionEnd
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_VER 81
#define MAX_PRIM 32
#define MAX_PRIM 32
...
@@ -36,8 +36,8 @@ layout(location=20) out myblock2 {
...
@@ -36,8 +36,8 @@ layout(location=20) out myblock2 {
void main()
void main()
{
{
int iid = int(gl_LocalInvocationID.x)
;
uint iid = gl_LocalInvocationID.x
;
int gid = int(gl_WorkGroupID.x)
;
uint gid = gl_WorkGroupID.x
;
blk[iid].f = 11.0;
blk[iid].f = 11.0;
blk[iid+1].fArr[gid] = blk[iid].f;
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
...
@@ -3606,6 +3606,7 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
if
((
profile
==
EEsProfile
&&
version
>=
320
)
||
if
((
profile
==
EEsProfile
&&
version
>=
320
)
||
extensionTurnedOn
(
E_GL_NV_mesh_shader
))
extensionTurnedOn
(
E_GL_NV_mesh_shader
))
return
;
return
;
break
;
#endif
#endif
default
:
default
:
break
;
break
;
...
...
glslang/MachineIndependent/Versions.cpp
View file @
3ae0f583
...
@@ -835,8 +835,8 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe
...
@@ -835,8 +835,8 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe
}
}
#ifdef NV_EXTENSIONS
#ifdef NV_EXTENSIONS
//
Validate if extension name
is used with correct shader stage.
//
Check if extension
is used with correct shader stage.
bool
TParseVersions
::
validateExtensionName
(
const
TSourceLoc
&
loc
,
const
char
*
const
extension
)
bool
TParseVersions
::
checkShaderStageForNVExtensions
(
const
TSourceLoc
&
loc
,
const
char
*
const
extension
)
{
{
int
lNumErrors
=
getNumErrors
();
int
lNumErrors
=
getNumErrors
();
...
@@ -845,6 +845,8 @@ bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * c
...
@@ -845,6 +845,8 @@ bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * c
requireStage
(
loc
,
(
EShLanguageMask
)(
EShLangTaskNVMask
|
EShLangMeshNVMask
),
requireStage
(
loc
,
(
EShLanguageMask
)(
EShLangTaskNVMask
|
EShLangMeshNVMask
),
"#extension GL_NV_mesh_shader"
);
"#extension GL_NV_mesh_shader"
);
// TODO: need to add error checks for other nvidia turing extensions
if
(
getNumErrors
()
>
lNumErrors
)
if
(
getNumErrors
()
>
lNumErrors
)
return
false
;
return
false
;
return
true
;
return
true
;
...
...
glslang/MachineIndependent/parseVersions.h
View file @
3ae0f583
...
@@ -104,7 +104,7 @@ public:
...
@@ -104,7 +104,7 @@ public:
virtual
bool
checkExtensionsRequested
(
const
TSourceLoc
&
,
int
numExtensions
,
const
char
*
const
extensions
[],
const
char
*
featureDesc
);
virtual
bool
checkExtensionsRequested
(
const
TSourceLoc
&
,
int
numExtensions
,
const
char
*
const
extensions
[],
const
char
*
featureDesc
);
virtual
void
updateExtensionBehavior
(
const
char
*
const
extension
,
TExtensionBehavior
);
virtual
void
updateExtensionBehavior
(
const
char
*
const
extension
,
TExtensionBehavior
);
#ifdef NV_EXTENSIONS
#ifdef NV_EXTENSIONS
virtual
bool
validateExtensionName
(
const
TSourceLoc
&
,
const
char
*
const
extension
);
virtual
bool
checkShaderStageForNVExtensions
(
const
TSourceLoc
&
,
const
char
*
const
extension
);
#endif
#endif
virtual
void
C_DECL
error
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
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)
...
@@ -875,7 +875,7 @@ int TPpContext::CPPextension(TPpToken* ppToken)
}
}
#ifdef NV_EXTENSIONS
#ifdef NV_EXTENSIONS
if
(
!
parseContext
.
validateExtensionName
(
ppToken
->
loc
,
extensionName
))
if
(
!
parseContext
.
checkShaderStageForNVExtensions
(
ppToken
->
loc
,
extensionName
))
return
token
;
return
token
;
#endif
#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