bgfx/3rdparty/glsl-optimizer/tests/fragment/complex-fxaa-preset3-ir.txt
Branimir Karadzic dee3fe5266 Initial commit.
2012-04-03 20:30:07 -07:00

583 lines
13 KiB
Text

#extension GL_ARB_shader_texture_lod : enable
varying vec2 xlv_TEXCOORD0;
uniform vec4 _MainTex_TexelSize;
uniform sampler2D _MainTex;
vec4 xll_tex2Dlod (
in sampler2D s,
in vec4 coord
)
{
vec4 tmpvar_1;
tmpvar_1 = texture2DLod (s, coord.xy, coord.w);
return tmpvar_1;
}
vec4 FxaaTexOff (
in sampler2D tex,
in vec2 pos,
in vec2 off,
in vec2 rcpFrame
)
{
vec4 tmpvar_1;
tmpvar_1.zw = vec2(0.0, 0.0);
tmpvar_1.xy = (pos.xy + (off * rcpFrame)).xy;
vec4 tmpvar_2;
tmpvar_2 = xll_tex2Dlod (tex, tmpvar_1);
return tmpvar_2;
}
vec4 FxaaTexLod0 (
in sampler2D tex,
in vec2 pos
)
{
vec4 tmpvar_1;
tmpvar_1.zw = vec2(0.0, 0.0);
tmpvar_1.xy = pos.xy.xy;
vec4 tmpvar_2;
tmpvar_2 = xll_tex2Dlod (tex, tmpvar_1);
return tmpvar_2;
}
float FxaaLuma (
in vec3 rgb
)
{
return ((rgb.y * 1.96321) + rgb.x);
}
vec3 FxaaLerp3 (
in vec3 a,
in vec3 b,
in float amountOfA
)
{
vec3 tmpvar_1;
tmpvar_1.x = -(amountOfA);
tmpvar_1.y = -(amountOfA);
tmpvar_1.z = -(amountOfA);
vec3 tmpvar_2;
tmpvar_2.x = amountOfA;
tmpvar_2.y = amountOfA;
tmpvar_2.z = amountOfA;
return ((tmpvar_1 * b) + ((a * tmpvar_2) + b));
}
vec3 FxaaFilterReturn (
in vec3 rgb
)
{
return rgb;
}
vec3 FxaaPixelShader (
in vec2 pos,
in sampler2D tex,
in vec2 rcpFrame
)
{
vec3 rgbF;
float subPixelOffset;
float spanLength;
bool directionN;
float dstP;
float dstN;
int i;
bool doneP;
bool doneN;
float lumaEndP;
float lumaEndN;
vec2 offNP;
vec2 posP;
vec2 posN;
bool pairN;
float gradientS;
float gradientN;
float lengthSign;
bool horzSpan;
float edgeHorz;
float edgeVert;
float lumaSE;
float lumaSW;
float lumaNE;
float lumaNW;
vec3 rgbSE;
vec3 rgbSW;
vec3 rgbNE;
vec3 rgbNW;
float blendL;
float rangeL;
float lumaL;
vec3 rgbL;
float range;
float rangeMax;
float rangeMin;
float lumaS;
float lumaE;
float lumaM;
float lumaW;
float lumaN;
vec3 rgbS;
vec3 rgbE;
vec3 rgbM;
vec3 rgbW;
vec3 rgbN;
bool tmpvar_1;
tmpvar_1 = bool(0);
doneN = tmpvar_1;
bool tmpvar_2;
tmpvar_2 = bool(0);
doneP = tmpvar_2;
int tmpvar_3;
tmpvar_3 = 0;
i = tmpvar_3;
vec4 tmpvar_4;
tmpvar_4 = FxaaTexOff (tex, pos.xy, vec2(0.0, -1.0), rcpFrame);
vec3 tmpvar_5;
tmpvar_5 = tmpvar_4.xyz;
rgbN = tmpvar_5;
vec4 tmpvar_6;
tmpvar_6 = FxaaTexOff (tex, pos.xy, vec2(-1.0, 0.0), rcpFrame);
vec3 tmpvar_7;
tmpvar_7 = tmpvar_6.xyz;
rgbW = tmpvar_7;
vec4 tmpvar_8;
tmpvar_8 = FxaaTexOff (tex, pos.xy, vec2(0.0, 0.0), rcpFrame);
vec3 tmpvar_9;
tmpvar_9 = tmpvar_8.xyz;
rgbM = tmpvar_9;
vec4 tmpvar_10;
tmpvar_10 = FxaaTexOff (tex, pos.xy, vec2(1.0, 0.0), rcpFrame);
vec3 tmpvar_11;
tmpvar_11 = tmpvar_10.xyz;
rgbE = tmpvar_11;
vec4 tmpvar_12;
tmpvar_12 = FxaaTexOff (tex, pos.xy, vec2(0.0, 1.0), rcpFrame);
vec3 tmpvar_13;
tmpvar_13 = tmpvar_12.xyz;
rgbS = tmpvar_13;
float tmpvar_14;
tmpvar_14 = FxaaLuma (rgbN);
float tmpvar_15;
tmpvar_15 = tmpvar_14;
lumaN = tmpvar_15;
float tmpvar_16;
tmpvar_16 = FxaaLuma (rgbW);
float tmpvar_17;
tmpvar_17 = tmpvar_16;
lumaW = tmpvar_17;
float tmpvar_18;
tmpvar_18 = FxaaLuma (rgbM);
float tmpvar_19;
tmpvar_19 = tmpvar_18;
lumaM = tmpvar_19;
float tmpvar_20;
tmpvar_20 = FxaaLuma (rgbE);
float tmpvar_21;
tmpvar_21 = tmpvar_20;
lumaE = tmpvar_21;
float tmpvar_22;
tmpvar_22 = FxaaLuma (rgbS);
float tmpvar_23;
tmpvar_23 = tmpvar_22;
lumaS = tmpvar_23;
float tmpvar_24;
tmpvar_24 = min (lumaN, lumaW);
float tmpvar_25;
tmpvar_25 = min (lumaS, lumaE);
float tmpvar_26;
tmpvar_26 = min (tmpvar_24, tmpvar_25);
float tmpvar_27;
tmpvar_27 = min (lumaM, tmpvar_26);
float tmpvar_28;
tmpvar_28 = tmpvar_27;
rangeMin = tmpvar_28;
float tmpvar_29;
tmpvar_29 = max (lumaN, lumaW);
float tmpvar_30;
tmpvar_30 = max (lumaS, lumaE);
float tmpvar_31;
tmpvar_31 = max (tmpvar_29, tmpvar_30);
float tmpvar_32;
tmpvar_32 = max (lumaM, tmpvar_31);
float tmpvar_33;
tmpvar_33 = tmpvar_32;
rangeMax = tmpvar_33;
float tmpvar_34;
tmpvar_34 = (rangeMax - rangeMin);
range = tmpvar_34;
float tmpvar_35;
tmpvar_35 = max (0.0416667, (rangeMax * 0.125));
if ((range < tmpvar_35)) {
vec3 tmpvar_36;
tmpvar_36 = FxaaFilterReturn (rgbM);
return tmpvar_36;
};
vec3 tmpvar_37;
tmpvar_37 = ((((rgbN + rgbW) + rgbM) + rgbE) + rgbS);
rgbL = tmpvar_37;
float tmpvar_38;
tmpvar_38 = ((((lumaN + lumaW) + lumaE) + lumaS) * 0.25);
lumaL = tmpvar_38;
float tmpvar_39;
tmpvar_39 = abs ((lumaL - lumaM));
float tmpvar_40;
tmpvar_40 = tmpvar_39;
rangeL = tmpvar_40;
float tmpvar_41;
tmpvar_41 = max (0.0, ((rangeL / range) - 0.25));
float tmpvar_42;
tmpvar_42 = (tmpvar_41 * 1.33333);
blendL = tmpvar_42;
float tmpvar_43;
tmpvar_43 = min (0.75, blendL);
float tmpvar_44;
tmpvar_44 = tmpvar_43;
blendL = tmpvar_44;
vec4 tmpvar_45;
tmpvar_45 = FxaaTexOff (tex, pos.xy, vec2(-1.0, -1.0), rcpFrame);
vec3 tmpvar_46;
tmpvar_46 = tmpvar_45.xyz;
rgbNW = tmpvar_46;
vec4 tmpvar_47;
tmpvar_47 = FxaaTexOff (tex, pos.xy, vec2(1.0, -1.0), rcpFrame);
vec3 tmpvar_48;
tmpvar_48 = tmpvar_47.xyz;
rgbNE = tmpvar_48;
vec4 tmpvar_49;
tmpvar_49 = FxaaTexOff (tex, pos.xy, vec2(-1.0, 1.0), rcpFrame);
vec3 tmpvar_50;
tmpvar_50 = tmpvar_49.xyz;
rgbSW = tmpvar_50;
vec4 tmpvar_51;
tmpvar_51 = FxaaTexOff (tex, pos.xy, vec2(1.0, 1.0), rcpFrame);
vec3 tmpvar_52;
tmpvar_52 = tmpvar_51.xyz;
rgbSE = tmpvar_52;
vec3 tmpvar_53;
tmpvar_53 = (rgbL + (((rgbNW + rgbNE) + rgbSW) + rgbSE));
rgbL = tmpvar_53;
vec3 tmpvar_54;
tmpvar_54 = (rgbL * vec3(0.111111, 0.111111, 0.111111));
rgbL = tmpvar_54;
float tmpvar_55;
tmpvar_55 = FxaaLuma (rgbNW);
float tmpvar_56;
tmpvar_56 = tmpvar_55;
lumaNW = tmpvar_56;
float tmpvar_57;
tmpvar_57 = FxaaLuma (rgbNE);
float tmpvar_58;
tmpvar_58 = tmpvar_57;
lumaNE = tmpvar_58;
float tmpvar_59;
tmpvar_59 = FxaaLuma (rgbSW);
float tmpvar_60;
tmpvar_60 = tmpvar_59;
lumaSW = tmpvar_60;
float tmpvar_61;
tmpvar_61 = FxaaLuma (rgbSE);
float tmpvar_62;
tmpvar_62 = tmpvar_61;
lumaSE = tmpvar_62;
float tmpvar_63;
tmpvar_63 = abs ((((0.25 * lumaNW) + (-(0.5) * lumaN)) + (0.25 * lumaNE)));
float tmpvar_64;
tmpvar_64 = abs ((((0.5 * lumaW) + (-(1.0) * lumaM)) + (0.5 * lumaE)));
float tmpvar_65;
tmpvar_65 = abs ((((0.25 * lumaSW) + (-(0.5) * lumaS)) + (0.25 * lumaSE)));
float tmpvar_66;
tmpvar_66 = ((tmpvar_63 + tmpvar_64) + tmpvar_65);
edgeVert = tmpvar_66;
float tmpvar_67;
tmpvar_67 = abs ((((0.25 * lumaNW) + (-(0.5) * lumaW)) + (0.25 * lumaSW)));
float tmpvar_68;
tmpvar_68 = abs ((((0.5 * lumaN) + (-(1.0) * lumaM)) + (0.5 * lumaS)));
float tmpvar_69;
tmpvar_69 = abs ((((0.25 * lumaNE) + (-(0.5) * lumaE)) + (0.25 * lumaSE)));
float tmpvar_70;
tmpvar_70 = ((tmpvar_67 + tmpvar_68) + tmpvar_69);
edgeHorz = tmpvar_70;
bool tmpvar_71;
tmpvar_71 = (edgeHorz >= edgeVert);
horzSpan = tmpvar_71;
float tmpvar_72;
if (horzSpan) {
tmpvar_72 = -(rcpFrame.y);
} else {
tmpvar_72 = -(rcpFrame.x);
};
float tmpvar_73;
tmpvar_73 = tmpvar_72;
lengthSign = tmpvar_73;
if (!(horzSpan)) {
float tmpvar_74;
tmpvar_74 = lumaW;
lumaN = tmpvar_74;
};
if (!(horzSpan)) {
float tmpvar_75;
tmpvar_75 = lumaE;
lumaS = tmpvar_75;
};
float tmpvar_76;
tmpvar_76 = abs ((lumaN - lumaM));
float tmpvar_77;
tmpvar_77 = tmpvar_76;
gradientN = tmpvar_77;
float tmpvar_78;
tmpvar_78 = abs ((lumaS - lumaM));
float tmpvar_79;
tmpvar_79 = tmpvar_78;
gradientS = tmpvar_79;
float tmpvar_80;
tmpvar_80 = ((lumaN + lumaM) * 0.5);
lumaN = tmpvar_80;
float tmpvar_81;
tmpvar_81 = ((lumaS + lumaM) * 0.5);
lumaS = tmpvar_81;
bool tmpvar_82;
tmpvar_82 = (gradientN >= gradientS);
pairN = tmpvar_82;
if (!(pairN)) {
float tmpvar_83;
tmpvar_83 = lumaS;
lumaN = tmpvar_83;
};
if (!(pairN)) {
float tmpvar_84;
tmpvar_84 = gradientS;
gradientN = tmpvar_84;
};
if (!(pairN)) {
float tmpvar_85;
tmpvar_85 = (lengthSign * -(1.0));
lengthSign = tmpvar_85;
};
float tmpvar_86;
if (horzSpan) {
tmpvar_86 = 0.0;
} else {
tmpvar_86 = (lengthSign * 0.5);
};
float tmpvar_87;
tmpvar_87 = (pos.x + tmpvar_86);
posN.x = tmpvar_87;
float tmpvar_88;
if (horzSpan) {
tmpvar_88 = (lengthSign * 0.5);
} else {
tmpvar_88 = 0.0;
};
float tmpvar_89;
tmpvar_89 = (pos.y + tmpvar_88);
posN.y = vec2(tmpvar_89).y;
float tmpvar_90;
tmpvar_90 = (gradientN * 0.25);
gradientN = tmpvar_90;
vec2 tmpvar_91;
tmpvar_91 = posN;
posP = tmpvar_91;
vec2 tmpvar_92;
if (horzSpan) {
vec2 tmpvar_93;
tmpvar_93.y = 0.0;
tmpvar_93.x = rcpFrame.x;
tmpvar_92 = tmpvar_93;
} else {
vec2 tmpvar_94;
tmpvar_94.x = 0.0;
tmpvar_94.y = rcpFrame.y;
tmpvar_92 = tmpvar_94;
};
vec2 tmpvar_95;
tmpvar_95 = tmpvar_92;
offNP = tmpvar_95;
float tmpvar_96;
tmpvar_96 = lumaN;
lumaEndN = tmpvar_96;
float tmpvar_97;
tmpvar_97 = lumaN;
lumaEndP = tmpvar_97;
vec2 tmpvar_98;
tmpvar_98 = (posN + (offNP * vec2(-1.0, -1.0)));
posN = tmpvar_98;
vec2 tmpvar_99;
tmpvar_99 = (posP + (offNP * vec2(1.0, 1.0)));
posP = tmpvar_99;
while (true) {
if (!((i < 16))) {
break;
};
if (!(doneN)) {
vec4 tmpvar_100;
tmpvar_100 = FxaaTexLod0 (tex, posN.xy);
float tmpvar_101;
tmpvar_101 = FxaaLuma (tmpvar_100.xyz);
float tmpvar_102;
tmpvar_102 = tmpvar_101;
lumaEndN = tmpvar_102;
};
if (!(doneP)) {
vec4 tmpvar_103;
tmpvar_103 = FxaaTexLod0 (tex, posP.xy);
float tmpvar_104;
tmpvar_104 = FxaaLuma (tmpvar_103.xyz);
float tmpvar_105;
tmpvar_105 = tmpvar_104;
lumaEndP = tmpvar_105;
};
bool tmpvar_106;
if (doneN) {
tmpvar_106 = bool(1);
} else {
float tmpvar_107;
tmpvar_107 = abs ((lumaEndN - lumaN));
tmpvar_106 = (tmpvar_107 >= gradientN);
};
bool tmpvar_108;
tmpvar_108 = tmpvar_106;
doneN = tmpvar_108;
bool tmpvar_109;
if (doneP) {
tmpvar_109 = bool(1);
} else {
float tmpvar_110;
tmpvar_110 = abs ((lumaEndP - lumaN));
tmpvar_109 = (tmpvar_110 >= gradientN);
};
bool tmpvar_111;
tmpvar_111 = tmpvar_109;
doneP = tmpvar_111;
bool tmpvar_112;
if (doneN) {
tmpvar_112 = doneP;
} else {
tmpvar_112 = bool(0);
};
if (tmpvar_112) {
break;
};
if (!(doneN)) {
vec2 tmpvar_113;
tmpvar_113 = (posN - offNP);
posN = tmpvar_113;
};
if (!(doneP)) {
vec2 tmpvar_114;
tmpvar_114 = (posP + offNP);
posP = tmpvar_114;
};
int _post_incdec_tmp;
_post_incdec_tmp = i;
int tmpvar_115;
tmpvar_115 = (i + 1);
i = tmpvar_115;
};
float tmpvar_116;
if (horzSpan) {
tmpvar_116 = (pos.x - posN.x);
} else {
tmpvar_116 = (pos.y - posN.y);
};
float tmpvar_117;
tmpvar_117 = tmpvar_116;
dstN = tmpvar_117;
float tmpvar_118;
if (horzSpan) {
tmpvar_118 = (posP.x - pos.x);
} else {
tmpvar_118 = (posP.y - pos.y);
};
float tmpvar_119;
tmpvar_119 = tmpvar_118;
dstP = tmpvar_119;
bool tmpvar_120;
tmpvar_120 = (dstN < dstP);
directionN = tmpvar_120;
float tmpvar_121;
if (directionN) {
tmpvar_121 = lumaEndN;
} else {
tmpvar_121 = lumaEndP;
};
float tmpvar_122;
tmpvar_122 = tmpvar_121;
lumaEndN = tmpvar_122;
if ((((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0))) {
float tmpvar_123;
tmpvar_123 = 0.0;
lengthSign = tmpvar_123;
};
float tmpvar_124;
tmpvar_124 = (dstP + dstN);
spanLength = tmpvar_124;
float tmpvar_125;
if (directionN) {
tmpvar_125 = dstN;
} else {
tmpvar_125 = dstP;
};
float tmpvar_126;
tmpvar_126 = tmpvar_125;
dstN = tmpvar_126;
float tmpvar_127;
tmpvar_127 = ((0.5 + (dstN * (-(1.0) / spanLength))) * lengthSign);
subPixelOffset = tmpvar_127;
float tmpvar_128;
if (horzSpan) {
tmpvar_128 = 0.0;
} else {
tmpvar_128 = subPixelOffset;
};
float tmpvar_129;
if (horzSpan) {
tmpvar_129 = subPixelOffset;
} else {
tmpvar_129 = 0.0;
};
vec2 tmpvar_130;
tmpvar_130.x = (pos.x + tmpvar_128);
tmpvar_130.y = (pos.y + tmpvar_129);
vec4 tmpvar_131;
tmpvar_131 = FxaaTexLod0 (tex, tmpvar_130);
vec3 tmpvar_132;
tmpvar_132 = tmpvar_131.xyz;
rgbF = tmpvar_132;
vec3 tmpvar_133;
tmpvar_133 = FxaaLerp3 (rgbL, rgbF, blendL);
vec3 tmpvar_134;
tmpvar_134 = FxaaFilterReturn (tmpvar_133);
return tmpvar_134;
}
vec4 xlat_main (
in vec2 uv
)
{
vec3 tmpvar_1;
tmpvar_1 = FxaaPixelShader (uv.xy, _MainTex, _MainTex_TexelSize.xy);
vec4 tmpvar_2;
tmpvar_2.w = 0.0;
tmpvar_2.xyz = tmpvar_1.xyz.xyz;
return tmpvar_2;
}
void main ()
{
vec4 xl_retval;
vec2 tmpvar_1;
tmpvar_1 = xlv_TEXCOORD0.xy;
vec4 tmpvar_2;
tmpvar_2 = xlat_main (tmpvar_1);
vec4 tmpvar_3;
tmpvar_3 = tmpvar_2;
xl_retval = tmpvar_3;
vec4 tmpvar_4;
tmpvar_4 = xl_retval.xyzw;
vec4 tmpvar_5;
tmpvar_5 = tmpvar_4;
gl_FragData[0] = tmpvar_5;
}