SPIRV-Cross/reference/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag
Chip Davis 5547b25afe Interleave undef values with constants and types.
Undef values may be of struct type and may be used in constants.
Therefore, they must be interleaved with constants and types.

Fixes the rest of the Vulkan CTS test
`dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_spec_constant_composite`.

(Please excuse the churn in the reference output; it's an inevitable
result of this change.)
2022-11-20 02:08:37 -08:00

29 lines
536 B
GLSL

static float4 undef;
static float4 FragColor;
static float4 vFloat;
struct SPIRV_Cross_Input
{
float4 vFloat : TEXCOORD0;
};
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
FragColor = float4(undef.x, vFloat.y, 0.0f, vFloat.w) + float4(vFloat.z, vFloat.y, 0.0f, vFloat.w);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vFloat = stage_input.vFloat;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}