SPV: Handle nested opaque types as function parameters.
This commit is contained in:
67
Test/baseResults/spv.functionNestedOpaque.vert.out
Normal file
67
Test/baseResults/spv.functionNestedOpaque.vert.out
Normal file
@@ -0,0 +1,67 @@
|
||||
spv.functionNestedOpaque.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 39
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main"
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 12 "foo(s21;"
|
||||
Name 11 "t"
|
||||
Name 14 "S"
|
||||
MemberName 14(S) 0 "s"
|
||||
Name 18 "barc(struct-S-s211;"
|
||||
Name 17 "p"
|
||||
Name 21 "bar(struct-S-s211;"
|
||||
Name 20 "p"
|
||||
Name 36 "si"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeImage 6(float) 2D sampled format:Unknown
|
||||
8: TypeSampledImage 7
|
||||
9: TypePointer UniformConstant 8
|
||||
10: TypeFunction 2 9(ptr)
|
||||
14(S): TypeStruct 8
|
||||
15: TypePointer UniformConstant 14(S)
|
||||
16: TypeFunction 2 15(ptr)
|
||||
24: TypeVector 6(float) 2
|
||||
25: 6(float) Constant 1056964608
|
||||
26: 24(fvec2) ConstantComposite 25 25
|
||||
27: TypeVector 6(float) 4
|
||||
28: 6(float) Constant 0
|
||||
30: TypeInt 32 1
|
||||
31: 30(int) Constant 0
|
||||
36(si): 15(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
37: 2 FunctionCall 18(barc(struct-S-s211;) 36(si)
|
||||
38: 2 FunctionCall 21(bar(struct-S-s211;) 36(si)
|
||||
Return
|
||||
FunctionEnd
|
||||
12(foo(s21;): 2 Function None 10
|
||||
11(t): 9(ptr) FunctionParameter
|
||||
13: Label
|
||||
23: 8 Load 11(t)
|
||||
29: 27(fvec4) ImageSampleExplicitLod 23 26 Lod 28
|
||||
Return
|
||||
FunctionEnd
|
||||
18(barc(struct-S-s211;): 2 Function None 16
|
||||
17(p): 15(ptr) FunctionParameter
|
||||
19: Label
|
||||
32: 9(ptr) AccessChain 17(p) 31
|
||||
33: 2 FunctionCall 12(foo(s21;) 32
|
||||
Return
|
||||
FunctionEnd
|
||||
21(bar(struct-S-s211;): 2 Function None 16
|
||||
20(p): 15(ptr) FunctionParameter
|
||||
22: Label
|
||||
34: 9(ptr) AccessChain 20(p) 31
|
||||
35: 2 FunctionCall 12(foo(s21;) 34
|
||||
Return
|
||||
FunctionEnd
|
||||
26
Test/spv.functionNestedOpaque.vert
Executable file
26
Test/spv.functionNestedOpaque.vert
Executable file
@@ -0,0 +1,26 @@
|
||||
#version 450
|
||||
|
||||
uniform struct S {
|
||||
sampler2D s;
|
||||
} si;
|
||||
|
||||
void foo(sampler2D t)
|
||||
{
|
||||
texture(t, vec2(0.5));
|
||||
}
|
||||
|
||||
void barc(const S p)
|
||||
{
|
||||
foo(p.s);
|
||||
}
|
||||
|
||||
void bar(S p)
|
||||
{
|
||||
foo(p.s);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
barc(si);
|
||||
bar(si);
|
||||
}
|
||||
Reference in New Issue
Block a user