!!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