Add a test for buffer auto-binding assignment.

This commit is contained in:
steve-lunarg 2016-09-30 14:26:34 -06:00
parent 3e47f5f7c8
commit e4fe8b5c44
3 changed files with 118 additions and 0 deletions

View 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

View 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;
}

View File

@ -284,6 +284,7 @@ INSTANTIATE_TEST_CASE_P(
{ "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false },
{ "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false },
{ "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true },
{ "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true },
}),
FileNameAsCustomTestSuffixIoMap
);