SPV: Emit names of specialization constants

This commit is contained in:
Endre Oma 2017-01-31 21:08:19 +01:00
parent 7e134cdfbe
commit ad58d45437
9 changed files with 192 additions and 157 deletions

View File

@ -4971,7 +4971,9 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n
return accessChainLoad(sub_tree->getType()); return accessChainLoad(sub_tree->getType());
} else if (auto* const_union_array = &sn->getConstArray()){ } else if (auto* const_union_array = &sn->getConstArray()){
int nextConst = 0; int nextConst = 0;
return createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); spv::Id id = createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true);
builder.addName(id, sn->getName().c_str());
return id;
} }
} }

View File

@ -87,6 +87,7 @@ gl_FragCoord origin is upper left
Name 30 "tbufName2" Name 30 "tbufName2"
MemberName 30(tbufName2) 0 "v1PostLayout" MemberName 30(tbufName2) 0 "v1PostLayout"
Name 32 "" Name 32 ""
Name 38 "specConst"
MemberDecorate 14(tbufName) 0 Offset 16 MemberDecorate 14(tbufName) 0 Offset 16
Decorate 14(tbufName) BufferBlock Decorate 14(tbufName) BufferBlock
Decorate 16 DescriptorSet 3 Decorate 16 DescriptorSet 3
@ -97,7 +98,7 @@ gl_FragCoord origin is upper left
Decorate 30(tbufName2) BufferBlock Decorate 30(tbufName2) BufferBlock
Decorate 32 DescriptorSet 4 Decorate 32 DescriptorSet 4
Decorate 32 Binding 7 Decorate 32 Binding 7
Decorate 38 SpecId 17 Decorate 38(specConst) SpecId 17
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -117,7 +118,7 @@ gl_FragCoord origin is upper left
30(tbufName2): TypeStruct 7(fvec4) 30(tbufName2): TypeStruct 7(fvec4)
31: TypePointer Uniform 30(tbufName2) 31: TypePointer Uniform 30(tbufName2)
32: 31(ptr) Variable Uniform 32: 31(ptr) Variable Uniform
38: 17(int) SpecConstant 10 38(specConst): 17(int) SpecConstant 10
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return

View File

