#version 450

layout(set = 0, binding = 0) uniform sampler2DShadow uShadow;
layout(set = 0, binding = 1) uniform texture2D uTexture;
layout(set = 0, binding = 2) uniform samplerShadow uSampler;

layout(location = 0) in vec3 vUV;
layout(location = 0) out float FragColor;

float sample_combined()
{
    return texture(uShadow, vec3(vUV.xy, vUV.z));
}

float sample_separate()
{
    return texture(sampler2DShadow(uTexture, uSampler), vec3(vUV.xy, vUV.z));
}

void main()
{
    FragColor = sample_combined() + sample_separate();
}

