aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.OpenGL/Effects/Shaders/smaa_edge.glsl
blob: fd5d9715426bf9323f27c9d1ff45cfdb820ff32a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
layout(rgba8, binding = 0) uniform image2D imgOutput;

uniform sampler2D inputTexture;
layout( location=0 ) uniform vec2 invResolution;

void main() 
{
    vec2 loc = ivec2(gl_GlobalInvocationID.x * 4, gl_GlobalInvocationID.y * 4);
    for(int i = 0; i < 4; i++)
    {
        for(int j = 0; j < 4; j++)
        {
            ivec2 texelCoord = ivec2(loc.x + i, loc.y + j);
            vec2 coord = (texelCoord + vec2(0.5)) / invResolution;
            vec4 offset[3];
            SMAAEdgeDetectionVS(coord, offset);
            vec2 oColor = SMAAColorEdgeDetectionPS(coord, offset, inputTexture);
            if (oColor != float2(-2.0, -2.0))
            {
                imageStore(imgOutput, texelCoord, vec4(oColor, 0.0, 1.0));
            }
        }
    }
}