GLSL: Add binding map tests
This PR adds a GLSL equivalent to the HLSL binding mapping tests for offsets and auto-numbering. The shaders are as equivalent as possible. The bindings of the base results match exactly between the two.
This commit is contained in:
parent
10f7fc739c
commit
ad0752e8fa
5 changed files with 614 additions and 4 deletions
68
Test/spv.glsl.register.autoassign.frag
Normal file
68
Test/spv.glsl.register.autoassign.frag
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
#version 450
|
||||
|
||||
uniform layout(binding=0) sampler g_sSamp1;
|
||||
uniform sampler g_sSamp2;
|
||||
uniform layout(binding=2) sampler g_sSamp3[2];
|
||||
uniform sampler g_sSamp4[3];
|
||||
uniform sampler g_sSamp5;
|
||||
|
||||
uniform sampler g_sSamp_unused1;
|
||||
uniform sampler g_sSamp_unused2;
|
||||
|
||||
uniform layout(binding=1) texture1D g_tTex1;
|
||||
uniform texture1D g_tTex2;
|
||||
uniform layout(binding=3) texture1D g_tTex3[2];
|
||||
uniform texture1D g_tTex4[3];
|
||||
uniform texture1D g_tTex5;
|
||||
|
||||
uniform layout(binding=0) texture1D g_tTex_unused1;
|
||||
uniform layout(binding=2) texture1D g_tTex_unused2;
|
||||
uniform texture1D g_tTex_unused3;
|
||||
|
||||
struct MyStruct_t {
|
||||
int a;
|
||||
float b;
|
||||
vec3 c;
|
||||
};
|
||||
|
||||
uniform layout(binding=4) myblock {
|
||||
MyStruct_t mystruct;
|
||||
vec4 myvec4_a;
|
||||
vec4 myvec4_b;
|
||||
ivec4 myint4_a;
|
||||
};
|
||||
|
||||
vec4 Func1()
|
||||
{
|
||||
return
|
||||
texture(sampler1D(g_tTex1, g_sSamp1), 0.1) +
|
||||
texture(sampler1D(g_tTex2, g_sSamp2), 0.2) +
|
||||
texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) +
|
||||
texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) +
|
||||
texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) +
|
||||
texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) +
|
||||
texture(sampler1D(g_tTex5, g_sSamp5), 0.5) +
|
||||
mystruct.c[1];
|
||||
}
|
||||
|
||||
vec4 Func2()
|
||||
{
|
||||
return
|
||||
texture(sampler1D(g_tTex1, g_sSamp1), 0.1) +
|
||||
texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3);
|
||||
}
|
||||
|
||||
// Not called from entry point:
|
||||
vec4 Func2_unused()
|
||||
{
|
||||
return
|
||||
texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) +
|
||||
texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2);
|
||||
}
|
||||
|
||||
out vec4 FragColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
FragColor = Func1() + Func2();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue