[client] egl: cleanup texture filtering/post-processing

This commit is contained in:
Geoffrey McRae
2021-08-11 18:53:36 +10:00
parent f78154d282
commit f0ea882165
23 changed files with 1289 additions and 612 deletions

View File

@@ -3,11 +3,10 @@ precision mediump float;
#include "compat.h"
in vec2 iFragCoord;
in vec2 fragCoord;
out vec4 fragColor;
uniform sampler2D iChannel0;
uniform uvec2 uInRes[8];
uniform sampler2D texture;
uniform uvec2 uOutRes;
#define A_GPU 1
@@ -20,7 +19,8 @@ uniform uvec2 uOutRes;
vec4 _textureGather(sampler2D tex, vec2 uv, int comp)
{
ivec2 p = ivec2((uv * vec2(uInRes[0])) - 0.5f);
vec2 res = vec2(textureSize(tex, 0));
ivec2 p = ivec2((uv * res) - 0.5f);
vec4 c0 = texelFetchOffset(tex, p, 0, ivec2(0,1));
vec4 c1 = texelFetchOffset(tex, p, 0, ivec2(1,1));
vec4 c2 = texelFetchOffset(tex, p, 0, ivec2(1,0));
@@ -28,18 +28,18 @@ vec4 _textureGather(sampler2D tex, vec2 uv, int comp)
return vec4(c0[comp], c1[comp], c2[comp],c3[comp]);
}
AF4 FsrEasuRF(AF2 p){return AF4(_textureGather(iChannel0, p, 0));}
AF4 FsrEasuGF(AF2 p){return AF4(_textureGather(iChannel0, p, 1));}
AF4 FsrEasuBF(AF2 p){return AF4(_textureGather(iChannel0, p, 2));}
AF4 FsrEasuRF(AF2 p){return AF4(_textureGather(texture, p, 0));}
AF4 FsrEasuGF(AF2 p){return AF4(_textureGather(texture, p, 1));}
AF4 FsrEasuBF(AF2 p){return AF4(_textureGather(texture, p, 2));}
#include "ffx_fsr1.h"
void main()
{
AU4 con0, con1, con2, con3;
vec2 inRes = vec2(uInRes[0]);
vec2 inRes = vec2(textureSize(texture, 0));
vec2 outRes = vec2(uOutRes);
AU4 con0, con1, con2, con3;
FsrEasuCon(
con0,
con1,
@@ -51,7 +51,7 @@ void main()
);
vec3 color;
uvec2 point = uvec2(iFragCoord * outRes);
uvec2 point = uvec2(fragCoord * outRes);
FsrEasuF(color, point, con0, con1, con2, con3);
fragColor = vec4(color.xyz, 1);
}