|
@@ -28,7 +28,6 @@ layout (location = 0) out vec4 position;
|
|
|
layout (std140, binding = EMULATION_UBO_BINDING) uniform vs_config {
|
|
layout (std140, binding = EMULATION_UBO_BINDING) uniform vs_config {
|
|
|
vec4 viewport_flip;
|
|
vec4 viewport_flip;
|
|
|
uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
|
|
uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
|
|
|
- uvec4 alpha_test;
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
)";
|
|
)";
|
|
@@ -91,7 +90,6 @@ layout (location = 0) out vec4 position;
|
|
|
layout (std140, binding = EMULATION_UBO_BINDING) uniform gs_config {
|
|
layout (std140, binding = EMULATION_UBO_BINDING) uniform gs_config {
|
|
|
vec4 viewport_flip;
|
|
vec4 viewport_flip;
|
|
|
uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
|
|
uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
|
|
|
- uvec4 alpha_test;
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
)";
|
|
)";
|
|
@@ -129,33 +127,8 @@ layout (location = 0) in noperspective vec4 position;
|
|
|
layout (std140, binding = EMULATION_UBO_BINDING) uniform fs_config {
|
|
layout (std140, binding = EMULATION_UBO_BINDING) uniform fs_config {
|
|
|
vec4 viewport_flip;
|
|
vec4 viewport_flip;
|
|
|
uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
|
|
uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
|
|
|
- uvec4 alpha_test;
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-bool AlphaFunc(in float value) {
|
|
|
|
|
- float ref = uintBitsToFloat(alpha_test[2]);
|
|
|
|
|
- switch (alpha_test[1]) {
|
|
|
|
|
- case 1:
|
|
|
|
|
- return false;
|
|
|
|
|
- case 2:
|
|
|
|
|
- return value < ref;
|
|
|
|
|
- case 3:
|
|
|
|
|
- return value == ref;
|
|
|
|
|
- case 4:
|
|
|
|
|
- return value <= ref;
|
|
|
|
|
- case 5:
|
|
|
|
|
- return value > ref;
|
|
|
|
|
- case 6:
|
|
|
|
|
- return value != ref;
|
|
|
|
|
- case 7:
|
|
|
|
|
- return value >= ref;
|
|
|
|
|
- case 8:
|
|
|
|
|
- return true;
|
|
|
|
|
- default:
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
)";
|
|
)";
|
|
|
const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
|
|
const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
|
|
|
ProgramResult program =
|
|
ProgramResult program =
|