mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-24 19:59:40 +00:00
ed15ef1a5b
For opaque types such as samplers, images, and atomic counters, we want to
reference the actual object in the child function. For a long time, we
used a shadow variable and made a copy of the image/sampler. In 76d0ac1a
,
this was changed to not shadow samplers. However, this didn't cover all
opaque types and it also didn't get the pointer storage classes right.
This commit fixes both of these issues.
Fixes #324
119 lines
5.9 KiB
Plaintext
119 lines
5.9 KiB
Plaintext
spv.subpass.frag
|
|
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 67
|
|
|
|
Capability Shader
|
|
Capability InputAttachment
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 15 27 53
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 400
|
|
Name 4 "main"
|
|
Name 11 "foo(iIPM1;"
|
|
Name 10 "sb"
|
|
Name 15 "icolor"
|
|
Name 27 "color"
|
|
Name 30 "sub"
|
|
Name 35 "subMS"
|
|
Name 42 "isub"
|
|
Name 45 "isubMS"
|
|
Name 53 "ucolor"
|
|
Name 56 "usub"
|
|
Name 61 "usubMS"
|
|
Decorate 30(sub) DescriptorSet 0
|
|
Decorate 30(sub) InputAttachmentIndex 1
|
|
Decorate 35(subMS) DescriptorSet 0
|
|
Decorate 35(subMS) InputAttachmentIndex 2
|
|
Decorate 42(isub) DescriptorSet 0
|
|
Decorate 42(isub) InputAttachmentIndex 3
|
|
Decorate 45(isubMS) DescriptorSet 0
|
|
Decorate 45(isubMS) InputAttachmentIndex 4
|
|
Decorate 56(usub) DescriptorSet 0
|
|
Decorate 56(usub) InputAttachmentIndex 5
|
|
Decorate 61(usubMS) DescriptorSet 0
|
|
Decorate 61(usubMS) InputAttachmentIndex 6
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown
|
|
8: TypePointer UniformConstant 7
|
|
9: TypeFunction 2 8(ptr)
|
|
13: TypeVector 6(int) 4
|
|
14: TypePointer Output 13(ivec4)
|
|
15(icolor): 14(ptr) Variable Output
|
|
17: 6(int) Constant 3
|
|
18: 6(int) Constant 0
|
|
19: TypeVector 6(int) 2
|
|
20: 19(ivec2) ConstantComposite 18 18
|
|
24: TypeFloat 32
|
|
25: TypeVector 24(float) 4
|
|
26: TypePointer Output 25(fvec4)
|
|
27(color): 26(ptr) Variable Output
|
|
28: TypeImage 24(float) SubpassData nonsampled format:Unknown
|
|
29: TypePointer UniformConstant 28
|
|
30(sub): 29(ptr) Variable UniformConstant
|
|
33: TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown
|
|
34: TypePointer UniformConstant 33
|
|
35(subMS): 34(ptr) Variable UniformConstant
|
|
40: TypeImage 6(int) SubpassData nonsampled format:Unknown
|
|
41: TypePointer UniformConstant 40
|
|
42(isub): 41(ptr) Variable UniformConstant
|
|
45(isubMS): 8(ptr) Variable UniformConstant
|
|
50: TypeInt 32 0
|
|
51: TypeVector 50(int) 4
|
|
52: TypePointer Output 51(ivec4)
|
|
53(ucolor): 52(ptr) Variable Output
|
|
54: TypeImage 50(int) SubpassData nonsampled format:Unknown
|
|
55: TypePointer UniformConstant 54
|
|
56(usub): 55(ptr) Variable UniformConstant
|
|
59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown
|
|
60: TypePointer UniformConstant 59
|
|
61(usubMS): 60(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
31: 28 Load 30(sub)
|
|
32: 25(fvec4) ImageRead 31 20
|
|
Store 27(color) 32
|
|
36: 33 Load 35(subMS)
|
|
37: 25(fvec4) ImageRead 36 20 Sample 17
|
|
38: 25(fvec4) Load 27(color)
|
|
39: 25(fvec4) FAdd 38 37
|
|
Store 27(color) 39
|
|
43: 40 Load 42(isub)
|
|
44: 13(ivec4) ImageRead 43 20
|
|
Store 15(icolor) 44
|
|
46: 7 Load 45(isubMS)
|
|
47: 13(ivec4) ImageRead 46 20 Sample 17
|
|
48: 13(ivec4) Load 15(icolor)
|
|
49: 13(ivec4) IAdd 48 47
|
|
Store 15(icolor) 49
|
|
57: 54 Load 56(usub)
|
|
58: 51(ivec4) ImageRead 57 20
|
|
Store 53(ucolor) 58
|
|
62: 59 Load 61(usubMS)
|
|
63: 51(ivec4) ImageRead 62 20 Sample 17
|
|
64: 51(ivec4) Load 53(ucolor)
|
|
65: 51(ivec4) IAdd 64 63
|
|
Store 53(ucolor) 65
|
|
66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS)
|
|
Return
|
|
FunctionEnd
|
|
11(foo(iIPM1;): 2 Function None 9
|
|
10(sb): 8(ptr) FunctionParameter
|
|
12: Label
|
|
16: 7 Load 10(sb)
|
|
21: 13(ivec4) ImageRead 16 20 Sample 17
|
|
22: 13(ivec4) Load 15(icolor)
|
|
23: 13(ivec4) IAdd 22 21
|
|
Store 15(icolor) 23
|
|
Return
|
|
FunctionEnd
|