Add a test for buffer auto-binding assignment.
This commit is contained in:
parent
3e47f5f7c8
commit
e4fe8b5c44
89
Test/baseResults/spv.buffer.autoassign.frag.out
Normal file
89
Test/baseResults/spv.buffer.autoassign.frag.out
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
spv.buffer.autoassign.frag
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 45
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 41
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "PS_OUTPUT"
|
||||||
|
MemberName 8(PS_OUTPUT) 0 "Color"
|
||||||
|
Name 10 "psout"
|
||||||
|
Name 13 ""
|
||||||
|
MemberName 13 0 "g_a"
|
||||||
|
MemberName 13 1 "g_b"
|
||||||
|
Name 15 ""
|
||||||
|
Name 25 ""
|
||||||
|
MemberName 25 0 "g_c"
|
||||||
|
Name 27 ""
|
||||||
|
Name 31 ""
|
||||||
|
MemberName 31 0 "g_d"
|
||||||
|
Name 33 ""
|
||||||
|
Name 41 "Color"
|
||||||
|
MemberDecorate 13 0 Offset 0
|
||||||
|
MemberDecorate 13 1 Offset 4
|
||||||
|
Decorate 13 Block
|
||||||
|
Decorate 15 DescriptorSet 0
|
||||||
|
Decorate 15 Binding 20
|
||||||
|
MemberDecorate 25 0 Offset 0
|
||||||
|
Decorate 25 Block
|
||||||
|
Decorate 27 DescriptorSet 0
|
||||||
|
Decorate 27 Binding 1
|
||||||
|
MemberDecorate 31 0 Offset 0
|
||||||
|
Decorate 31 Block
|
||||||
|
Decorate 33 DescriptorSet 0
|
||||||
|
Decorate 33 Binding 2
|
||||||
|
Decorate 41(Color) Location 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8(PS_OUTPUT): TypeStruct 7(fvec4)
|
||||||
|
9: TypePointer Function 8(PS_OUTPUT)
|
||||||
|
11: TypeInt 32 1
|
||||||
|
12: 11(int) Constant 0
|
||||||
|
13: TypeStruct 6(float) 11(int)
|
||||||
|
14: TypePointer Uniform 13(struct)
|
||||||
|
15: 14(ptr) Variable Uniform
|
||||||
|
16: TypePointer Uniform 6(float)
|
||||||
|
19: 11(int) Constant 1
|
||||||
|
20: TypePointer Uniform 11(int)
|
||||||
|
25: TypeStruct 6(float)
|
||||||
|
26: TypePointer Uniform 25(struct)
|
||||||
|
27: 26(ptr) Variable Uniform
|
||||||
|
31: TypeStruct 6(float)
|
||||||
|
32: TypePointer Uniform 31(struct)
|
||||||
|
33: 32(ptr) Variable Uniform
|
||||||
|
38: TypePointer Function 7(fvec4)
|
||||||
|
40: TypePointer Output 7(fvec4)
|
||||||
|
41(Color): 40(ptr) Variable Output
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
10(psout): 9(ptr) Variable Function
|
||||||
|
17: 16(ptr) AccessChain 15 12
|
||||||
|
18: 6(float) Load 17
|
||||||
|
21: 20(ptr) AccessChain 15 19
|
||||||
|
22: 11(int) Load 21
|
||||||
|
23: 6(float) ConvertSToF 22
|
||||||
|
24: 6(float) FAdd 18 23
|
||||||
|
28: 16(ptr) AccessChain 27 12
|
||||||
|
29: 6(float) Load 28
|
||||||
|
30: 6(float) FAdd 24 29
|
||||||
|
34: 16(ptr) AccessChain 33 12
|
||||||
|
35: 6(float) Load 34
|
||||||
|
36: 6(float) FAdd 30 35
|
||||||
|
37: 7(fvec4) CompositeConstruct 36 36 36 36
|
||||||
|
39: 38(ptr) AccessChain 10(psout) 12
|
||||||
|
Store 39 37
|
||||||
|
42: 38(ptr) AccessChain 10(psout) 12
|
||||||
|
43: 7(fvec4) Load 42
|
||||||
|
Store 41(Color) 43
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
28
Test/spv.buffer.autoassign.frag
Normal file
28
Test/spv.buffer.autoassign.frag
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
cbuffer MyUB1 : register(b5) // explicitly assigned & offsetted
|
||||||
|
{
|
||||||
|
float g_a;
|
||||||
|
int g_b;
|
||||||
|
};
|
||||||
|
|
||||||
|
cbuffer MyUB2 // implicitly assigned
|
||||||
|
{
|
||||||
|
float g_c;
|
||||||
|
};
|
||||||
|
|
||||||
|
cbuffer MyUB3 // implicitly assigned
|
||||||
|
{
|
||||||
|
float g_d;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PS_OUTPUT
|
||||||
|
{
|
||||||
|
float4 Color : SV_Target0;
|
||||||
|
};
|
||||||
|
|
||||||
|
PS_OUTPUT main()
|
||||||
|
{
|
||||||
|
PS_OUTPUT psout;
|
||||||
|
psout.Color = g_a + g_b + g_c + g_d;
|
||||||
|
return psout;
|
||||||
|
}
|
@ -284,6 +284,7 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
{ "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false },
|
{ "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false },
|
||||||
{ "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false },
|
{ "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false },
|
||||||
{ "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true },
|
{ "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true },
|
||||||
|
{ "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true },
|
||||||
}),
|
}),
|
||||||
FileNameAsCustomTestSuffixIoMap
|
FileNameAsCustomTestSuffixIoMap
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user