glslang/Test/baseResults/hlsl.multiReturn.frag.out
Steven Perron 33c7e30860
Don't emit duplicate decorations. (#3635)
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
2024-06-28 19:16:59 -04:00

130 lines
6.3 KiB
Plaintext

hlsl.multiReturn.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12 Function Definition: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m})
0:12 Function Parameters:
0:? Sequence
0:13 Branch: Return with expression
0:13 s: direct index for structure (layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m})
0:13 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s})
0:13 Constant:
0:13 0 (const uint)
0:17 Function Definition: @main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:18 Function Call: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m})
0:17 Function Definition: main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:17 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s})
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12 Function Definition: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m})
0:12 Function Parameters:
0:? Sequence
0:13 Branch: Return with expression
0:13 s: direct index for structure (layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m})
0:13 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s})
0:13 Constant:
0:13 0 (const uint)
0:17 Function Definition: @main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:18 Function Call: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m})
0:17 Function Definition: main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:17 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s})
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 42
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 9 "S"
MemberName 9(S) 0 "f"
MemberName 9(S) 1 "v"
MemberName 9(S) 2 "m"
Name 11 "foo("
Name 13 "@main("
Name 15 "S"
MemberName 15(S) 0 "f"
MemberName 15(S) 1 "v"
MemberName 15(S) 2 "m"
Name 16 "bufName"
MemberName 16(bufName) 0 "s"
Name 18 ""
MemberDecorate 15(S) 0 Offset 0
MemberDecorate 15(S) 1 Offset 4
MemberDecorate 15(S) 2 RowMajor
MemberDecorate 15(S) 2 MatrixStride 16
MemberDecorate 15(S) 2 Offset 16
Decorate 16(bufName) Block
MemberDecorate 16(bufName) 0 Offset 0
Decorate 18 Binding 0
Decorate 18 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 3
8: TypeMatrix 7(fvec3) 3
9(S): TypeStruct 6(float) 7(fvec3) 8
10: TypeFunction 9(S)
15(S): TypeStruct 6(float) 7(fvec3) 8
16(bufName): TypeStruct 15(S)
17: TypePointer Uniform 16(bufName)
18: 17(ptr) Variable Uniform
19: TypeInt 32 1
20: 19(int) Constant 0
21: TypePointer Uniform 15(S)
24: TypePointer Function 9(S)
27: TypePointer Function 6(float)
30: 19(int) Constant 1
31: TypePointer Function 7(fvec3)
34: 19(int) Constant 2
35: TypePointer Function 8
4(main): 2 Function None 3
5: Label
41: 2 FunctionCall 13(@main()
Return
FunctionEnd
11(foo(): 9(S) Function None 10
12: Label
25: 24(ptr) Variable Function
22: 21(ptr) AccessChain 18 20
23: 15(S) Load 22
26: 6(float) CompositeExtract 23 0
28: 27(ptr) AccessChain 25 20
Store 28 26
29: 7(fvec3) CompositeExtract 23 1
32: 31(ptr) AccessChain 25 30
Store 32 29
33: 8 CompositeExtract 23 2
36: 35(ptr) AccessChain 25 34
Store 36 33
37: 9(S) Load 25
ReturnValue 37
FunctionEnd
13(@main(): 2 Function None 3
14: Label
40: 9(S) FunctionCall 11(foo()
Return
FunctionEnd