#version 430
#ifdef GL_ARB_fragment_shader_interlock
#extension GL_ARB_fragment_shader_interlock : enable
#define SPIRV_Cross_beginInvocationInterlock() beginInvocationInterlockARB()
#define SPIRV_Cross_endInvocationInterlock() endInvocationInterlockARB()
#elif defined(GL_INTEL_fragment_shader_ordering)
#extension GL_INTEL_fragment_shader_ordering : enable
#define SPIRV_Cross_beginInvocationInterlock() beginFragmentShaderOrderingINTEL()
#define SPIRV_Cross_endInvocationInterlock()
#endif
// Shader Name: fdb49c863e7fcfba08a54467695d14285159bae9fd219f83cc37524b5932aaed

layout(binding = 3, std140) uniform GxmRenderFragBufferBlock
{
    float back_disabled;
    float front_disabled;
    float writing_mask;
    float use_raw_image;
    float res_multiplier;
} renderFragInfo;

layout(binding = 0) uniform sampler2D fragTex_tex;
layout(binding = 1, rgba8) uniform readonly image2D f_mask;

layout(location = 4) in vec4 v_TexCoord0;
layout(location = 0) out vec4 out_color;
vec4 pa[32];
vec4 sa[32];
vec4 internals[3];
vec4 r[20];
bool p[4];
int idx[2];
vec4 outs[20];

void frag_init()
{
    if ((renderFragInfo.front_disabled != 0.0) && gl_FrontFacing)
    {
        discard;
    }
    if ((renderFragInfo.back_disabled != 0.0) && (!gl_FrontFacing))
    {
        discard;
    }
}

float pack2xF16(vec2 _136)
{
    return uintBitsToFloat(packHalf2x16(_136));
}

void primary_program()
{
}

vec2 unpack2xF16(float _90)
{
    return unpackHalf2x16(floatBitsToUint(_90));
}

void frag_output_finalize()
{
    vec2 _87 = vec2(pa[0].x, pa[0].y);
    vec2 _96 = unpack2xF16(_87.x);
    vec2 _98 = unpack2xF16(_87.y);
    out_color = vec4(_96.x, _96.y, _98.x, _98.y);
    if (all(lessThan(imageLoad(f_mask, ivec4(gl_FragCoord).xy), vec4(0.5))))
    {
        discard;
    }
}

void main()
{
    frag_init();
    vec4 _131 = texture(fragTex_tex, v_TexCoord0.xy);
    vec2 _147 = vec2(pack2xF16(vec2(_131.x, _131.y)), pack2xF16(vec2(_131.z, _131.w)));
    pa[0] = vec4(_147.x, _147.y, pa[0].z, pa[0].w);
    primary_program();
    frag_output_finalize();
}

