mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
33c7e30860
It is invalid if the same decoration is applied to the same id multiple times. This adds a check before adding a decoration that the decoration is not already in the list. If it is, then the duplicate is not added. Fixes #3627
245 lines
14 KiB
Plaintext
245 lines
14 KiB
Plaintext
hlsl.constantbuffer.frag
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:20 Function Definition: @main( ( temp 4-component vector of float)
|
|
0:20 Function Parameters:
|
|
0:? Sequence
|
|
0:21 Test condition and select ( temp void)
|
|
0:21 Condition
|
|
0:21 x: direct index for structure (layout( row_major std140) uniform bool)
|
|
0:21 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:21 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:21 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:21 Constant:
|
|
0:21 1 (const int)
|
|
0:21 Constant:
|
|
0:21 2 (const int)
|
|
0:21 Constant:
|
|
0:21 0 (const int)
|
|
0:21 true case
|
|
0:22 Branch: Return with expression
|
|
0:22 add ( temp 4-component vector of float)
|
|
0:22 add ( temp 4-component vector of float)
|
|
0:22 x: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
|
|
0:22 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:22 y: direct index for structure (layout( row_major std140) uniform float)
|
|
0:22 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:22 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 Convert int to float ( temp float)
|
|
0:22 c1: direct index for structure (layout( row_major std140) uniform int)
|
|
0:22 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1})
|
|
0:22 Constant:
|
|
0:22 0 (const uint)
|
|
0:21 false case
|
|
0:24 Branch: Return with expression
|
|
0:24 Construct vec4 ( temp 4-component vector of float)
|
|
0:24 y: direct index for structure (layout( row_major std140) uniform float)
|
|
0:24 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:24 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:24 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:24 Constant:
|
|
0:24 1 (const int)
|
|
0:24 Constant:
|
|
0:24 3 (const int)
|
|
0:24 Constant:
|
|
0:24 1 (const int)
|
|
0:20 Function Definition: main( ( temp void)
|
|
0:20 Function Parameters:
|
|
0:? Sequence
|
|
0:20 move second child to first child ( temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:20 Function Call: @main( ( temp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x})
|
|
0:? 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:? 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1})
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:20 Function Definition: @main( ( temp 4-component vector of float)
|
|
0:20 Function Parameters:
|
|
0:? Sequence
|
|
0:21 Test condition and select ( temp void)
|
|
0:21 Condition
|
|
0:21 x: direct index for structure (layout( row_major std140) uniform bool)
|
|
0:21 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:21 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:21 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:21 Constant:
|
|
0:21 1 (const int)
|
|
0:21 Constant:
|
|
0:21 2 (const int)
|
|
0:21 Constant:
|
|
0:21 0 (const int)
|
|
0:21 true case
|
|
0:22 Branch: Return with expression
|
|
0:22 add ( temp 4-component vector of float)
|
|
0:22 add ( temp 4-component vector of float)
|
|
0:22 x: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
|
|
0:22 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:22 y: direct index for structure (layout( row_major std140) uniform float)
|
|
0:22 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:22 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 Convert int to float ( temp float)
|
|
0:22 c1: direct index for structure (layout( row_major std140) uniform int)
|
|
0:22 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1})
|
|
0:22 Constant:
|
|
0:22 0 (const uint)
|
|
0:21 false case
|
|
0:24 Branch: Return with expression
|
|
0:24 Construct vec4 ( temp 4-component vector of float)
|
|
0:24 y: direct index for structure (layout( row_major std140) uniform float)
|
|
0:24 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:24 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:24 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:24 Constant:
|
|
0:24 1 (const int)
|
|
0:24 Constant:
|
|
0:24 3 (const int)
|
|
0:24 Constant:
|
|
0:24 1 (const int)
|
|
0:20 Function Definition: main( ( temp void)
|
|
0:20 Function Parameters:
|
|
0:? Sequence
|
|
0:20 move second child to first child ( temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:20 Function Call: @main( ( temp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x})
|
|
0:? 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:? 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y})
|
|
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1})
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
|
|
Validation failed
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 66
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 64
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source HLSL 500
|
|
Name 4 "main"
|
|
Name 9 "@main("
|
|
Name 12 "cb3"
|
|
MemberName 12(cb3) 0 "x"
|
|
MemberName 12(cb3) 1 "y"
|
|
Name 18 "cb3"
|
|
Name 31 "cb1"
|
|
MemberName 31(cb1) 0 "x"
|
|
Name 33 "cb1"
|
|
Name 40 "cb2"
|
|
Name 46 "cbuff"
|
|
MemberName 46(cbuff) 0 "c1"
|
|
Name 48 ""
|
|
Name 64 "@entryPointOutput"
|
|
Decorate 12(cb3) Block
|
|
MemberDecorate 12(cb3) 0 Offset 0
|
|
MemberDecorate 12(cb3) 1 Offset 4
|
|
Decorate 18(cb3) Binding 1
|
|
Decorate 18(cb3) DescriptorSet 0
|
|
Decorate 31(cb1) Block
|
|
MemberDecorate 31(cb1) 0 Offset 0
|
|
Decorate 33(cb1) Binding 12
|
|
Decorate 33(cb1) DescriptorSet 0
|
|
Decorate 40(cb2) Binding 0
|
|
Decorate 40(cb2) DescriptorSet 0
|
|
Decorate 46(cbuff) Block
|
|
MemberDecorate 46(cbuff) 0 Offset 0
|
|
Decorate 48 Binding 2
|
|
Decorate 48 DescriptorSet 0
|
|
Decorate 64(@entryPointOutput) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypeFunction 7(fvec4)
|
|
11: TypeInt 32 0
|
|
12(cb3): TypeStruct 11(int) 6(float)
|
|
13: 11(int) Constant 4
|
|
14: TypeArray 12(cb3) 13
|
|
15: 11(int) Constant 2
|
|
16: TypeArray 14 15
|
|
17: TypePointer Uniform 16
|
|
18(cb3): 17(ptr) Variable Uniform
|
|
19: TypeInt 32 1
|
|
20: 19(int) Constant 1
|
|
21: 19(int) Constant 2
|
|
22: 19(int) Constant 0
|
|
23: TypePointer Uniform 11(int)
|
|
26: TypeBool
|
|
27: 11(int) Constant 0
|
|
31(cb1): TypeStruct 7(fvec4)
|
|
32: TypePointer Uniform 31(cb1)
|
|
33(cb1): 32(ptr) Variable Uniform
|
|
34: TypePointer Uniform 7(fvec4)
|
|
37: 11(int) Constant 3
|
|
38: TypeArray 12(cb3) 37
|
|
39: TypePointer Uniform 38
|
|
40(cb2): 39(ptr) Variable Uniform
|
|
41: TypePointer Uniform 6(float)
|
|
46(cbuff): TypeStruct 19(int)
|
|
47: TypePointer Uniform 46(cbuff)
|
|
48: 47(ptr) Variable Uniform
|
|
49: TypePointer Uniform 19(int)
|
|
57: 19(int) Constant 3
|
|
63: TypePointer Output 7(fvec4)
|
|
64(@entryPointOutput): 63(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
65: 7(fvec4) FunctionCall 9(@main()
|
|
Store 64(@entryPointOutput) 65
|
|
Return
|
|
FunctionEnd
|
|
9(@main(): 7(fvec4) Function None 8
|
|
10: Label
|
|
24: 23(ptr) AccessChain 18(cb3) 20 21 22
|
|
25: 11(int) Load 24
|
|
28: 26(bool) INotEqual 25 27
|
|
SelectionMerge 30 None
|
|
BranchConditional 28 29 56
|
|
29: Label
|
|
35: 34(ptr) AccessChain 33(cb1) 22
|
|
36: 7(fvec4) Load 35
|
|
42: 41(ptr) AccessChain 40(cb2) 20 20
|
|
43: 6(float) Load 42
|
|
44: 7(fvec4) CompositeConstruct 43 43 43 43
|
|
45: 7(fvec4) FAdd 36 44
|
|
50: 49(ptr) AccessChain 48 22
|
|
51: 19(int) Load 50
|
|
52: 6(float) ConvertSToF 51
|
|
53: 7(fvec4) CompositeConstruct 52 52 52 52
|
|
54: 7(fvec4) FAdd 45 53
|
|
ReturnValue 54
|
|
56: Label
|
|
58: 41(ptr) AccessChain 18(cb3) 20 57 20
|
|
59: 6(float) Load 58
|
|
60: 7(fvec4) CompositeConstruct 59 59 59 59
|
|
ReturnValue 60
|
|
30: Label
|
|
Unreachable
|
|
FunctionEnd
|