HLSL: Pass opaques by local copy, instead of by interface original.
Also, remove assumption that if something is opaque that it must be in the UniformConstant storage class. This allows function declarations to know all parameters will be in the Function storage class.
This commit is contained in:
parent
15fa7ef5f5
commit
bed4e4f7e4
12 changed files with 976 additions and 841 deletions
|
|
@ -346,13 +346,13 @@ gl_FragCoord origin is upper left
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 137
|
||||
// Id's are bound by 143
|
||||
|
||||
Capability Shader
|
||||
Capability Sampled1D
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 128
|
||||
EntryPoint Fragment 4 "main" 134
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
|
|
@ -367,60 +367,62 @@ gl_FragCoord origin is upper left
|
|||
Name 34 "not_flattened_a"
|
||||
Name 42 "g_tex[1]"
|
||||
Name 45 "g_samp[1]"
|
||||
Name 61 "local_sampler_array"
|
||||
Name 63 "g_samp[0]"
|
||||
Name 68 "g_samp[2]"
|
||||
Name 71 "local_texture_array"
|
||||
Name 72 "g_tex[0]"
|
||||
Name 77 "g_tex[2]"
|
||||
Name 83 "local_float_array"
|
||||
Name 89 "$Global"
|
||||
MemberName 89($Global) 0 "g_mats"
|
||||
MemberName 89($Global) 1 "g_mats_explicit"
|
||||
MemberName 89($Global) 2 "g_floats"
|
||||
Name 91 ""
|
||||
Name 105 "aggShadow"
|
||||
Name 112 "aggShadow"
|
||||
Name 123 "ps_output"
|
||||
Name 124 "param"
|
||||
Name 128 "ps_output.color"
|
||||
Name 131 "g_tex_explicit[0]"
|
||||
Name 132 "g_tex_explicit[1]"
|
||||
Name 133 "g_tex_explicit[2]"
|
||||
Name 134 "g_samp_explicit[0]"
|
||||
Name 135 "g_samp_explicit[1]"
|
||||
Name 136 "g_samp_explicit[2]"
|
||||
Name 63 "local_sampler_array"
|
||||
Name 65 "g_samp[0]"
|
||||
Name 70 "g_samp[2]"
|
||||
Name 73 "local_texture_array"
|
||||
Name 74 "g_tex[0]"
|
||||
Name 79 "g_tex[2]"
|
||||
Name 85 "local_float_array"
|
||||
Name 91 "$Global"
|
||||
MemberName 91($Global) 0 "g_mats"
|
||||
MemberName 91($Global) 1 "g_mats_explicit"
|
||||
MemberName 91($Global) 2 "g_floats"
|
||||
Name 93 ""
|
||||
Name 107 "aggShadow"
|
||||
Name 114 "aggShadow"
|
||||
Name 121 "param"
|
||||
Name 123 "param"
|
||||
Name 129 "ps_output"
|
||||
Name 130 "param"
|
||||
Name 134 "ps_output.color"
|
||||
Name 137 "g_tex_explicit[0]"
|
||||
Name 138 "g_tex_explicit[1]"
|
||||
Name 139 "g_tex_explicit[2]"
|
||||
Name 140 "g_samp_explicit[0]"
|
||||
Name 141 "g_samp_explicit[1]"
|
||||
Name 142 "g_samp_explicit[2]"
|
||||
Decorate 42(g_tex[1]) DescriptorSet 0
|
||||
Decorate 45(g_samp[1]) DescriptorSet 0
|
||||
Decorate 63(g_samp[0]) DescriptorSet 0
|
||||
Decorate 68(g_samp[2]) DescriptorSet 0
|
||||
Decorate 72(g_tex[0]) DescriptorSet 0
|
||||
Decorate 77(g_tex[2]) DescriptorSet 0
|
||||
Decorate 86 ArrayStride 48
|
||||
Decorate 87 ArrayStride 48
|
||||
Decorate 88 ArrayStride 16
|
||||
MemberDecorate 89($Global) 0 RowMajor
|
||||
MemberDecorate 89($Global) 0 Offset 0
|
||||
MemberDecorate 89($Global) 0 MatrixStride 16
|
||||
MemberDecorate 89($Global) 1 RowMajor
|
||||
MemberDecorate 89($Global) 1 Offset 192
|
||||
MemberDecorate 89($Global) 1 MatrixStride 16
|
||||
MemberDecorate 89($Global) 2 Offset 384
|
||||
Decorate 89($Global) Block
|
||||
Decorate 91 DescriptorSet 0
|
||||
Decorate 128(ps_output.color) Location 0
|
||||
Decorate 131(g_tex_explicit[0]) DescriptorSet 0
|
||||
Decorate 131(g_tex_explicit[0]) Binding 1
|
||||
Decorate 132(g_tex_explicit[1]) DescriptorSet 0
|
||||
Decorate 132(g_tex_explicit[1]) Binding 2
|
||||
Decorate 133(g_tex_explicit[2]) DescriptorSet 0
|
||||
Decorate 133(g_tex_explicit[2]) Binding 3
|
||||
Decorate 134(g_samp_explicit[0]) DescriptorSet 0
|
||||
Decorate 134(g_samp_explicit[0]) Binding 5
|
||||
Decorate 135(g_samp_explicit[1]) DescriptorSet 0
|
||||
Decorate 135(g_samp_explicit[1]) Binding 6
|
||||
Decorate 136(g_samp_explicit[2]) DescriptorSet 0
|
||||
Decorate 136(g_samp_explicit[2]) Binding 7
|
||||
Decorate 65(g_samp[0]) DescriptorSet 0
|
||||
Decorate 70(g_samp[2]) DescriptorSet 0
|
||||
Decorate 74(g_tex[0]) DescriptorSet 0
|
||||
Decorate 79(g_tex[2]) DescriptorSet 0
|
||||
Decorate 88 ArrayStride 48
|
||||
Decorate 89 ArrayStride 48
|
||||
Decorate 90 ArrayStride 16
|
||||
MemberDecorate 91($Global) 0 RowMajor
|
||||
MemberDecorate 91($Global) 0 Offset 0
|
||||
MemberDecorate 91($Global) 0 MatrixStride 16
|
||||
MemberDecorate 91($Global) 1 RowMajor
|
||||
MemberDecorate 91($Global) 1 Offset 192
|
||||
MemberDecorate 91($Global) 1 MatrixStride 16
|
||||
MemberDecorate 91($Global) 2 Offset 384
|
||||
Decorate 91($Global) Block
|
||||
Decorate 93 DescriptorSet 0
|
||||
Decorate 134(ps_output.color) Location 0
|
||||
Decorate 137(g_tex_explicit[0]) DescriptorSet 0
|
||||
Decorate 137(g_tex_explicit[0]) Binding 1
|
||||
Decorate 138(g_tex_explicit[1]) DescriptorSet 0
|
||||
Decorate 138(g_tex_explicit[1]) Binding 2
|
||||
Decorate 139(g_tex_explicit[2]) DescriptorSet 0
|
||||
Decorate 139(g_tex_explicit[2]) Binding 3
|
||||
Decorate 140(g_samp_explicit[0]) DescriptorSet 0
|
||||
Decorate 140(g_samp_explicit[0]) Binding 5
|
||||
Decorate 141(g_samp_explicit[1]) DescriptorSet 0
|
||||
Decorate 141(g_samp_explicit[1]) Binding 6
|
||||
Decorate 142(g_samp_explicit[2]) DescriptorSet 0
|
||||
Decorate 142(g_samp_explicit[2]) Binding 7
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -430,10 +432,10 @@ gl_FragCoord origin is upper left
|
|||
12: TypeInt 32 0
|
||||
13: 12(int) Constant 3
|
||||
14: TypeArray 11 13
|
||||
15: TypePointer UniformConstant 14
|
||||
15: TypePointer Function 14
|
||||
16: TypeSampler
|
||||
17: TypeArray 16 13
|
||||
18: TypePointer UniformConstant 17
|
||||
18: TypePointer Function 17
|
||||
19: TypeFunction 7(fvec4) 15(ptr) 18(ptr)
|
||||
24(PS_OUTPUT): TypeStruct 7(fvec4)
|
||||
25: TypePointer Function 24(PS_OUTPUT)
|
||||
|
|
@ -455,48 +457,46 @@ gl_FragCoord origin is upper left
|
|||
45(g_samp[1]): 44(ptr) Variable UniformConstant
|
||||
47: TypeSampledImage 11
|
||||
49: 6(float) Constant 1045220557
|
||||
61(local_sampler_array): 18(ptr) Variable UniformConstant
|
||||
62: 30(int) Constant 0
|
||||
63(g_samp[0]): 44(ptr) Variable UniformConstant
|
||||
68(g_samp[2]): 44(ptr) Variable UniformConstant
|
||||
71(local_texture_array): 15(ptr) Variable UniformConstant
|
||||
72(g_tex[0]): 41(ptr) Variable UniformConstant
|
||||
77(g_tex[2]): 41(ptr) Variable UniformConstant
|
||||
80: 12(int) Constant 4
|
||||
81: TypeArray 6(float) 80
|
||||
82: TypePointer Function 81
|
||||
84: TypeVector 6(float) 3
|
||||
85: TypeMatrix 84(fvec3) 3
|
||||
86: TypeArray 85 80
|
||||
87: TypeArray 85 80
|
||||
88: TypeArray 6(float) 80
|
||||
89($Global): TypeStruct 86 87 88
|
||||
90: TypePointer Uniform 89($Global)
|
||||
91: 90(ptr) Variable Uniform
|
||||
92: TypePointer Uniform 88
|
||||
96: TypePointer Function 6(float)
|
||||
105(aggShadow): 15(ptr) Variable UniformConstant
|
||||
112(aggShadow): 18(ptr) Variable UniformConstant
|
||||
121: TypePointer Function 7(fvec4)
|
||||
127: TypePointer Output 7(fvec4)
|
||||
128(ps_output.color): 127(ptr) Variable Output
|
||||
131(g_tex_explicit[0]): 41(ptr) Variable UniformConstant
|
||||
132(g_tex_explicit[1]): 41(ptr) Variable UniformConstant
|
||||
133(g_tex_explicit[2]): 41(ptr) Variable UniformConstant
|
||||
134(g_samp_explicit[0]): 44(ptr) Variable UniformConstant
|
||||
135(g_samp_explicit[1]): 44(ptr) Variable UniformConstant
|
||||
136(g_samp_explicit[2]): 44(ptr) Variable UniformConstant
|
||||
53: TypePointer Function 11
|
||||
56: TypePointer Function 16
|
||||
64: 30(int) Constant 0
|
||||
65(g_samp[0]): 44(ptr) Variable UniformConstant
|
||||
70(g_samp[2]): 44(ptr) Variable UniformConstant
|
||||
74(g_tex[0]): 41(ptr) Variable UniformConstant
|
||||
79(g_tex[2]): 41(ptr) Variable UniformConstant
|
||||
82: 12(int) Constant 4
|
||||
83: TypeArray 6(float) 82
|
||||
84: TypePointer Function 83
|
||||
86: TypeVector 6(float) 3
|
||||
87: TypeMatrix 86(fvec3) 3
|
||||
88: TypeArray 87 82
|
||||
89: TypeArray 87 82
|
||||
90: TypeArray 6(float) 82
|
||||
91($Global): TypeStruct 88 89 90
|
||||
92: TypePointer Uniform 91($Global)
|
||||
93: 92(ptr) Variable Uniform
|
||||
94: TypePointer Uniform 90
|
||||
98: TypePointer Function 6(float)
|
||||
127: TypePointer Function 7(fvec4)
|
||||
133: TypePointer Output 7(fvec4)
|
||||
134(ps_output.color): 133(ptr) Variable Output
|
||||
137(g_tex_explicit[0]): 41(ptr) Variable UniformConstant
|
||||
138(g_tex_explicit[1]): 41(ptr) Variable UniformConstant
|
||||
139(g_tex_explicit[2]): 41(ptr) Variable UniformConstant
|
||||
140(g_samp_explicit[0]): 44(ptr) Variable UniformConstant
|
||||
141(g_samp_explicit[1]): 44(ptr) Variable UniformConstant
|
||||
142(g_samp_explicit[2]): 44(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
123(ps_output): 25(ptr) Variable Function
|
||||
124(param): 25(ptr) Variable Function
|
||||
129(ps_output): 25(ptr) Variable Function
|
||||
130(param): 25(ptr) Variable Function
|
||||
Store 34(not_flattened_a) 40
|
||||
125: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 124(param)
|
||||
126:24(PS_OUTPUT) Load 124(param)
|
||||
Store 123(ps_output) 126
|
||||
129: 121(ptr) AccessChain 123(ps_output) 62
|
||||
130: 7(fvec4) Load 129
|
||||
Store 128(ps_output.color) 130
|
||||
131: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 130(param)
|
||||
132:24(PS_OUTPUT) Load 130(param)
|
||||
Store 129(ps_output) 132
|
||||
135: 127(ptr) AccessChain 129(ps_output) 64
|
||||
136: 7(fvec4) Load 135
|
||||
Store 134(ps_output.color) 136
|
||||
Return
|
||||
FunctionEnd
|
||||
9(TestFn1(): 7(fvec4) Function None 8
|
||||
|
|
@ -511,72 +511,82 @@ gl_FragCoord origin is upper left
|
|||
20(l_tex): 15(ptr) FunctionParameter
|
||||
21(l_samp): 18(ptr) FunctionParameter
|
||||
23: Label
|
||||
53: 41(ptr) AccessChain 20(l_tex) 36
|
||||
54: 11 Load 53
|
||||
55: 44(ptr) AccessChain 21(l_samp) 36
|
||||
56: 16 Load 55
|
||||
57: 47 SampledImage 54 56
|
||||
58: 7(fvec4) ImageSampleImplicitLod 57 49
|
||||
ReturnValue 58
|
||||
54: 53(ptr) AccessChain 20(l_tex) 36
|
||||
55: 11 Load 54
|
||||
57: 56(ptr) AccessChain 21(l_samp) 36
|
||||
58: 16 Load 57
|
||||
59: 47 SampledImage 55 58
|
||||
60: 7(fvec4) ImageSampleImplicitLod 59 49
|
||||
ReturnValue 60
|
||||
FunctionEnd
|
||||
28(@main(struct-PS_OUTPUT-vf41;): 2 Function None 26
|
||||
27(ps_output): 25(ptr) FunctionParameter
|
||||
29: Label
|
||||
83(local_float_array): 82(ptr) Variable Function
|
||||
64: 16 Load 63(g_samp[0])
|
||||
65: 44(ptr) AccessChain 61(local_sampler_array) 62
|
||||
Store 65 64
|
||||
66: 16 Load 45(g_samp[1])
|
||||
67: 44(ptr) AccessChain 61(local_sampler_array) 35
|
||||
63(local_sampler_array): 18(ptr) Variable Function
|
||||
73(local_texture_array): 15(ptr) Variable Function
|
||||
85(local_float_array): 84(ptr) Variable Function
|
||||
107(aggShadow): 15(ptr) Variable Function
|
||||
114(aggShadow): 18(ptr) Variable Function
|
||||
121(param): 15(ptr) Variable Function
|
||||
123(param): 18(ptr) Variable Function
|
||||
66: 16 Load 65(g_samp[0])
|
||||
67: 56(ptr) AccessChain 63(local_sampler_array) 64
|
||||
Store 67 66
|
||||
69: 16 Load 68(g_samp[2])
|
||||
70: 44(ptr) AccessChain 61(local_sampler_array) 36
|
||||
Store 70 69
|
||||
73: 11 Load 72(g_tex[0])
|
||||
74: 41(ptr) AccessChain 71(local_texture_array) 62
|
||||
Store 74 73
|
||||
75: 11 Load 42(g_tex[1])
|
||||
76: 41(ptr) AccessChain 71(local_texture_array) 35
|
||||
68: 16 Load 45(g_samp[1])
|
||||
69: 56(ptr) AccessChain 63(local_sampler_array) 35
|
||||
Store 69 68
|
||||
71: 16 Load 70(g_samp[2])
|
||||
72: 56(ptr) AccessChain 63(local_sampler_array) 36
|
||||
Store 72 71
|
||||
75: 11 Load 74(g_tex[0])
|
||||
76: 53(ptr) AccessChain 73(local_texture_array) 64
|
||||
Store 76 75
|
||||
78: 11 Load 77(g_tex[2])
|
||||
79: 41(ptr) AccessChain 71(local_texture_array) 36
|
||||
Store 79 78
|
||||
93: 92(ptr) AccessChain 91 36
|
||||
94: 88 Load 93
|
||||
95: 6(float) CompositeExtract 94 0
|
||||
97: 96(ptr) AccessChain 83(local_float_array) 62
|
||||
Store 97 95
|
||||
98: 6(float) CompositeExtract 94 1
|
||||
99: 96(ptr) AccessChain 83(local_float_array) 35
|
||||
Store 99 98
|
||||
100: 6(float) CompositeExtract 94 2
|
||||
101: 96(ptr) AccessChain 83(local_float_array) 36
|
||||
77: 11 Load 42(g_tex[1])
|
||||
78: 53(ptr) AccessChain 73(local_texture_array) 35
|
||||
Store 78 77
|
||||
80: 11 Load 79(g_tex[2])
|
||||
81: 53(ptr) AccessChain 73(local_texture_array) 36
|
||||
Store 81 80
|
||||
95: 94(ptr) AccessChain 93 36
|
||||
96: 90 Load 95
|
||||
97: 6(float) CompositeExtract 96 0
|
||||
99: 98(ptr) AccessChain 85(local_float_array) 64
|
||||
Store 99 97
|
||||
100: 6(float) CompositeExtract 96 1
|
||||
101: 98(ptr) AccessChain 85(local_float_array) 35
|
||||
Store 101 100
|
||||
102: 6(float) CompositeExtract 94 3
|
||||
103: 96(ptr) AccessChain 83(local_float_array) 37
|
||||
102: 6(float) CompositeExtract 96 2
|
||||
103: 98(ptr) AccessChain 85(local_float_array) 36
|
||||
Store 103 102
|
||||
104: 7(fvec4) FunctionCall 9(TestFn1()
|
||||
106: 11 Load 72(g_tex[0])
|
||||
107: 41(ptr) AccessChain 105(aggShadow) 62
|
||||
Store 107 106
|
||||
108: 11 Load 42(g_tex[1])
|
||||
109: 41(ptr) AccessChain 105(aggShadow) 35
|
||||
104: 6(float) CompositeExtract 96 3
|
||||
105: 98(ptr) AccessChain 85(local_float_array) 37
|
||||
Store 105 104
|
||||
106: 7(fvec4) FunctionCall 9(TestFn1()
|
||||
108: 11 Load 74(g_tex[0])
|
||||
109: 53(ptr) AccessChain 107(aggShadow) 64
|
||||
Store 109 108
|
||||
110: 11 Load 77(g_tex[2])
|
||||
111: 41(ptr) AccessChain 105(aggShadow) 36
|
||||
110: 11 Load 42(g_tex[1])
|
||||
111: 53(ptr) AccessChain 107(aggShadow) 35
|
||||
Store 111 110
|
||||
113: 16 Load 63(g_samp[0])
|
||||
114: 44(ptr) AccessChain 112(aggShadow) 62
|
||||
Store 114 113
|
||||
115: 16 Load 45(g_samp[1])
|
||||
116: 44(ptr) AccessChain 112(aggShadow) 35
|
||||
112: 11 Load 79(g_tex[2])
|
||||
113: 53(ptr) AccessChain 107(aggShadow) 36
|
||||
Store 113 112
|
||||
115: 16 Load 65(g_samp[0])
|
||||
116: 56(ptr) AccessChain 114(aggShadow) 64
|
||||
Store 116 115
|
||||
117: 16 Load 68(g_samp[2])
|
||||
118: 44(ptr) AccessChain 112(aggShadow) 36
|
||||
117: 16 Load 45(g_samp[1])
|
||||
118: 56(ptr) AccessChain 114(aggShadow) 35
|
||||
Store 118 117
|
||||
119: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 105(aggShadow) 112(aggShadow)
|
||||
120: 7(fvec4) FAdd 104 119
|
||||
122: 121(ptr) AccessChain 27(ps_output) 62
|
||||
Store 122 120
|
||||
119: 16 Load 70(g_samp[2])
|
||||
120: 56(ptr) AccessChain 114(aggShadow) 36
|
||||
Store 120 119
|
||||
122: 14 Load 107(aggShadow)
|
||||
Store 121(param) 122
|
||||
124: 17 Load 114(aggShadow)
|
||||
Store 123(param) 124
|
||||
125: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 121(param) 123(param)
|
||||
126: 7(fvec4) FAdd 106 125
|
||||
128: 127(ptr) AccessChain 27(ps_output) 64
|
||||
Store 128 126
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue