mirror of
				https://github.com/gnif/LookingGlass.git
				synced 2025-10-31 12:42:02 +00:00 
			
		
		
		
	 b4b4a37b2b
			
		
	
	b4b4a37b2b
	
	
	
		
			
			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
		
			
				
	
	
		
			42 lines
		
	
	
		
			680 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
| }
 |