@ -105,6 +105,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberName 523(B2) 6 "u" MemberName 523(B2) 6 "u"
MemberName 523(B2) 7 "v" MemberName 523(B2) 7 "v"
Name 525 "" Name 525 ""
Name 526 "sf16"
Name 527 "sf"
Name 528 "sd"
Decorate 512 ArrayStride 16 Decorate 512 ArrayStride 16
Decorate 513 ArrayStride 32 Decorate 513 ArrayStride 32
MemberDecorate 514(S) 0 Offset 0 MemberDecorate 514(S) 0 Offset 0
@ -145,9 +148,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberDecorate 523(B2) 7 Offset 72 MemberDecorate 523(B2) 7 Offset 72
Decorate 523(B2) BufferBlock Decorate 523(B2) BufferBlock
Decorate 525 DescriptorSet 0 Decorate 525 DescriptorSet 0
Decorate 526 SpecId 100 Decorate 526(sf16) SpecId 100
Decorate 527 SpecId 101 Decorate 527(sf) SpecId 101
Decorate 528 SpecId 102 Decorate 528(sd) SpecId 102
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
28: TypeFloat 16 28: TypeFloat 16
@ -223,14 +226,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre
523(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522 523(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522
524: TypePointer Uniform 523(B2) 524: TypePointer Uniform 523(B2)
525: 524(ptr) Variable Uniform 525: 524(ptr) Variable Uniform
526: 28(float) SpecConstant 12288 526(sf16): 28(float) SpecConstant 12288
527: 164(float) SpecConstant 1048576000 527(sf): 164(float) SpecConstant 1048576000
528: 172(float) SpecConstant 0 1071644672 528(sd): 172(float) SpecConstant 0 1071644672
529: 164(float) SpecConstantOp 115 526 529: 164(float) SpecConstantOp 115 526(sf16)
530: 164(float) SpecConstantOp 115 526 530: 164(float) SpecConstantOp 115 526(sf16)
531: 172(float) SpecConstantOp 115 530 531: 172(float) SpecConstantOp 115 530
532: 28(float) SpecConstantOp 115 527 532: 28(float) SpecConstantOp 115 527(sf)
533: 28(float) SpecConstantOp 115 528 533: 28(float) SpecConstantOp 115 528(sd)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return

View File

@ -51,6 +51,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberName 454(Block) 0 "i64v" MemberName 454(Block) 0 "i64v"
MemberName 454(Block) 1 "u64" MemberName 454(Block) 1 "u64"
Name 456 "block" Name 456 "block"
Name 457 "si64"
Name 458 "su64"
Name 459 "si"
Name 460 "su"
Name 461 "sb"
MemberDecorate 28(Uniforms) 0 Offset 0 MemberDecorate 28(Uniforms) 0 Offset 0
Decorate 28(Uniforms) Block Decorate 28(Uniforms) Block
Decorate 30 DescriptorSet 0 Decorate 30 DescriptorSet 0
@ -60,11 +65,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Decorate 454(Block) Block Decorate 454(Block) Block
Decorate 456(block) DescriptorSet 0 Decorate 456(block) DescriptorSet 0
Decorate 456(block) Binding 1 Decorate 456(block) Binding 1
Decorate 457 SpecId 100 Decorate 457(si64) SpecId 100
Decorate 458 SpecId 101 Decorate 458(su64) SpecId 101
Decorate 459 SpecId 102 Decorate 459(si) SpecId 102
Decorate 460 SpecId 103 Decorate 460(su) SpecId 103
Decorate 461 SpecId 104 Decorate 461(sb) SpecId 104
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 64 0 14: TypeInt 64 0
@ -148,28 +153,28 @@ Warning, version 450 is not yet complete; most version-specific features are pre
454(Block): TypeStruct 136(ivec3) 14(int) 454(Block): TypeStruct 136(ivec3) 14(int)
455: TypePointer Uniform 454(Block) 455: TypePointer Uniform 454(Block)
456(block): 455(ptr) Variable Uniform 456(block): 455(ptr) Variable Uniform
457: 18(int) SpecConstant 4294967286 4294967295 457(si64): 18(int) SpecConstant 4294967286 4294967295
458: 14(int) SpecConstant 20 0 458(su64): 14(int) SpecConstant 20 0
459: 31(int) SpecConstant 4294967291 459(si): 31(int) SpecConstant 4294967291
460: 21(int) SpecConstant 4 460(su): 21(int) SpecConstant 4
461: 55(bool) SpecConstantTrue 461(sb): 55(bool) SpecConstantTrue
462: 55(bool) SpecConstantOp 171 457 69 462: 55(bool) SpecConstantOp 171 457(si64) 69
463: 55(bool) SpecConstantOp 171 458 69 463: 55(bool) SpecConstantOp 171 458(su64) 69
464: 18(int) SpecConstantOp 169 461 61 60 464: 18(int) SpecConstantOp 169 461(sb) 61 60
465: 14(int) SpecConstantOp 169 461 70 69 465: 14(int) SpecConstantOp 169 461(sb) 70 69
466: 31(int) SpecConstantOp 114 457 466: 31(int) SpecConstantOp 114 457(si64)
467: 18(int) SpecConstantOp 114 459 467: 18(int) SpecConstantOp 114 459(si)
468: 21(int) SpecConstantOp 113 458 468: 21(int) SpecConstantOp 113 458(su64)
469: 14(int) SpecConstantOp 113 460 469: 14(int) SpecConstantOp 113 460(su)
470: 18(int) SpecConstantOp 128 458 69 470: 18(int) SpecConstantOp 128 458(su64) 69
471: 14(int) SpecConstantOp 128 457 69 471: 14(int) SpecConstantOp 128 457(si64) 69
472: 21(int) SpecConstantOp 113 458 472: 21(int) SpecConstantOp 113 458(su64)
473: 31(int) SpecConstantOp 128 472 219 473: 31(int) SpecConstantOp 128 472 219
474: 18(int) SpecConstantOp 114 459 474: 18(int) SpecConstantOp 114 459(si)
475: 14(int) SpecConstantOp 128 474 69 475: 14(int) SpecConstantOp 128 474 69
476: 31(int) SpecConstantOp 114 457 476: 31(int) SpecConstantOp 114 457(si64)
477: 21(int) SpecConstantOp 128 476 219 477: 21(int) SpecConstantOp 128 476 219
478: 14(int) SpecConstantOp 113 460 478: 14(int) SpecConstantOp 113 460(su)
479: 18(int) SpecConstantOp 128 478 69 479: 18(int) SpecConstantOp 128 478 69
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label

View File

@ -17,6 +17,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" MemberName 11(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 11(gl_PerVertex) 3 "gl_CullDistance" MemberName 11(gl_PerVertex) 3 "gl_CullDistance"
Name 13 "" Name 13 ""
Name 18 "a"
Name 25 "gl_VertexID" Name 25 "gl_VertexID"
Name 26 "gl_InstanceID" Name 26 "gl_InstanceID"
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
@ -24,7 +25,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 11(gl_PerVertex) Block Decorate 11(gl_PerVertex) Block
Decorate 18 SpecId 11 Decorate 18(a) SpecId 11
Decorate 25(gl_VertexID) BuiltIn VertexId Decorate 25(gl_VertexID) BuiltIn VertexId
Decorate 26(gl_InstanceID) BuiltIn InstanceId Decorate 26(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid 2: TypeVoid
@ -41,14 +42,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre
15: 14(int) Constant 0 15: 14(int) Constant 0
16: 6(float) Constant 1065353216 16: 6(float) Constant 1065353216
17: 7(fvec4) ConstantComposite 16 16 16 16 17: 7(fvec4) ConstantComposite 16 16 16 16
18: 14(int) SpecConstant 8 18(a): 14(int) SpecConstant 8
22: TypePointer Output 7(fvec4) 22: TypePointer Output 7(fvec4)
24: TypePointer Input 14(int) 24: TypePointer Input 14(int)
25(gl_VertexID): 24(ptr) Variable Input 25(gl_VertexID): 24(ptr) Variable Input
26(gl_InstanceID): 24(ptr) Variable Input 26(gl_InstanceID): 24(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
19: 6(float) ConvertSToF 18 19: 6(float) ConvertSToF 18(a)
20: 7(fvec4) CompositeConstruct 19 19 19 19 20: 7(fvec4) CompositeConstruct 19 19 19 19
21: 7(fvec4) FDiv 17 20 21: 7(fvec4) FDiv 17 20
23: 22(ptr) AccessChain 13 15 23: 22(ptr) AccessChain 13 15

View File

@ -12,33 +12,44 @@ Warning, version 400 is not yet complete; most version-specific features are pre
EntryPoint Vertex 4 "main" 20 22 28 53 EntryPoint Vertex 4 "main" 20 22 28 53
Source GLSL 400 Source GLSL 400
Name 4 "main" Name 4 "main"
Name 9 "arraySize"
Name 14 "foo(vf4[s1516];" Name 14 "foo(vf4[s1516];"
Name 13 "p" Name 13 "p"
Name 17 "builtin_spec_constant(" Name 17 "builtin_spec_constant("
Name 20 "color" Name 20 "color"
Name 22 "ucol" Name 22 "ucol"
Name 28 "size" Name 28 "size"
Name 30 "spBool"
Name 34 "scale"
Name 39 "spDouble"
Name 40 "spFloat"
Name 47 "param" Name 47 "param"
Name 50 "dupArraySize"
Name 53 "dupUcol" Name 53 "dupUcol"
Name 60 "spDupBool"
Name 63 "dupScale"
Name 67 "spDupDouble"
Name 68 "spDupFloat"
Name 76 "result" Name 76 "result"
Decorate 9 SpecId 16 Name 77 "gl_MaxImageUnits"
Decorate 30 SpecId 17 Decorate 9(arraySize) SpecId 16
Decorate 34 SpecId 22 Decorate 30(spBool) SpecId 17
Decorate 39 SpecId 19 Decorate 34(scale) SpecId 22
Decorate 40 SpecId 18 Decorate 39(spDouble) SpecId 19
Decorate 50 SpecId 116 Decorate 40(spFloat) SpecId 18
Decorate 60 SpecId 117 Decorate 50(dupArraySize) SpecId 116
Decorate 63 SpecId 122 Decorate 60(spDupBool) SpecId 117
Decorate 67 SpecId 119 Decorate 63(dupScale) SpecId 122
Decorate 68 SpecId 118 Decorate 67(spDupDouble) SpecId 119
Decorate 77 SpecId 24 Decorate 68(spDupFloat) SpecId 118
Decorate 77(gl_MaxImageUnits) SpecId 24
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
8: TypeInt 32 1 8: TypeInt 32 1
9: 8(int) SpecConstant 5 9(arraySize): 8(int) SpecConstant 5
10: TypeArray 7(fvec4) 9 10: TypeArray 7(fvec4) 9(arraySize)
11: TypePointer Function 10 11: TypePointer Function 10
12: TypeFunction 2 11(ptr) 12: TypeFunction 2 11(ptr)
16: TypeFunction 8(int) 16: TypeFunction 8(int)
@ -51,41 +62,41 @@ Warning, version 400 is not yet complete; most version-specific features are pre
27: TypePointer Output 8(int) 27: TypePointer Output 8(int)
28(size): 27(ptr) Variable Output 28(size): 27(ptr) Variable Output
29: TypeBool 29: TypeBool
30: 29(bool) SpecConstantTrue 30(spBool): 29(bool) SpecConstantTrue
33: TypeInt 32 0 33: TypeInt 32 0
34: 33(int) SpecConstant 2 34(scale): 33(int) SpecConstant 2
38: TypeFloat 64 38: TypeFloat 64
39: 38(float) SpecConstant 1413754136 1074340347 39(spDouble): 38(float) SpecConstant 1413754136 1074340347
40: 6(float) SpecConstant 1078523331 40(spFloat): 6(float) SpecConstant 1078523331
41: 38(float) SpecConstantOp 115 40 41: 38(float) SpecConstantOp 115 40(spFloat)
50: 8(int) SpecConstant 12 50(dupArraySize): 8(int) SpecConstant 12
51: TypeArray 7(fvec4) 50 51: TypeArray 7(fvec4) 50(dupArraySize)
52: TypePointer Input 51 52: TypePointer Input 51
53(dupUcol): 52(ptr) Variable Input 53(dupUcol): 52(ptr) Variable Input
60: 29(bool) SpecConstantTrue 60(spDupBool): 29(bool) SpecConstantTrue
63: 33(int) SpecConstant 2 63(dupScale): 33(int) SpecConstant 2
67: 38(float) SpecConstant 1413754136 1074340347 67(spDupDouble): 38(float) SpecConstant 1413754136 1074340347
68: 6(float) SpecConstant 1078523331 68(spDupFloat): 6(float) SpecConstant 1078523331
69: 38(float) SpecConstantOp 115 68 69: 38(float) SpecConstantOp 115 68(spDupFloat)
75: TypePointer Function 8(int) 75: TypePointer Function 8(int)
77: 8(int) SpecConstant 8 77(gl_MaxImageUnits): 8(int) SpecConstant 8
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
47(param): 11(ptr) Variable Function 47(param): 11(ptr) Variable Function
25: 24(ptr) AccessChain 22(ucol) 23 25: 24(ptr) AccessChain 22(ucol) 23
26: 7(fvec4) Load 25 26: 7(fvec4) Load 25
Store 20(color) 26 Store 20(color) 26
Store 28(size) 9 Store 28(size) 9(arraySize)
SelectionMerge 32 None SelectionMerge 32 None
BranchConditional 30 31 32 BranchConditional 30(spBool) 31 32
31: Label 31: Label
35: 6(float) ConvertUToF 34 35: 6(float) ConvertUToF 34(scale)
36: 7(fvec4) Load 20(color) 36: 7(fvec4) Load 20(color)
37: 7(fvec4) VectorTimesScalar 36 35 37: 7(fvec4) VectorTimesScalar 36 35
Store 20(color) 37 Store 20(color) 37
Branch 32 Branch 32
32: Label 32: Label
42: 38(float) FDiv 39 41 42: 38(float) FDiv 39(spDouble) 41
43: 6(float) FConvert 42 43: 6(float) FConvert 42
44: 7(fvec4) Load 20(color) 44: 7(fvec4) Load 20(color)
45: 7(fvec4) CompositeConstruct 43 43 43 43 45: 7(fvec4) CompositeConstruct 43 43 43 43
@ -105,18 +116,18 @@ Warning, version 400 is not yet complete; most version-specific features are pre
57: 7(fvec4) FAdd 56 55 57: 7(fvec4) FAdd 56 55
Store 20(color) 57 Store 20(color) 57
58: 8(int) Load 28(size) 58: 8(int) Load 28(size)
59: 8(int) IAdd 58 50 59: 8(int) IAdd 58 50(dupArraySize)
Store 28(size) 59 Store 28(size) 59
SelectionMerge 62 None SelectionMerge 62 None
BranchConditional 60 61 62 BranchConditional 60(spDupBool) 61 62
61: Label 61: Label
64: 6(float) ConvertUToF 63 64: 6(float) ConvertUToF 63(dupScale)
65: 7(fvec4) Load 20(color) 65: 7(fvec4) Load 20(color)
66: 7(fvec4) VectorTimesScalar 65 64 66: 7(fvec4) VectorTimesScalar 65 64
Store 20(color) 66 Store 20(color) 66
Branch 62 Branch 62
62: Label 62: Label
70: 38(float) FDiv 67 69 70: 38(float) FDiv 67(spDupDouble) 69
71: 6(float) FConvert 70 71: 6(float) FConvert 70
72: 7(fvec4) Load 20(color) 72: 7(fvec4) Load 20(color)
73: 7(fvec4) CompositeConstruct 71 71 71 71 73: 7(fvec4) CompositeConstruct 71 71 71 71
@ -127,7 +138,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre
17(builtin_spec_constant(): 8(int) Function None 16 17(builtin_spec_constant(): 8(int) Function None 16
18: Label 18: Label
76(result): 75(ptr) Variable Function 76(result): 75(ptr) Variable Function
Store 76(result) 77 Store 76(result) 77(gl_MaxImageUnits)
78: 8(int) Load 76(result) 78: 8(int) Load 76(result)
ReturnValue 78 ReturnValue 78
FunctionEnd FunctionEnd

View File

@ -18,29 +18,33 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Name 12 "refer_composite_bracket_dereference(" Name 12 "refer_composite_bracket_dereference("
Name 16 "refer_spec_const_array_length(" Name 16 "refer_spec_const_array_length("
Name 18 "declare_spec_const_in_func(" Name 18 "declare_spec_const_in_func("
Name 21 "spec_bool"
Name 27 "color" Name 27 "color"
Name 28 "spec_int"
Name 33 "len" Name 33 "len"
Name 37 "spec_float"
Name 39 "spec_double"
Name 42 "global_vec4_array_with_spec_length" Name 42 "global_vec4_array_with_spec_length"
Decorate 21 SpecId 203 Decorate 21(spec_bool) SpecId 203
Decorate 28 SpecId 200 Decorate 28(spec_int) SpecId 200
Decorate 37 SpecId 201 Decorate 37(spec_float) SpecId 201
Decorate 39 SpecId 202 Decorate 39(spec_double) SpecId 202
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 32 1 14: TypeInt 32 1
15: TypeFunction 14(int) 15: TypeFunction 14(int)
20: TypeBool 20: TypeBool
21: 20(bool) SpecConstantTrue 21(spec_bool): 20(bool) SpecConstantTrue
24: TypeFloat 32 24: TypeFloat 32
25: TypeVector 24(float) 4 25: TypeVector 24(float) 4
26: TypePointer Output 25(fvec4) 26: TypePointer Output 25(fvec4)
27(color): 26(ptr) Variable Output 27(color): 26(ptr) Variable Output
28: 14(int) SpecConstant 3 28(spec_int): 14(int) SpecConstant 3
32: TypePointer Function 14(int) 32: TypePointer Function 14(int)
37: 24(float) SpecConstant 1078523331 37(spec_float): 24(float) SpecConstant 1078523331
38: TypeFloat 64 38: TypeFloat 64
39: 38(float) SpecConstant 1413754136 1074340347 39(spec_double): 38(float) SpecConstant 1413754136 1074340347
40: TypeArray 25(fvec4) 28 40: TypeArray 25(fvec4) 28(spec_int)
41: TypePointer Input 40 41: TypePointer Input 40
42(global_vec4_array_with_spec_length): 41(ptr) Variable Input 42(global_vec4_array_with_spec_length): 41(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
@ -50,9 +54,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
6(refer_primary_spec_const(): 2 Function None 3 6(refer_primary_spec_const(): 2 Function None 3
7: Label 7: Label
SelectionMerge 23 None SelectionMerge 23 None
BranchConditional 21 22 23 BranchConditional 21(spec_bool) 22 23
22: Label 22: Label
29: 24(float) ConvertSToF 28 29: 24(float) ConvertSToF 28(spec_int)
30: 25(fvec4) Load 27(color) 30: 25(fvec4) Load 27(color)
31: 25(fvec4) VectorTimesScalar 30 29 31: 25(fvec4) VectorTimesScalar 30 29
Store 27(color) 31 Store 27(color) 31
@ -75,7 +79,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
16(refer_spec_const_array_length(): 14(int) Function None 15 16(refer_spec_const_array_length(): 14(int) Function None 15
17: Label 17: Label
33(len): 32(ptr) Variable Function 33(len): 32(ptr) Variable Function
Store 33(len) 28 Store 33(len) 28(spec_int)
34: 14(int) Load 33(len) 34: 14(int) Load 33(len)
ReturnValue 34 ReturnValue 34
FunctionEnd FunctionEnd

View File

@ -14,85 +14,90 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Name 4 "main" Name 4 "main"
Name 8 "non_const_array_size_from_spec_const(" Name 8 "non_const_array_size_from_spec_const("
Name 11 "i" Name 11 "i"
Name 19 "sp_int"
Name 27 "array" Name 27 "array"
Decorate 19 SpecId 201 Name 40 "sp_float"
Decorate 40 SpecId 200 Name 42 "sp_uint"
Decorate 42 SpecId 202 Name 43 "sp_sint"
Decorate 43 SpecId 203 Name 45 "sp_double"
Decorate 45 SpecId 204 Decorate 19(sp_int) SpecId 201
Decorate 40(sp_float) SpecId 200
Decorate 42(sp_uint) SpecId 202
Decorate 43(sp_sint) SpecId 203
Decorate 45(sp_double) SpecId 204
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
7: TypeFunction 6(int) 7: TypeFunction 6(int)
10: TypePointer Function 6(int) 10: TypePointer Function 6(int)
12: 6(int) Constant 0 12: 6(int) Constant 0
19: 6(int) SpecConstant 10 19(sp_int): 6(int) SpecConstant 10
20: 6(int) Constant 2 20: 6(int) Constant 2
21: 6(int) SpecConstantOp 128 19 20 21: 6(int) SpecConstantOp 128 19(sp_int) 20
22: TypeBool 22: TypeBool
24: 6(int) SpecConstantOp 128 19 20 24: 6(int) SpecConstantOp 128 19(sp_int) 20
25: TypeArray 6(int) 24 25: TypeArray 6(int) 24
26: TypePointer Function 25 26: TypePointer Function 25
29: 6(int) Constant 1023 29: 6(int) Constant 1023
32: 6(int) Constant 1 32: 6(int) Constant 1
34: 6(int) SpecConstantOp 128 19 32 34: 6(int) SpecConstantOp 128 19(sp_int) 32
39: TypeFloat 32 39: TypeFloat 32
40: 39(float) SpecConstant 1078530010 40(sp_float): 39(float) SpecConstant 1078530010
41: TypeInt 32 0 41: TypeInt 32 0
42: 41(int) SpecConstant 100 42(sp_uint): 41(int) SpecConstant 100
43: 6(int) SpecConstant 4294967286 43(sp_sint): 6(int) SpecConstant 4294967286
44: TypeFloat 64 44: TypeFloat 64
45: 44(float) SpecConstant 2333366019 1074118410 45(sp_double): 44(float) SpecConstant 2333366019 1074118410
46: 39(float) SpecConstantOp 115 45 46: 39(float) SpecConstantOp 115 45(sp_double)
47: 44(float) SpecConstantOp 115 40 47: 44(float) SpecConstantOp 115 40(sp_float)
48: 41(int) Constant 0 48: 41(int) Constant 0
49: 22(bool) SpecConstantOp 171 19 48 49: 22(bool) SpecConstantOp 171 19(sp_int) 48
50: 22(bool) SpecConstantOp 171 42 48 50: 22(bool) SpecConstantOp 171 42(sp_uint) 48
51: 6(int) SpecConstantOp 169 49 32 12 51: 6(int) SpecConstantOp 169 49 32 12
52: 41(int) Constant 1 52: 41(int) Constant 1
53: 41(int) SpecConstantOp 169 49 52 48 53: 41(int) SpecConstantOp 169 49 52 48
54: 41(int) SpecConstantOp 128 43 48 54: 41(int) SpecConstantOp 128 43(sp_sint) 48
55: 6(int) SpecConstantOp 128 42 48 55: 6(int) SpecConstantOp 128 42(sp_uint) 48
56: 6(int) SpecConstantOp 126 19 56: 6(int) SpecConstantOp 126 19(sp_int)
57: 6(int) SpecConstantOp 200 19 57: 6(int) SpecConstantOp 200 19(sp_int)
58: 6(int) SpecConstantOp 128 19 20 58: 6(int) SpecConstantOp 128 19(sp_int) 20
59: 6(int) SpecConstantOp 128 19 20 59: 6(int) SpecConstantOp 128 19(sp_int) 20
60: 6(int) Constant 3 60: 6(int) Constant 3
61: 6(int) SpecConstantOp 130 59 60 61: 6(int) SpecConstantOp 130 59 60
62: 6(int) Constant 4 62: 6(int) Constant 4
63: 6(int) SpecConstantOp 130 58 62 63: 6(int) SpecConstantOp 130 58 62
64: 6(int) SpecConstantOp 132 43 20 64: 6(int) SpecConstantOp 132 43(sp_sint) 20
65: 41(int) Constant 2 65: 41(int) Constant 2
66: 41(int) SpecConstantOp 132 42 65 66: 41(int) SpecConstantOp 132 42(sp_uint) 65
67: 6(int) Constant 5 67: 6(int) Constant 5
68: 6(int) SpecConstantOp 135 64 67 68: 6(int) SpecConstantOp 135 64 67
69: 41(int) Constant 5 69: 41(int) Constant 5
70: 41(int) SpecConstantOp 134 66 69 70: 41(int) SpecConstantOp 134 66 69
71: 6(int) SpecConstantOp 139 43 62 71: 6(int) SpecConstantOp 139 43(sp_sint) 62
72: 41(int) Constant 4 72: 41(int) Constant 4
73: 41(int) SpecConstantOp 137 42 72 73: 41(int) SpecConstantOp 137 42(sp_uint) 72
74: 6(int) SpecConstantOp 132 43 60 74: 6(int) SpecConstantOp 132 43(sp_sint) 60
75: 6(int) SpecConstantOp 135 74 67 75: 6(int) SpecConstantOp 135 74 67
76: 6(int) Constant 10 76: 6(int) Constant 10
77: 6(int) SpecConstantOp 195 43 76 77: 6(int) SpecConstantOp 195 43(sp_sint) 76
78: 6(int) Constant 20 78: 6(int) Constant 20
79: 41(int) SpecConstantOp 194 42 78 79: 41(int) SpecConstantOp 194 42(sp_uint) 78
80: 6(int) SpecConstantOp 196 43 32 80: 6(int) SpecConstantOp 196 43(sp_sint) 32
81: 41(int) SpecConstantOp 196 42 20 81: 41(int) SpecConstantOp 196 42(sp_uint) 20
82: 6(int) Constant 256 82: 6(int) Constant 256
83: 6(int) SpecConstantOp 197 43 82 83: 6(int) SpecConstantOp 197 43(sp_sint) 82
84: 41(int) Constant 512 84: 41(int) Constant 512
85: 41(int) SpecConstantOp 198 42 84 85: 41(int) SpecConstantOp 198 42(sp_uint) 84
86: 22(bool) SpecConstantOp 177 19 43 86: 22(bool) SpecConstantOp 177 19(sp_int) 43(sp_sint)
87: 22(bool) SpecConstantOp 170 42 42 87: 22(bool) SpecConstantOp 170 42(sp_uint) 42(sp_uint)
88: 22(bool) SpecConstantOp 173 19 43 88: 22(bool) SpecConstantOp 173 19(sp_int) 43(sp_sint)
89: 6(int) Constant 30 89: 6(int) Constant 30
90: TypeVector 6(int) 4 90: TypeVector 6(int) 4
91: 90(ivec4) SpecConstantComposite 78 89 19 19 91: 90(ivec4) SpecConstantComposite 78 89 19(sp_int) 19(sp_int)
92: 41(int) Constant 4294967295 92: 41(int) Constant 4294967295
93: 41(int) Constant 4294967294 93: 41(int) Constant 4294967294
94: TypeVector 41(int) 4 94: TypeVector 41(int) 4
95: 94(ivec4) SpecConstantComposite 42 42 92 93 95: 94(ivec4) SpecConstantComposite 42(sp_uint) 42(sp_uint) 92 93
96: TypeVector 22(bool) 4 96: TypeVector 22(bool) 4
97: 94(ivec4) ConstantComposite 48 48 48 48 97: 94(ivec4) ConstantComposite 48 48 48 48
98: 96(bvec4) SpecConstantOp 171 91 97 98: 96(bvec4) SpecConstantOp 171 91 97

View File

@ -269,56 +269,59 @@ Shader version: 450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
Decorate 7 SpecId 200 Name 7 "scf1"
Decorate 11 SpecId 201 Name 11 "scbt"
Decorate 13 SpecId 202 Name 13 "sci2"
Decorate 7(scf1) SpecId 200
Decorate 11(scbt) SpecId 201
Decorate 13(sci2) SpecId 202
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: 6(float) SpecConstant 1065353216 7(scf1): 6(float) SpecConstant 1065353216
8: TypeBool 8: TypeBool
9: 6(float) Constant 0 9: 6(float) Constant 0
11: 8(bool) SpecConstantTrue 11(scbt): 8(bool) SpecConstantTrue
12: TypeInt 32 1 12: TypeInt 32 1
13: 12(int) SpecConstant 2 13(sci2): 12(int) SpecConstant 2
14: TypeInt 32 0 14: TypeInt 32 0
15: 14(int) Constant 0 15: 14(int) Constant 0
16: 8(bool) SpecConstantOp 171 13 15 16: 8(bool) SpecConstantOp 171 13(sci2) 15
17: 6(float) Constant 1065353216 17: 6(float) Constant 1065353216
21: 12(int) Constant 0 21: 12(int) Constant 0
22: 12(int) Constant 1 22: 12(int) Constant 1
23: 12(int) SpecConstantOp 169 11 22 21 23: 12(int) SpecConstantOp 169 11(scbt) 22 21
25: 8(bool) SpecConstantOp 166 11 11 25: 8(bool) SpecConstantOp 166 11(scbt) 11(scbt)
26: 12(int) SpecConstantOp 132 13 13 26: 12(int) SpecConstantOp 132 13(sci2) 13(sci2)
30: 8(bool) SpecConstantOp 168 11 30: 8(bool) SpecConstantOp 168 11(scbt)
31: 12(int) SpecConstantOp 126 13 31: 12(int) SpecConstantOp 126 13(sci2)
33: 8(bool) SpecConstantOp 173 13 13 33: 8(bool) SpecConstantOp 173 13(sci2) 13(sci2)
35: 8(bool) SpecConstantOp 165 11 11 35: 8(bool) SpecConstantOp 165 11(scbt) 11(scbt)
36: 8(bool) SpecConstantOp 171 13 13 36: 8(bool) SpecConstantOp 171 13(sci2) 13(sci2)
37: TypeVector 12(int) 2 37: TypeVector 12(int) 2
38: 37(ivec2) SpecConstantComposite 13 13 38: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2)
39: 37(ivec2) SpecConstantComposite 13 13 39: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2)
40: 37(ivec2) SpecConstantComposite 13 13 40: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2)
41: 14(int) Constant 2 41: 14(int) Constant 2
42: TypeArray 37(ivec2) 41 42: TypeArray 37(ivec2) 41
44: TypeVector 6(float) 2 44: TypeVector 6(float) 2
48: TypeArray 44(fvec2) 41 48: TypeArray 44(fvec2) 41
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10: 8(bool) FOrdNotEqual 7 9 10: 8(bool) FOrdNotEqual 7(scf1) 9
18: 6(float) Select 11 17 9 18: 6(float) Select 11(scbt) 17 9
19: 6(float) ConvertSToF 13 19: 6(float) ConvertSToF 13(sci2)
20: 12(int) ConvertFToS 7 20: 12(int) ConvertFToS 7(scf1)
24: 6(float) FMul 7 7 24: 6(float) FMul 7(scf1) 7(scf1)
27: 6(float) ConvertSToF 13 27: 6(float) ConvertSToF 13(sci2)
28: 6(float) FAdd 7 27 28: 6(float) FAdd 7(scf1) 27
29: 6(float) FNegate 7 29: 6(float) FNegate 7(scf1)
32: 8(bool) FOrdGreaterThan 7 7 32: 8(bool) FOrdGreaterThan 7(scf1) 7(scf1)
34: 8(bool) FOrdNotEqual 7 7 34: 8(bool) FOrdNotEqual 7(scf1) 7(scf1)
43: 42 CompositeConstruct 39 40 43: 42 CompositeConstruct 39 40
45: 44(fvec2) CompositeConstruct 7 7 45: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1)
46: 44(fvec2) CompositeConstruct 7 7 46: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1)
47: 44(fvec2) CompositeConstruct 7 7 47: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1)
49: 48 CompositeConstruct 46 47 49: 48 CompositeConstruct 46 47
Return Return
FunctionEnd FunctionEnd