300 lines
7.5 KiB
Text
300 lines
7.5 KiB
Text
!!ARBfp1.0
|
|
OPTION ARB_precision_hint_fastest;
|
|
# cgc version 3.1.0013, build date Apr 18 2012
|
|
# command line args: -profile arbfp1 -O3 -fastmath -fastprecision
|
|
# source file: fxaa_pp.cg
|
|
#vendor NVIDIA Corporation
|
|
#version 3.1.0.13
|
|
#profile arbfp1
|
|
#program fxaa_pp
|
|
#semantic fxaa_pp.fxaaQualityRcpFrame
|
|
#semantic fxaa_pp.fxaaQualitySubpix
|
|
#semantic fxaa_pp.fxaaQualityEdgeThreshold
|
|
#semantic fxaa_pp.fxaaQualityEdgeThresholdMin
|
|
#semantic fxaa_pp.nlTex0 : TEX0
|
|
#var float2 pos : $vin.TEXCOORD0 : TEX0 : 0 : 1
|
|
#var float2 fxaaQualityRcpFrame : : c[0] : 1 : 1
|
|
#var float fxaaQualitySubpix : : c[1] : 2 : 1
|
|
#var float fxaaQualityEdgeThreshold : : c[2] : 3 : 1
|
|
#var float fxaaQualityEdgeThresholdMin : : c[3] : 4 : 1
|
|
#var sampler2D nlTex0 : TEX0 : texunit 0 : 5 : 1
|
|
#var float4 oCol : $vout.COLOR : COL : 6 : 1
|
|
#const c[4] = 0 -1 1 -2
|
|
#const c[5] = 2 0.5 0.25 1.5
|
|
#const c[6] = 4 12 0.083333336 3
|
|
PARAM c[7] = { program.local[0..3],
|
|
{ 0, -1, 1, -2 },
|
|
{ 2, 0.5, 0.25, 1.5 },
|
|
{ 4, 12, 0.083333336, 3 } };
|
|
TEMP R0;
|
|
TEMP R1;
|
|
TEMP R2;
|
|
TEMP R3;
|
|
TEMP R4;
|
|
TEMP R5;
|
|
TEMP R6;
|
|
TEMP R7;
|
|
TEMP R8;
|
|
TEMP R9;
|
|
MOV R3.xyz, c[4];
|
|
MAD R2.zw, R3.xyyz, c[0].xyxy, fragment.texcoord[0].xyxy;
|
|
MAD R0.xy, R3, c[0], fragment.texcoord[0];
|
|
MAD R1.xy, R3.zyzw, c[0], fragment.texcoord[0];
|
|
TEX R5.y, R1, texture[0], 2D;
|
|
MAD R1.xy, R3.zxzw, c[0], fragment.texcoord[0];
|
|
ADD R0.zw, fragment.texcoord[0].xyxy, -c[0].xyxy;
|
|
TEX R4.y, R0.zwzw, texture[0], 2D;
|
|
TEX R6.y, R2.zwzw, texture[0], 2D;
|
|
TEX R8, fragment.texcoord[0], texture[0], 2D;
|
|
TEX R1.y, R1, texture[0], 2D;
|
|
TEX R0.y, R0, texture[0], 2D;
|
|
ADD R0.z, R4.y, R5.y;
|
|
MAD R1.z, R0.y, c[4].w, R0;
|
|
MAD R0.zw, R3.xyyx, c[0].xyxy, fragment.texcoord[0].xyxy;
|
|
TEX R2.y, R0.zwzw, texture[0], 2D;
|
|
ADD R0.x, R2.y, R1.y;
|
|
ABS R0.w, R1.z;
|
|
ADD R1.zw, fragment.texcoord[0].xyxy, c[0].xyxy;
|
|
TEX R7.y, R1.zwzw, texture[0], 2D;
|
|
MAD R0.z, R8.y, c[4].w, R0.x;
|
|
ABS R0.z, R0;
|
|
MAD R2.x, R0.z, c[5], R0.w;
|
|
MAD R0.zw, R3.xyxz, c[0].xyxy, fragment.texcoord[0].xyxy;
|
|
TEX R3.y, R0.zwzw, texture[0], 2D;
|
|
ADD R0.z, R0.y, R3.y;
|
|
ADD R1.x, R6.y, R7.y;
|
|
MAD R0.w, R3.y, c[4], R1.x;
|
|
MAD R1.x, R8.y, c[4].w, R0.z;
|
|
ABS R0.w, R0;
|
|
ADD R2.x, R0.w, R2;
|
|
ADD R2.w, R4.y, R6.y;
|
|
ADD R0.w, R5.y, R7.y;
|
|
ABS R1.z, R1.x;
|
|
MAD R1.x, R1.y, c[4].w, R0.w;
|
|
ABS R1.w, R1.x;
|
|
MAD R1.x, R2.y, c[4].w, R2.w;
|
|
MAD R1.z, R1, c[5].x, R1.w;
|
|
ABS R1.x, R1;
|
|
ADD R1.x, R1, R1.z;
|
|
SGE R4.x, R1, R2;
|
|
MAX R1.x, R3.y, R8.y;
|
|
MAX R1.z, R1.y, R1.x;
|
|
MAX R1.x, R0.y, R2.y;
|
|
MAX R1.x, R1, R1.z;
|
|
MIN R1.z, R3.y, R8.y;
|
|
MIN R1.w, R1.y, R1.z;
|
|
MIN R1.z, R0.y, R2.y;
|
|
MIN R1.z, R1, R1.w;
|
|
MUL R2.x, R1, c[2];
|
|
ADD R3.z, R1.x, -R1;
|
|
ABS R3.w, R4.x;
|
|
MAX R1.w, R2.x, c[3].x;
|
|
ADD R2.z, R3, -R1.w;
|
|
CMP R2.x, R2.z, c[4], c[4].z;
|
|
CMP R1.x, -R3.w, c[4], c[4].z;
|
|
MUL R3.w, R2.x, R1.x;
|
|
CMP R1.z, -R3.w, R1.y, R3.y;
|
|
ADD R1.y, -R8, R1.z;
|
|
CMP R1.w, -R3, R2.y, R0.y;
|
|
ADD R0.y, -R8, R1.w;
|
|
MUL R4.x, R2, R4;
|
|
CMP R3.y, -R3.w, c[0], R3.x;
|
|
ABS R4.w, R1.y;
|
|
ABS R4.z, R0.y;
|
|
SGE R0.y, R4.z, R4.w;
|
|
MUL R1.y, R2.x, R0;
|
|
ABS R0.y, R0;
|
|
CMP R4.y, -R0, c[4].x, c[4].z;
|
|
ABS R0.y, R1.x;
|
|
CMP R0.y, -R0, c[4].x, c[4].z;
|
|
MUL R1.x, R2, R0.y;
|
|
CMP R2.y, -R4.x, c[0], c[0].x;
|
|
CMP R2.y, -R1, -R2, R2;
|
|
MAD R1.y, R2, c[5], fragment.texcoord[0];
|
|
CMP R5.z, -R4.x, R1.y, fragment.texcoord[0].y;
|
|
ADD R5.y, R5.z, -R3;
|
|
MAD R0.y, R2, c[5], fragment.texcoord[0].x;
|
|
CMP R3.x, -R1, c[0], R3;
|
|
CMP R6.x, -R3.w, R0.y, fragment.texcoord[0];
|
|
ADD R5.w, R5.z, R3.y;
|
|
ADD R1.x, R6, -R3;
|
|
MOV R1.y, R5;
|
|
TEX R0.y, R1, texture[0], 2D;
|
|
MUL R1.y, R2.x, R4;
|
|
ADD R0.x, R0.z, R0;
|
|
ADD R0.w, R2, R0;
|
|
MAD R0.z, R0.x, c[5].x, R0.w;
|
|
ADD R1.w, R8.y, R1;
|
|
ADD R1.z, R8.y, R1;
|
|
CMP R4.y, -R1, R1.z, R1.w;
|
|
ADD R1.z, R6.x, R3.x;
|
|
MAD R5.x, -R4.y, c[5].y, R0.y;
|
|
MOV R1.w, R5;
|
|
TEX R0.y, R1.zwzw, texture[0], 2D;
|
|
MAX R1.w, R4.z, R4;
|
|
MAD R1.y, -R4, c[5], R0;
|
|
MUL R4.z, R1.w, c[5];
|
|
ABS R0.y, R1;
|
|
SGE R1.w, R0.y, R4.z;
|
|
ABS R6.y, R5.x;
|
|
SGE R0.y, R6, R4.z;
|
|
ABS R1.w, R1;
|
|
CMP R6.y, -R1.w, c[4].x, c[4].z;
|
|
ABS R0.y, R0;
|
|
CMP R5.z, -R0.y, c[4].x, c[4];
|
|
ADD_SAT R0.y, R5.z, R6;
|
|
MUL R4.w, R2.x, R0.y;
|
|
MUL R0.y, R2.x, R6;
|
|
MAD R1.w, R3.y, c[5], R5;
|
|
CMP R6.x, -R0.y, R1.w, R5.w;
|
|
MAD R6.z, R3.x, c[5].w, R1;
|
|
CMP R1.z, -R0.y, R6, R1;
|
|
MOV R1.w, R6.x;
|
|
TEX R0.y, R1.zwzw, texture[0], 2D;
|
|
MUL R1.w, R4, R6.y;
|
|
CMP R6.y, -R1.w, R0, R1;
|
|
MUL R0.y, R2.x, R5.z;
|
|
MAD R1.y, -R3, c[5].w, R5;
|
|
CMP R5.w, -R0.y, R1.y, R5.y;
|
|
MAD R6.z, -R3.x, c[5].w, R1.x;
|
|
CMP R1.x, -R0.y, R6.z, R1;
|
|
MOV R1.y, R5.w;
|
|
TEX R0.y, R1, texture[0], 2D;
|
|
MUL R5.y, R4.w, R5.z;
|
|
CMP R0.y, -R5, R0, R5.x;
|
|
MAD R5.x, -R4.y, c[5].y, R0.y;
|
|
CMP R5.z, -R5.y, R5.x, R0.y;
|
|
MAD R1.y, -R4, c[5], R6;
|
|
CMP R1.y, -R1.w, R1, R6;
|
|
ABS R1.w, R1.y;
|
|
SGE R1.w, R1, R4.z;
|
|
ABS R0.y, R5.z;
|
|
SGE R0.y, R0, R4.z;
|
|
ABS R1.w, R1;
|
|
CMP R6.y, -R1.w, c[4].x, c[4].z;
|
|
ABS R0.y, R0;
|
|
CMP R5.y, -R0, c[4].x, c[4].z;
|
|
ADD_SAT R0.y, R5, R6;
|
|
MUL R5.x, R4.w, R0.y;
|
|
MUL R0.y, R4.w, R6;
|
|
MAD R1.w, R3.y, c[5].x, R6.x;
|
|
CMP R6.x, -R0.y, R1.w, R6;
|
|
MAD R6.z, R3.x, c[5].x, R1;
|
|
CMP R1.z, -R0.y, R6, R1;
|
|
MOV R1.w, R6.x;
|
|
TEX R0.y, R1.zwzw, texture[0], 2D;
|
|
MUL R1.w, R5.x, R6.y;
|
|
CMP R6.y, -R1.w, R0, R1;
|
|
MUL R0.y, R4.w, R5;
|
|
MAD R1.y, -R3, c[5].x, R5.w;
|
|
CMP R4.w, -R0.y, R1.y, R5;
|
|
MAD R6.z, -R3.x, c[5].x, R1.x;
|
|
CMP R1.x, -R0.y, R6.z, R1;
|
|
MOV R1.y, R4.w;
|
|
TEX R0.y, R1, texture[0], 2D;
|
|
MUL R5.y, R5.x, R5;
|
|
CMP R0.y, -R5, R0, R5.z;
|
|
MAD R5.z, -R4.y, c[5].y, R0.y;
|
|
CMP R5.w, -R5.y, R5.z, R0.y;
|
|
MAD R1.y, -R4, c[5], R6;
|
|
CMP R1.y, -R1.w, R1, R6;
|
|
ABS R1.w, R1.y;
|
|
SGE R1.w, R1, R4.z;
|
|
ABS R1.w, R1;
|
|
CMP R6.y, -R1.w, c[4].x, c[4].z;
|
|
ABS R0.y, R5.w;
|
|
SGE R0.y, R0, R4.z;
|
|
ABS R0.y, R0;
|
|
CMP R5.y, -R0, c[4].x, c[4].z;
|
|
ADD_SAT R0.y, R5, R6;
|
|
MUL R5.z, R5.x, R0.y;
|
|
MUL R0.y, R5.x, R6;
|
|
MAD R1.w, R3.y, c[6].x, R6.x;
|
|
CMP R6.x, -R0.y, R1.w, R6;
|
|
MAD R6.z, R3.x, c[6].x, R1;
|
|
CMP R1.z, -R0.y, R6, R1;
|
|
MOV R1.w, R6.x;
|
|
TEX R0.y, R1.zwzw, texture[0], 2D;
|
|
MUL R1.w, R5.z, R6.y;
|
|
CMP R6.y, -R1.w, R0, R1;
|
|
MUL R0.y, R5.x, R5;
|
|
MAD R1.y, -R3, c[6].x, R4.w;
|
|
CMP R4.w, -R0.y, R1.y, R4;
|
|
MAD R5.x, -R3, c[6], R1;
|
|
CMP R1.x, -R0.y, R5, R1;
|
|
MOV R1.y, R4.w;
|
|
TEX R0.y, R1, texture[0], 2D;
|
|
MUL R1.y, R5.z, R5;
|
|
CMP R5.x, -R1.y, R0.y, R5.w;
|
|
MAD R5.y, -R4, c[5], R5.x;
|
|
CMP R1.y, -R1, R5, R5.x;
|
|
MAD R0.y, -R4, c[5], R6;
|
|
CMP R0.y, -R1.w, R0, R6;
|
|
ABS R5.x, R0.y;
|
|
ABS R1.w, R1.y;
|
|
SGE R1.w, R1, R4.z;
|
|
SGE R5.x, R5, R4.z;
|
|
ABS R4.z, R5.x;
|
|
ABS R1.w, R1;
|
|
CMP R4.z, -R4, c[4].x, c[4];
|
|
CMP R1.w, -R1, c[4].x, c[4].z;
|
|
MUL R4.z, R5, R4;
|
|
MAD R5.y, R3.x, c[6], R1.z;
|
|
CMP R5.y, -R4.z, R5, R1.z;
|
|
MAD R5.x, R3.y, c[6].y, R6;
|
|
CMP R1.z, -R4, R5.x, R6.x;
|
|
MUL R1.w, R5.z, R1;
|
|
ADD R4.z, -fragment.texcoord[0].x, R5.y;
|
|
ADD R1.z, -fragment.texcoord[0].y, R1;
|
|
CMP R1.z, -R3.w, R1, R4;
|
|
MAD R4.z, -R3.x, c[6].y, R1.x;
|
|
MAD R3.x, -R3.y, c[6].y, R4.w;
|
|
CMP R3.y, -R1.w, R4.z, R1.x;
|
|
CMP R1.x, -R1.w, R3, R4.w;
|
|
ADD R1.w, fragment.texcoord[0].x, -R3.y;
|
|
ADD R1.x, fragment.texcoord[0].y, -R1;
|
|
CMP R1.x, -R3.w, R1, R1.w;
|
|
SLT R1.w, R1.x, R1.z;
|
|
ADD R3.x, R1, R1.z;
|
|
ABS R1.w, R1;
|
|
MIN R1.x, R1, R1.z;
|
|
CMP R1.w, -R1, c[4].x, c[4].z;
|
|
MUL R1.z, R2.x, R1.w;
|
|
RCP R3.x, R3.x;
|
|
MAD R1.x, R1, -R3, c[5].y;
|
|
MUL R1.w, R4.y, c[5].y;
|
|
SLT R3.x, R1.y, c[4];
|
|
SLT R1.y, R8, R1.w;
|
|
SLT R0.y, R0, c[4].x;
|
|
ADD R0.y, R0, -R1;
|
|
ADD R1.y, -R1, R3.x;
|
|
ABS R0.y, R0;
|
|
ABS R1.y, R1;
|
|
CMP R0.y, -R0, c[4].z, c[4].x;
|
|
CMP R1.y, -R1, c[4].z, c[4].x;
|
|
CMP R0.x, -R1.z, R0.y, R1.y;
|
|
MAD R0.y, R0.z, c[6].z, -R8;
|
|
ABS R0.x, R0;
|
|
CMP R0.x, -R0, c[4], c[4].z;
|
|
MUL R0.x, R2, R0;
|
|
CMP R0.x, -R0, c[4], R1;
|
|
RCP R0.z, R3.z;
|
|
ABS R0.y, R0;
|
|
MUL_SAT R0.y, R0, R0.z;
|
|
MUL R0.z, R0.y, c[4].w;
|
|
ADD R0.z, R0, c[6].w;
|
|
MUL R0.y, R0, R0;
|
|
MUL R0.y, R0.z, R0;
|
|
MUL R0.y, R0, R0;
|
|
MUL R0.y, R0, c[1].x;
|
|
MAX R0.x, R0, R0.y;
|
|
MAD R0.y, R0.x, R2, fragment.texcoord[0];
|
|
MAD R0.z, R0.x, R2.y, fragment.texcoord[0].x;
|
|
CMP R0.x, -R3.w, R0.z, fragment.texcoord[0];
|
|
CMP R0.y, -R4.x, R0, fragment.texcoord[0];
|
|
TEX R0.xyz, R0, texture[0], 2D;
|
|
CMP R1, R2.z, R8, R9;
|
|
MOV R0.w, R8.y;
|
|
CMP result.color, -R2.x, R0, R1;
|
|
END
|
|
# 260 instructions, 10 R-regs
|