Move check if useStorageBuffer needs to be set.
From TParseContext used only by GLSL, to TParseContextBase inherited by both GLSL and HLSL paths. It caused compilations from HLSL to SPIR-V 1.3+ to use BufferBlock decoration which is no longer valid.
This commit is contained in:
parent
0d3211ff7b
commit
4e9cde50bb
@ -2331,7 +2331,7 @@ local_size = (32, 16, 1)
|
|||||||
MemberDecorate 20(Types) 3 Offset 64
|
MemberDecorate 20(Types) 3 Offset 64
|
||||||
Decorate 21 ArrayStride 96
|
Decorate 21 ArrayStride 96
|
||||||
MemberDecorate 22(data) 0 Offset 0
|
MemberDecorate 22(data) 0 Offset 0
|
||||||
Decorate 22(data) BufferBlock
|
Decorate 22(data) Block
|
||||||
Decorate 24(data) DescriptorSet 0
|
Decorate 24(data) DescriptorSet 0
|
||||||
Decorate 24(data) Binding 0
|
Decorate 24(data) Binding 0
|
||||||
Decorate 388(dti) BuiltIn GlobalInvocationId
|
Decorate 388(dti) BuiltIn GlobalInvocationId
|
||||||
@ -2351,31 +2351,31 @@ local_size = (32, 16, 1)
|
|||||||
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
||||||
21: TypeRuntimeArray 20(Types)
|
21: TypeRuntimeArray 20(Types)
|
||||||
22(data): TypeStruct 21
|
22(data): TypeStruct 21
|
||||||
23: TypePointer Uniform 22(data)
|
23: TypePointer StorageBuffer 22(data)
|
||||||
24(data): 23(ptr) Variable Uniform
|
24(data): 23(ptr) Variable StorageBuffer
|
||||||
25: 14(int) Constant 0
|
25: 14(int) Constant 0
|
||||||
26: 6(int) Constant 0
|
26: 6(int) Constant 0
|
||||||
27: TypePointer Function 6(int)
|
27: TypePointer Function 6(int)
|
||||||
32: TypePointer Uniform 13(ivec4)
|
32: TypePointer StorageBuffer 13(ivec4)
|
||||||
35: 6(int) Constant 13
|
35: 6(int) Constant 13
|
||||||
36: 6(int) Constant 3
|
36: 6(int) Constant 3
|
||||||
43: TypePointer Uniform 6(int)
|
43: TypePointer StorageBuffer 6(int)
|
||||||
52: TypeVector 6(int) 2
|
52: TypeVector 6(int) 2
|
||||||
59: 6(int) Constant 1
|
59: 6(int) Constant 1
|
||||||
74: 6(int) Constant 2
|
74: 6(int) Constant 2
|
||||||
79: 14(int) Constant 1
|
79: 14(int) Constant 1
|
||||||
82: TypePointer Uniform 15(ivec4)
|
82: TypePointer StorageBuffer 15(ivec4)
|
||||||
91: TypePointer Uniform 14(int)
|
91: TypePointer StorageBuffer 14(int)
|
||||||
100: TypeVector 14(int) 2
|
100: TypeVector 14(int) 2
|
||||||
113: TypeVector 14(int) 3
|
113: TypeVector 14(int) 3
|
||||||
126: 14(int) Constant 2
|
126: 14(int) Constant 2
|
||||||
129: TypePointer Uniform 17(fvec4)
|
129: TypePointer StorageBuffer 17(fvec4)
|
||||||
138: TypePointer Uniform 16(float)
|
138: TypePointer StorageBuffer 16(float)
|
||||||
147: TypeVector 16(float) 2
|
147: TypeVector 16(float) 2
|
||||||
160: TypeVector 16(float) 3
|
160: TypeVector 16(float) 3
|
||||||
173: 14(int) Constant 3
|
173: 14(int) Constant 3
|
||||||
176: TypePointer Uniform 19(f64vec4)
|
176: TypePointer StorageBuffer 19(f64vec4)
|
||||||
185: TypePointer Uniform 18(float64_t)
|
185: TypePointer StorageBuffer 18(float64_t)
|
||||||
194: TypeVector 18(float64_t) 2
|
194: TypeVector 18(float64_t) 2
|
||||||
207: TypeVector 18(float64_t) 3
|
207: TypeVector 18(float64_t) 3
|
||||||
387: TypePointer Input 7(ivec3)
|
387: TypePointer Input 7(ivec3)
|
||||||
|
@ -2355,7 +2355,7 @@ local_size = (32, 16, 1)
|
|||||||
MemberDecorate 20(Types) 3 Offset 64
|
MemberDecorate 20(Types) 3 Offset 64
|
||||||
Decorate 21 ArrayStride 96
|
Decorate 21 ArrayStride 96
|
||||||
MemberDecorate 22(data) 0 Offset 0
|
MemberDecorate 22(data) 0 Offset 0
|
||||||
Decorate 22(data) BufferBlock
|
Decorate 22(data) Block
|
||||||
Decorate 24(data) DescriptorSet 0
|
Decorate 24(data) DescriptorSet 0
|
||||||
Decorate 24(data) Binding 0
|
Decorate 24(data) Binding 0
|
||||||
Decorate 398(dti) BuiltIn GlobalInvocationId
|
Decorate 398(dti) BuiltIn GlobalInvocationId
|
||||||
@ -2375,30 +2375,30 @@ local_size = (32, 16, 1)
|
|||||||
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
||||||
21: TypeRuntimeArray 20(Types)
|
21: TypeRuntimeArray 20(Types)
|
||||||
22(data): TypeStruct 21
|
22(data): TypeStruct 21
|
||||||
23: TypePointer Uniform 22(data)
|
23: TypePointer StorageBuffer 22(data)
|
||||||
24(data): 23(ptr) Variable Uniform
|
24(data): 23(ptr) Variable StorageBuffer
|
||||||
25: 14(int) Constant 0
|
25: 14(int) Constant 0
|
||||||
26: 6(int) Constant 0
|
26: 6(int) Constant 0
|
||||||
27: TypePointer Function 6(int)
|
27: TypePointer Function 6(int)
|
||||||
32: TypePointer Uniform 13(ivec4)
|
32: TypePointer StorageBuffer 13(ivec4)
|
||||||
35: 6(int) Constant 3
|
35: 6(int) Constant 3
|
||||||
42: TypePointer Uniform 6(int)
|
42: TypePointer StorageBuffer 6(int)
|
||||||
51: TypeVector 6(int) 2
|
51: TypeVector 6(int) 2
|
||||||
58: 6(int) Constant 1
|
58: 6(int) Constant 1
|
||||||
73: 6(int) Constant 2
|
73: 6(int) Constant 2
|
||||||
78: 14(int) Constant 1
|
78: 14(int) Constant 1
|
||||||
81: TypePointer Uniform 15(ivec4)
|
81: TypePointer StorageBuffer 15(ivec4)
|
||||||
90: TypePointer Uniform 14(int)
|
90: TypePointer StorageBuffer 14(int)
|
||||||
99: TypeVector 14(int) 2
|
99: TypeVector 14(int) 2
|
||||||
112: TypeVector 14(int) 3
|
112: TypeVector 14(int) 3
|
||||||
125: 14(int) Constant 2
|
125: 14(int) Constant 2
|
||||||
128: TypePointer Uniform 17(fvec4)
|
128: TypePointer StorageBuffer 17(fvec4)
|
||||||
137: TypePointer Uniform 16(float)
|
137: TypePointer StorageBuffer 16(float)
|
||||||
146: TypeVector 16(float) 2
|
146: TypeVector 16(float) 2
|
||||||
159: TypeVector 16(float) 3
|
159: TypeVector 16(float) 3
|
||||||
172: 14(int) Constant 3
|
172: 14(int) Constant 3
|
||||||
175: TypePointer Uniform 19(f64vec4)
|
175: TypePointer StorageBuffer 19(f64vec4)
|
||||||
184: TypePointer Uniform 18(float64_t)
|
184: TypePointer StorageBuffer 18(float64_t)
|
||||||
193: TypeVector 18(float64_t) 2
|
193: TypeVector 18(float64_t) 2
|
||||||
206: TypeVector 18(float64_t) 3
|
206: TypeVector 18(float64_t) 3
|
||||||
391: TypeBool
|
391: TypeBool
|
||||||
|
@ -8058,7 +8058,7 @@ local_size = (32, 16, 1)
|
|||||||
MemberDecorate 20(Types) 3 Offset 64
|
MemberDecorate 20(Types) 3 Offset 64
|
||||||
Decorate 21 ArrayStride 96
|
Decorate 21 ArrayStride 96
|
||||||
MemberDecorate 22(data) 0 Offset 0
|
MemberDecorate 22(data) 0 Offset 0
|
||||||
Decorate 22(data) BufferBlock
|
Decorate 22(data) Block
|
||||||
Decorate 24(data) DescriptorSet 0
|
Decorate 24(data) DescriptorSet 0
|
||||||
Decorate 24(data) Binding 0
|
Decorate 24(data) Binding 0
|
||||||
Decorate 1227(dti) BuiltIn GlobalInvocationId
|
Decorate 1227(dti) BuiltIn GlobalInvocationId
|
||||||
@ -8078,30 +8078,30 @@ local_size = (32, 16, 1)
|
|||||||
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
||||||
21: TypeRuntimeArray 20(Types)
|
21: TypeRuntimeArray 20(Types)
|
||||||
22(data): TypeStruct 21
|
22(data): TypeStruct 21
|
||||||
23: TypePointer Uniform 22(data)
|
23: TypePointer StorageBuffer 22(data)
|
||||||
24(data): 23(ptr) Variable Uniform
|
24(data): 23(ptr) Variable StorageBuffer
|
||||||
25: 14(int) Constant 0
|
25: 14(int) Constant 0
|
||||||
26: 6(int) Constant 0
|
26: 6(int) Constant 0
|
||||||
27: TypePointer Function 6(int)
|
27: TypePointer Function 6(int)
|
||||||
32: TypePointer Uniform 13(ivec4)
|
32: TypePointer StorageBuffer 13(ivec4)
|
||||||
35: 6(int) Constant 3
|
35: 6(int) Constant 3
|
||||||
42: TypePointer Uniform 6(int)
|
42: TypePointer StorageBuffer 6(int)
|
||||||
51: TypeVector 6(int) 2
|
51: TypeVector 6(int) 2
|
||||||
58: 6(int) Constant 1
|
58: 6(int) Constant 1
|
||||||
73: 6(int) Constant 2
|
73: 6(int) Constant 2
|
||||||
78: 14(int) Constant 1
|
78: 14(int) Constant 1
|
||||||
81: TypePointer Uniform 15(ivec4)
|
81: TypePointer StorageBuffer 15(ivec4)
|
||||||
90: TypePointer Uniform 14(int)
|
90: TypePointer StorageBuffer 14(int)
|
||||||
99: TypeVector 14(int) 2
|
99: TypeVector 14(int) 2
|
||||||
112: TypeVector 14(int) 3
|
112: TypeVector 14(int) 3
|
||||||
125: 14(int) Constant 2
|
125: 14(int) Constant 2
|
||||||
128: TypePointer Uniform 17(fvec4)
|
128: TypePointer StorageBuffer 17(fvec4)
|
||||||
137: TypePointer Uniform 16(float)
|
137: TypePointer StorageBuffer 16(float)
|
||||||
146: TypeVector 16(float) 2
|
146: TypeVector 16(float) 2
|
||||||
159: TypeVector 16(float) 3
|
159: TypeVector 16(float) 3
|
||||||
172: 14(int) Constant 3
|
172: 14(int) Constant 3
|
||||||
175: TypePointer Uniform 19(f64vec4)
|
175: TypePointer StorageBuffer 19(f64vec4)
|
||||||
184: TypePointer Uniform 18(float64_t)
|
184: TypePointer StorageBuffer 18(float64_t)
|
||||||
193: TypeVector 18(float64_t) 2
|
193: TypeVector 18(float64_t) 2
|
||||||
206: TypeVector 18(float64_t) 3
|
206: TypeVector 18(float64_t) 3
|
||||||
1226: TypePointer Input 7(ivec3)
|
1226: TypePointer Input 7(ivec3)
|
||||||
|
@ -79,7 +79,7 @@ local_size = (32, 16, 1)
|
|||||||
Name 21 "@gl_SubgroupSize"
|
Name 21 "@gl_SubgroupSize"
|
||||||
Decorate 9 ArrayStride 4
|
Decorate 9 ArrayStride 4
|
||||||
MemberDecorate 10(data) 0 Offset 0
|
MemberDecorate 10(data) 0 Offset 0
|
||||||
Decorate 10(data) BufferBlock
|
Decorate 10(data) Block
|
||||||
Decorate 12(data) DescriptorSet 0
|
Decorate 12(data) DescriptorSet 0
|
||||||
Decorate 12(data) Binding 0
|
Decorate 12(data) Binding 0
|
||||||
Decorate 16(@gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
Decorate 16(@gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
@ -89,8 +89,8 @@ local_size = (32, 16, 1)
|
|||||||
8: TypeInt 32 0
|
8: TypeInt 32 0
|
||||||
9: TypeRuntimeArray 8(int)
|
9: TypeRuntimeArray 8(int)
|
||||||
10(data): TypeStruct 9
|
10(data): TypeStruct 9
|
||||||
11: TypePointer Uniform 10(data)
|
11: TypePointer StorageBuffer 10(data)
|
||||||
12(data): 11(ptr) Variable Uniform
|
12(data): 11(ptr) Variable StorageBuffer
|
||||||
13: TypeInt 32 1
|
13: TypeInt 32 1
|
||||||
14: 13(int) Constant 0
|
14: 13(int) Constant 0
|
||||||
15: TypePointer Input 8(int)
|
15: TypePointer Input 8(int)
|
||||||
@ -99,7 +99,7 @@ local_size = (32, 16, 1)
|
|||||||
19: 8(int) Constant 3
|
19: 8(int) Constant 3
|
||||||
21(@gl_SubgroupSize): 15(ptr) Variable Input
|
21(@gl_SubgroupSize): 15(ptr) Variable Input
|
||||||
23: 8(int) Constant 0
|
23: 8(int) Constant 0
|
||||||
25: TypePointer Uniform 8(int)
|
25: TypePointer StorageBuffer 8(int)
|
||||||
4(CSMain): 2 Function None 3
|
4(CSMain): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
27: 2 FunctionCall 6(@CSMain()
|
27: 2 FunctionCall 6(@CSMain()
|
||||||
|
@ -6219,7 +6219,7 @@ local_size = (32, 16, 1)
|
|||||||
MemberDecorate 20(Types) 3 Offset 64
|
MemberDecorate 20(Types) 3 Offset 64
|
||||||
Decorate 21 ArrayStride 96
|
Decorate 21 ArrayStride 96
|
||||||
MemberDecorate 22(data) 0 Offset 0
|
MemberDecorate 22(data) 0 Offset 0
|
||||||
Decorate 22(data) BufferBlock
|
Decorate 22(data) Block
|
||||||
Decorate 24(data) DescriptorSet 0
|
Decorate 24(data) DescriptorSet 0
|
||||||
Decorate 24(data) Binding 0
|
Decorate 24(data) Binding 0
|
||||||
Decorate 986(dti) BuiltIn GlobalInvocationId
|
Decorate 986(dti) BuiltIn GlobalInvocationId
|
||||||
@ -6239,30 +6239,30 @@ local_size = (32, 16, 1)
|
|||||||
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4)
|
||||||
21: TypeRuntimeArray 20(Types)
|
21: TypeRuntimeArray 20(Types)
|
||||||
22(data): TypeStruct 21
|
22(data): TypeStruct 21
|
||||||
23: TypePointer Uniform 22(data)
|
23: TypePointer StorageBuffer 22(data)
|
||||||
24(data): 23(ptr) Variable Uniform
|
24(data): 23(ptr) Variable StorageBuffer
|
||||||
25: 14(int) Constant 0
|
25: 14(int) Constant 0
|
||||||
26: 6(int) Constant 0
|
26: 6(int) Constant 0
|
||||||
27: TypePointer Function 6(int)
|
27: TypePointer Function 6(int)
|
||||||
32: TypePointer Uniform 13(ivec4)
|
32: TypePointer StorageBuffer 13(ivec4)
|
||||||
35: 6(int) Constant 3
|
35: 6(int) Constant 3
|
||||||
42: TypePointer Uniform 6(int)
|
42: TypePointer StorageBuffer 6(int)
|
||||||
51: TypeVector 6(int) 2
|
51: TypeVector 6(int) 2
|
||||||
58: 6(int) Constant 1
|
58: 6(int) Constant 1
|
||||||
73: 6(int) Constant 2
|
73: 6(int) Constant 2
|
||||||
78: 14(int) Constant 1
|
78: 14(int) Constant 1
|
||||||
81: TypePointer Uniform 15(ivec4)
|
81: TypePointer StorageBuffer 15(ivec4)
|
||||||
90: TypePointer Uniform 14(int)
|
90: TypePointer StorageBuffer 14(int)
|
||||||
99: TypeVector 14(int) 2
|
99: TypeVector 14(int) 2
|
||||||
112: TypeVector 14(int) 3
|
112: TypeVector 14(int) 3
|
||||||
125: 14(int) Constant 2
|
125: 14(int) Constant 2
|
||||||
128: TypePointer Uniform 17(fvec4)
|
128: TypePointer StorageBuffer 17(fvec4)
|
||||||
137: TypePointer Uniform 16(float)
|
137: TypePointer StorageBuffer 16(float)
|
||||||
146: TypeVector 16(float) 2
|
146: TypeVector 16(float) 2
|
||||||
159: TypeVector 16(float) 3
|
159: TypeVector 16(float) 3
|
||||||
172: 14(int) Constant 3
|
172: 14(int) Constant 3
|
||||||
175: TypePointer Uniform 19(f64vec4)
|
175: TypePointer StorageBuffer 19(f64vec4)
|
||||||
184: TypePointer Uniform 18(float64_t)
|
184: TypePointer StorageBuffer 18(float64_t)
|
||||||
193: TypeVector 18(float64_t) 2
|
193: TypeVector 18(float64_t) 2
|
||||||
206: TypeVector 18(float64_t) 3
|
206: TypeVector 18(float64_t) 3
|
||||||
979: TypeBool
|
979: TypeBool
|
||||||
|
@ -228,7 +228,7 @@ local_size = (32, 16, 1)
|
|||||||
Name 72 "param"
|
Name 72 "param"
|
||||||
Decorate 14 ArrayStride 8
|
Decorate 14 ArrayStride 8
|
||||||
MemberDecorate 15(data) 0 Offset 0
|
MemberDecorate 15(data) 0 Offset 0
|
||||||
Decorate 15(data) BufferBlock
|
Decorate 15(data) Block
|
||||||
Decorate 17(data) DescriptorSet 0
|
Decorate 17(data) DescriptorSet 0
|
||||||
Decorate 17(data) Binding 0
|
Decorate 17(data) Binding 0
|
||||||
Decorate 70(dti) BuiltIn GlobalInvocationId
|
Decorate 70(dti) BuiltIn GlobalInvocationId
|
||||||
@ -241,8 +241,8 @@ local_size = (32, 16, 1)
|
|||||||
13: TypeInt 64 0
|
13: TypeInt 64 0
|
||||||
14: TypeRuntimeArray 13(int64_t)
|
14: TypeRuntimeArray 13(int64_t)
|
||||||
15(data): TypeStruct 14
|
15(data): TypeStruct 14
|
||||||
16: TypePointer Uniform 15(data)
|
16: TypePointer StorageBuffer 15(data)
|
||||||
17(data): 16(ptr) Variable Uniform
|
17(data): 16(ptr) Variable StorageBuffer
|
||||||
18: TypeInt 32 1
|
18: TypeInt 32 1
|
||||||
19: 18(int) Constant 0
|
19: 18(int) Constant 0
|
||||||
20: 6(int) Constant 0
|
20: 6(int) Constant 0
|
||||||
@ -251,7 +251,7 @@ local_size = (32, 16, 1)
|
|||||||
28: 6(int) Constant 3
|
28: 6(int) Constant 3
|
||||||
30: TypeVector 6(int) 4
|
30: TypeVector 6(int) 4
|
||||||
32: TypeVector 13(int64_t) 4
|
32: TypeVector 13(int64_t) 4
|
||||||
35: TypePointer Uniform 13(int64_t)
|
35: TypePointer StorageBuffer 13(int64_t)
|
||||||
37: 6(int) Constant 1
|
37: 6(int) Constant 1
|
||||||
48: 6(int) Constant 2
|
48: 6(int) Constant 2
|
||||||
69: TypePointer Input 7(ivec3)
|
69: TypePointer Input 7(ivec3)
|
||||||
|
@ -80,10 +80,6 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b
|
|||||||
globalBufferDefaults.layoutMatrix = ElmColumnMajor;
|
globalBufferDefaults.layoutMatrix = ElmColumnMajor;
|
||||||
globalBufferDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd430 : ElpShared;
|
globalBufferDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd430 : ElpShared;
|
||||||
|
|
||||||
// use storage buffer on SPIR-V 1.3 and up
|
|
||||||
if (spvVersion.spv >= EShTargetSpv_1_3)
|
|
||||||
intermediate.setUseStorageBuffer();
|
|
||||||
|
|
||||||
globalInputDefaults.clear();
|
globalInputDefaults.clear();
|
||||||
globalOutputDefaults.clear();
|
globalOutputDefaults.clear();
|
||||||
|
|
||||||
|
@ -95,6 +95,10 @@ public:
|
|||||||
globalUniformSet(TQualifier::layoutSetEnd),
|
globalUniformSet(TQualifier::layoutSetEnd),
|
||||||
atomicCounterBlockSet(TQualifier::layoutSetEnd)
|
atomicCounterBlockSet(TQualifier::layoutSetEnd)
|
||||||
{
|
{
|
||||||
|
// use storage buffer on SPIR-V 1.3 and up
|
||||||
|
if (spvVersion.spv >= EShTargetSpv_1_3)
|
||||||
|
intermediate.setUseStorageBuffer();
|
||||||
|
|
||||||
if (entryPoint != nullptr)
|
if (entryPoint != nullptr)
|
||||||
sourceEntryPointName = *entryPoint;
|
sourceEntryPointName = *entryPoint;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user