LookingGlass/client/renderers/EGL/shader/ffx_cas.frag
Geoffrey McRae b4b4a37b2b [client] egl: switch to using GL_TEXTURE_EXTERNAL_OES for DMABUF
According to Erik @ NVidia the open source NVidia driver will not
create a EGLImage from a DMABUF if the target is not
GL_TEXTURE_EXTERNAL_OES. This change set converts the dmabuf texture
from GL_TEXTURE_2D to GL_TEXTURE_EXTERNAL_OES and at runtime performs a
global search & replace on fragment shaders as needed to remain
compatible, replacing `sampler2D` with `samplerExternalOES`.

Ref: https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/243#discussioncomment-3283415
2023-03-09 09:20:01 +11:00

42 lines
680 B
GLSL

#version 300 es
#extension GL_OES_EGL_image_external_essl3 : enable
precision highp float;
#include "compat.h"
in vec2 fragCoord;
out vec4 fragColor;
uniform sampler2D sampler1;
uniform uvec4 uConsts[2];
#define A_GPU 1
#define A_GLSL 1
#include "ffx_a.h"
vec3 imageLoad(ivec2 point)
{
return texelFetch(sampler1, point, 0).rgb;
}
AF3 CasLoad(ASU2 p)
{
return imageLoad(p).rgb;
}
void CasInput(inout AF1 r,inout AF1 g,inout AF1 b) {}
#include "ffx_cas.h"
void main()
{
vec2 res = vec2(textureSize(sampler1, 0));
uvec2 point = uvec2(fragCoord * res);
CasFilter(
fragColor.r, fragColor.g, fragColor.b,
point, uConsts[0], uConsts[1], true);
}