<commit_before>precision mediump float;
precision mediump int;

uniform sampler2D texture0;

float rt_w = 1920.0;
float rt_h = 1080.0;
float inv_w_size = 1.0/rt_w;
float inv_h_size = 1.0/rt_h;
vec2 inv_screen_size = vec2(inv_w_size,inv_h_size);

float FXAA_SPAN_MAX = 8.0;
float FXAA_REDUCE_MUL = 1.0/8.0;

varying vec4 texCoord0;

vec4 outColor;

#define FxaaInt2 ivec2
#define FxaaFloat2 vec2
#define FxaaTexLod0(t, p) texture2D(t, p)
#define FxaaTexOff(t, p, o) texture2D(t, p + o * inv_screen_size)

vec3 FxaaPixelShader(
  			vec4 posPos,
  			sampler2D tex,
  			vec2 rcpFrame)
{
/*---------------------------------------------------------*/
    	#define FXAA_REDUCE_MIN   (1.0/128.0)
/*---------------------------------------------------------*/
    	vec3 rgbNW = FxaaTexLod0(tex, posPos.zw).xyz;
    	vec3 rgbNE = FxaaTexOff(tex, posPos.zw, vec2(1.0,0.0)).xyz;
    	vec3 rgbSW = FxaaTexOff(tex, posPos.zw, vec2(0.0,1.0)).xyz;
    	vec3 rgbSE = FxaaTexOff(tex, posPos.zw, vec2(1.0,1.0)).xyz;
    	vec3 rgbM  = FxaaTexLod0(tex, posPos.xy).xyz;
/*---------------------------------------------------------*/
    	vec3 luma = vec3(0.299, 0.587, 0.114);
    	float lumaNW = dot(rgbNW, luma);
    	float lumaNE = dot(rgbNE, luma);
    	float lumaSW = dot(rgbSW, luma);
    	float lumaSE = dot(rgbSE, luma);
    	float lumaM  = dot(rgbM,  luma);
/*---------------------------------------------------------*/
    	float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
    	float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
/*---------------------------------------------------------*/
    	vec2 dir;
   	dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
    	dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));
/*---------------------------------------------------------*/
    	float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL),FXAA_REDUCE_MIN);
    	float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
    	dir = min(FxaaFloat2( FXAA_SPAN_MAX,  FXAA_SPAN_MAX),max(FxaaFloat2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),
          dir * rcpDirMin)) * rcpFrame.xy;
/*--------------------------------------------------------*/
    	vec3 rgbA = (1.0/2.0) * (
        	FxaaTexLod0(tex, posPos.xy + dir * (1.0/3.0 - 0.5)).xyz +
        	FxaaTexLod0(tex, posPos.xy + dir * (2.0/3.0 - 0.5)).xyz);
    	vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
        	FxaaTexLod0(tex, posPos.xy + dir * (0.0/3.0 - 0.5)).xyz +
        	FxaaTexLod0(tex, posPos.xy + dir * (3.0/3.0 - 0.5)).xyz);
    	float lumaB = dot(rgbB, luma);
    	if((lumaB < lumaMin) || (lumaB > lumaMax)) return rgbA;
    	return rgbB; 
}

vec4 PostFX(sampler2D tex, vec2 uv)
{
  	vec4 c = vec4(0.0);
  	vec2 rcpFrame = vec2(1.0/rt_w, 1.0/rt_h);
  	c.rgb = FxaaPixelShader(texCoord0, tex, rcpFrame);
  	//c.rgb = 1.0 - texture2D(tex, posPos.xy).rgb;
  	c.a = 1.0;
  	return c;
}

void main()
{
	vec2 uv=texCoord0.st;
  	outColor = PostFX(texture0, uv);
  	gl_FragColor=outColor;<commit_msg>Fixed LinkProgram crash on certain drivers (GLES 2.0 1566933) - please take care when writing your own shaders as it could very easily break things down<commit_after>precision mediump float;
precision mediump int;

uniform sampler2D texture0;

float rt_w = 1920.0;
float rt_h = 1080.0;
float inv_w_size = 1.0/rt_w;
float inv_h_size = 1.0/rt_h;
vec2 inv_screen_size = vec2(inv_w_size,inv_h_size);

float FXAA_SPAN_MAX = 8.0;
float FXAA_REDUCE_MUL = 1.0/8.0;

varying vec4 texCoord0;

vec4 outColor;

#define FxaaInt2 ivec2
#define FxaaFloat2 vec2
#define FxaaTexLod0(t, p) texture2D(t, p)
#define FxaaTexOff(t, p, o) texture2D(t, p + o * inv_screen_size)

void main()
{
	vec4 posPos=texCoord0;
	
  	vec2 rcpFrame = vec2(inv_w_size, inv_h_size);
  	
  	#define FXAA_REDUCE_MIN   (1.0/128.0)

	vec3 rgbNW = FxaaTexLod0(texture0, posPos.zw).xyz;
	vec3 rgbNE = FxaaTexOff(texture0, posPos.zw, vec2(1.0,0.0)).xyz;
	vec3 rgbSW = FxaaTexOff(texture0, posPos.zw, vec2(0.0,1.0)).xyz;
	vec3 rgbSE = FxaaTexOff(texture0, posPos.zw, vec2(1.0,1.0)).xyz;
	vec3 rgbM  = FxaaTexLod0(texture0, posPos.xy).xyz;

	vec3 luma = vec3(0.299, 0.587, 0.114);
	float lumaNW = dot(rgbNW, luma);
	float lumaNE = dot(rgbNE, luma);
	float lumaSW = dot(rgbSW, luma);
	float lumaSE = dot(rgbSE, luma);
	float lumaM  = dot(rgbM,  luma);

	float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
	float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));

	vec2 dir;
   	dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
	dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));

	float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL),FXAA_REDUCE_MIN);
	float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
	dir = min(FxaaFloat2( FXAA_SPAN_MAX,  FXAA_SPAN_MAX),max(FxaaFloat2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),
      dir * rcpDirMin)) * rcpFrame.xy;

	vec3 rgbA = (1.0/2.0) * (
    	FxaaTexLod0(texture0, posPos.xy + dir * (1.0/3.0 - 0.5)).xyz +
    	FxaaTexLod0(texture0, posPos.xy + dir * (2.0/3.0 - 0.5)).xyz);
	vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
    	FxaaTexLod0(texture0, posPos.xy + dir * (0.0/3.0 - 0.5)).xyz +
    	FxaaTexLod0(texture0, posPos.xy + dir * (3.0/3.0 - 0.5)).xyz);
	float lumaB = dot(rgbB, luma);
	
	outColor.rgb = rgbB;
	if((lumaB < lumaMin) || (lumaB > lumaMax)) outColor.rgb = rgbA;
	
	outColor.a = 1.0;
  	
  	gl_FragColor=outColor;
{'fraction_non_alphanumeric': 0.2245575221238938, 'fraction_numerical': 0.055678466076696166, 'mean_word_length': 2.522727272727273, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3302503', 'n_tokens_mistral': 2585, 'n_tokens_neox': 2431, 'n_words': 458}