!!NVfp5.0 OPTION ARB_fragment_program_shadow; # cgc version 3.1.0013, build date Apr 24 2012 # command line args: -O3 -oglsl -profile gp5fp # source file: tile_shader.glsl #vendor NVIDIA Corporation #version 3.1.0.13 #profile gp5fp #program main #semantic tex0 #semantic tex1 #semantic tex2 #semantic tex3 #semantic tex4 #semantic lightpos #semantic lightcolor #semantic shadowparams #semantic shadowoffset #semantic splitcenter #semantic splitbounds #semantic splitscale #semantic splitoffset #semantic csmmatrix #semantic sunlightdir #semantic sunlightcolor #semantic skylightcolor #semantic giscale #semantic rhnudge #semantic rhbb #semantic rhscale #semantic rhoffset #semantic tex6 #semantic tex7 #semantic tex8 #semantic tex9 #semantic camera #semantic worldmatrix #semantic fogdir #semantic fogcolor #semantic fogdensity #semantic radialfogscale #semantic shadowatlasscale #semantic lightscale #semantic tex5 #semantic aoscale #semantic aoparams #semantic gdepthscale #semantic gdepthunpackparams #var float4 gl_FragCoord : $vin.WPOS : WPOS : -1 : 1 #var samplerRECT tex0 : : texunit 2 : -1 : 1 #var samplerRECT tex1 : : texunit 1 : -1 : 1 #var samplerRECT tex2 : : texunit 8 : -1 : 1 #var samplerRECT tex3 : : texunit 0 : -1 : 1 #var samplerRECTSHADOW tex4 : : texunit 9 : -1 : 1 #var float4 lightpos[0] : : c[0] : -1 : 1 #var float4 lightpos[1] : : c[1] : -1 : 1 #var float4 lightpos[2] : : c[2] : -1 : 1 #var float4 lightpos[3] : : c[3] : -1 : 1 #var float3 lightcolor[0] : : c[4] : -1 : 1 #var float3 lightcolor[1] : : c[5] : -1 : 1 #var float3 lightcolor[2] : : c[6] : -1 : 1 #var float3 lightcolor[3] : : c[7] : -1 : 1 #var float4 shadowparams[0] : : c[8] : -1 : 1 #var float4 shadowparams[1] : : c[9] : -1 : 1 #var float4 shadowparams[2] : : c[10] : -1 : 1 #var float4 shadowparams[3] : : c[11] : -1 : 1 #var float2 shadowoffset[0] : : c[12] : -1 : 1 #var float2 shadowoffset[1] : : c[13] : -1 : 1 #var float2 shadowoffset[2] : : c[14] : -1 : 1 #var float2 shadowoffset[3] : : c[15] : -1 : 1 #var float3 splitcenter[0] : : c[16] : -1 : 1 #var float3 splitcenter[1] : : c[17] : -1 : 1 #var float3 splitcenter[2] : : c[18] : -1 : 1 #var float3 splitbounds[0] : : c[19] : -1 : 1 #var float3 splitbounds[1] : : c[20] : -1 : 1 #var float3 splitbounds[2] : : c[21] : -1 : 1 #var float3 splitscale[0] : : c[22] : -1 : 1 #var float3 splitscale[1] : : c[23] : -1 : 1 #var float3 splitscale[2] : : c[24] : -1 : 1 #var float3 splitoffset[0] : : c[25] : -1 : 1 #var float3 splitoffset[1] : : c[26] : -1 : 1 #var float3 splitoffset[2] : : c[27] : -1 : 1 #var float3x3 csmmatrix : : c[28], 3 : -1 : 1 #var float3 sunlightdir : : c[41] : -1 : 1 #var float3 sunlightcolor : : c[42] : -1 : 1 #var float3 skylightcolor : : c[43] : -1 : 1 #var float giscale : : c[44] : -1 : 1 #var float rhnudge : : c[45] : -1 : 1 #var float4 rhbb[0] : : c[31] : -1 : 1 #var float4 rhbb[1] : : c[32] : -1 : 1 #var float3 rhscale[0] : : c[33] : -1 : 1 #var float3 rhscale[1] : : c[34] : -1 : 1 #var float3 rhoffset[0] : : c[35] : -1 : 1 #var float3 rhoffset[1] : : c[36] : -1 : 1 #var sampler3D tex6 : : texunit 3 : -1 : 1 #var sampler3D tex7 : : texunit 4 : -1 : 1 #var sampler3D tex8 : : texunit 5 : -1 : 1 #var sampler3D tex9 : : texunit 6 : -1 : 1 #var float3 camera : : c[46] : -1 : 1 #var float4x4 worldmatrix : : c[37], 4 : -1 : 1 #var float4 fogdir : : : -1 : 0 #var float3 fogcolor : : c[47] : -1 : 1 #var float2 fogdensity : : c[48] : -1 : 1 #var float4 radialfogscale : : : -1 : 0 #var float2 shadowatlasscale : : : -1 : 0 #var float4 lightscale : : c[49] : -1 : 1 #var samplerRECT tex5 : : texunit 7 : -1 : 1 #var float2 aoscale : : c[50] : -1 : 1 #var float4 aoparams : : c[51] : -1 : 1 #var float3 gdepthscale : : : -1 : 0 #var float3 gdepthunpackparams : : : -1 : 0 #var float4 fragcolor : $vout.COL0 : COL0[0] : -1 : 1 PARAM c[52] = { program.local[0..51] }; TEMP R0, R1, R2, R3, R4, R5, R6, R7, R8, R9; TEMP RC, HC; OUTPUT result_color0 = result.color; TEXTURE texture0 = texture[0]; TEXTURE texture1 = texture[1]; TEXTURE texture2 = texture[2]; TEXTURE texture3 = texture[3]; TEXTURE texture4 = texture[4]; TEXTURE texture5 = texture[5]; TEXTURE texture6 = texture[6]; TEXTURE texture7 = texture[7]; TEXTURE texture8 = texture[8]; TEXTURE texture9 = texture[9]; MUL.F R0, fragment.position.y, c[38]; MAD.F R1, fragment.position.x, c[37], R0; TEX.F R0.x, fragment.position, texture0, RECT; MAD.F R0, R0.x, c[39], R1; ADD.F R0, R0, c[40]; DIV.F R6.xyz, R0, R0.w; TEX.F R0.xyz, fragment.position, texture1, RECT; MAD.F R7.xyz, R0, {2, -1}.x, {2, -1}.y; ADD.F R2.xyz, -R6, c[46]; DP3.F R0.w, R2, R2; RSQ.F R0.w, R0.w; MAD.F R0.xyz, R7, c[45].x, R6; ADD.F R1.xyz, R0, -c[31]; MUL.F R4.xyz, R0.w, R2; SLT.F R1.xyz, |R1|, c[31].w; TRUNC.U R1.xyz, R1; DP3.F R1.w, R7, R4; AND.U R1.x, R1, R1.y; AND.U.CC HC.x, R1, R1.z; MUL.F R5.w, R1, {2}.x; RCP.F R4.w, R0.w; TEX.F R3, fragment.position, texture2, RECT; IF NE.x; MUL.F R0.xyz, R0, c[33]; ADD.F R5.xyz, R0, c[35]; ELSE; ADD.F R1.xyz, R0, -c[32]; SLT.F R1.xyz, |R1|, c[32].w; TRUNC.U R1.xyz, R1; AND.U R0.w, R1.x, R1.y; AND.U.CC HC.x, R0.w, R1.z; IF NE.x; MUL.F R0.xyz, R0, c[34]; ADD.F R5.xyz, R0, c[36]; ELSE; MOV.F R5.xyz, {-1}.x; ENDIF; ENDIF; TEX.F R0, R5, texture6, 3D; MUL.F R2.xyz, R7, {-0.31831026}.x; MOV.F R2.w, {0.079577506}.x; ADD.F R0.xyz, R0, {-0.5}.x; DP4.F R1.x, R2, R0; TEX.F R0, R5, texture3, 3D; ADD.F R1.y, R7.z, {1}.x; MIN.F.SAT R6.w, R1.x, R1.y; TEX.F R1, R5, texture5, 3D; ADD.F R0.xyz, R0, {-0.5}.x; DP4.F.SAT R8.x, R2, R0; TEX.F R0, R5, texture4, 3D; ADD.F R1.xyz, R1, {-0.5}.x; DP4.F.SAT R8.z, R2, R1; MUL.F R1.xyz, R6.w, c[43]; ADD.F R0.xyz, R0, {-0.5}.x; DP4.F.SAT R8.y, R2, R0; ADD.F R2.xyz, R1, c[49]; MUL.F R0.xyz, R8, c[44].x; TEX.F R1, fragment.position, texture8, RECT; DP3.F R6.w, R7, c[41]; SGT.F R7.w, R6, {0}.x; TRUNC.U.CC HC.x, R7.w; MUL.F R5.xy, fragment.position, c[50]; MUL.F R0.yzw, R3.xxyz, R0.xxyz; TEX.F R0.x, R5, texture7, RECT; MUL.F R2.xyz, R2, R3; MUL.F R1.xyz, R1, c[49].w; MAD.F R2.w, R0.x, c[51].y, c[51].x; MAD.F R5.xyz, R2, R2.w, R1; IF NE.x; MUL.F R1.xyz, R6.y, c[29]; MAD.F R1.xyz, R6.x, c[28], R1; MAD.F R1.xyz, R6.z, c[30], R1; ADD.F R2.xyz, R1, -c[16]; SLT.F R2.xyz, |R2|, c[19]; TRUNC.U R2.xyz, R2; AND.U R2.x, R2, R2.y; AND.U.CC HC.x, R2, R2.z; IF NE.x; MUL.F R1.xyz, R1, c[22]; ADD.F R1.xyz, R1, c[25]; ELSE; ADD.F R2.xyz, R1, -c[17]; SLT.F R2.xyz, |R2|, c[20]; TRUNC.U R2.xyz, R2; AND.U R2.x, R2, R2.y; AND.U.CC HC.x, R2, R2.z; IF NE.x; MUL.F R1.xyz, R1, c[23]; ADD.F R1.xyz, R1, c[26]; ELSE; ADD.F R2.xy, R1, -c[18]; SLT.F R2.xy, |R2|, c[21]; TRUNC.U R2.xy, R2; AND.U.CC HC.x, R2, R2.y; IF NE.x; MUL.F R1.xyz, R1, c[24]; ADD.F R1.xyz, R1, c[27]; ELSE; MOV.F R1.xyz, {-1}.x; ENDIF; ENDIF; ENDIF; ADD.F R2.xy, R1, {-0.5}.x; FRC.F R8.xy, R2; MAD.F R2.yz, -R8.xxyw, {0.5}.x, R1.xxyw; MOV.F R2.w, R1.z; ADD.F R9.yzw, R2, {-0.5, 1, 0}.xxyz; TEX.F R2.x, R9.yzww, texture9, SHADOWRECT; ADD.F R1.xyz, R2.yzww, {-0.5, 0}.xxyw; ADD.F R8.zw, -R8.xyxy, {2}.x; TEX.F R9.x, R1, texture9, SHADOWRECT; ADD.F R1.xyz, R2.yzww, {1, -0.5, 0}; TEX.F R1.x, R1, texture9, SHADOWRECT; MOV.F R9.y, R1.x; ADD.F R1.xyz, R2.yzww, {1, 0}.xxyw; TEX.F R1.x, R1, texture9, SHADOWRECT; MOV.F R9.z, R2.x; DP3.F R2.x, R4, c[41]; ADD.F R8.xy, R8, {1}.x; MAD.F.SAT R1.y, R6.w, R5.w, -R2.x; MOV.F R9.w, R1.x; MUL.F R8, R8.zxzx, R8.wwyy; POW.F R1.x, R1.y, {16}.x; DP4.F R2.x, R8, R9; MAD.F R1.xyz, R1.x, R3.w, R3; MUL.F R2.x, R2, R6.w; MUL.F R1.xyz, R2.x, R1; MAD.F R0.yzw, R1.xxyz, {0.11111111}.x, R0; ENDIF; MAD.F R1.xyz, R6, c[0].w, -c[0]; MAD.F R0.x, R0, c[51].w, c[51].z; MUL.F R0.xyz, R0.yzww, R0.x; DP3.F R2.x, R1, R1; SLT.F R0.w, R2.x, {1}.x; TRUNC.U.CC HC.x, R0.w; MAD.F R5.xyz, R0, c[42], R5; IF NE.x; DP3.F R9.w, R1, R7; SLT.F R0.x, R9.w, {0}; TRUNC.U.CC HC.x, R0; IF NE.x; MAX.F R2.z, |R1.x|, |R1.y|; MAX.F R0.x, |R1.z|, R2.z; DIV.F R9.xy, c[8], R0.x; RSQ.F R7.w, R2.x; SGT.F R0.x, |R1|, |R1.y|; TRUNC.U.CC HC.x, R0; MOV.F R2.y, |R1.z|; MAD.F R6.w, -R7, R9, R9; IF NE.x; MOV.F R0.xyz, R1.zyxw; MOV.F R0.w, {0}.x; ELSE; MOV.F R0.xyz, R1.xzyw; MOV.F R0.w, {1}.x; ENDIF; SGT.F R2.x, R2.y, R2.z; TRUNC.U.CC HC.x, R2; IF NE.x; MOV.F R0.xyz, R1; MOV.F R0.w, {2}.x; ENDIF; SGE.F R0.z, {0}.x, R0; TRUNC.U R0.z, R0; ADD.F R9.z, R9.y, c[8].w; I2F.U R2.y, R0.z; MOV.F R2.x, R0.w; MUL.F R0.zw, R2.xyxy, c[8].z; MAD.F R0.xy, R0, R9.x, R0.zwzw; ADD.F R8.xy, R0, c[12]; ADD.F R0.xy, R8, {-0.5}.x; FRC.F R8.zw, R0.xyxy; MAD.F R9.xy, -R8.zwzw, {0.5}.x, R8; ADD.F R0.zw, -R8, {2}.x; ADD.F R0.xy, R8.zwzw, {1}.x; MUL.F R2, R0.zxzx, R0.wwyy; ADD.F R8.xyz, R9, {-0.5, 0}.xxyw; ADD.F R0.xyz, R9, {1, -0.5, 0}; TEX.F R0.x, R0, texture9, SHADOWRECT; TEX.F R8.x, R8, texture9, SHADOWRECT; ADD.F R0.yzw, R9.xxyz, {-0.5, 1, 0}.xxyz; MOV.F R8.y, R0.x; TEX.F R0.x, R0.yzww, texture9, SHADOWRECT; DP3.F R0.y, R4, R1; MAD.F R0.w, -R9, R5, R0.y; MOV.F R8.z, R0.x; ADD.F R0.xyz, R9, {1, 0}.xxyw; TEX.F R0.x, R0, texture9, SHADOWRECT; MUL.F.SAT R0.w, R7, R0; POW.F R0.y, R0.w, {16}.x; MOV.F R8.w, R0.x; MAD.F R0.xyz, R0.y, R3.w, R3; DP4.F R0.w, R2, R8; MUL.F R0.xyz, R0, c[4]; MUL.F R0.w, R0, R6; MUL.F R0.xyz, R0.w, R0; MAD.F R5.xyz, R0, {0.11111111}.x, R5; ENDIF; ENDIF; MAD.F R9.xyz, R6, c[1].w, -c[1]; DP3.F R0.x, R9, R9; SLT.F R0.y, R0.x, {1}.x; TRUNC.U.CC HC.x, R0.y; IF NE.x; DP3.F R9.w, R9, R7; SLT.F R0.y, R9.w, {0}.x; TRUNC.U.CC HC.x, R0.y; IF NE.x; RSQ.F R7.w, R0.x; MAX.F R1.y, |R9.x|, |R9|; MAX.F R0.y, |R9.z|, R1; SGT.F R0.x, |R9|, |R9.y|; TRUNC.U.CC HC.x, R0; DIV.F R8.zw, c[9].xyxy, R0.y; MOV.F R1.x, |R9.z|; MAD.F R6.w, -R7, R9, R9; IF NE.x; MOV.F R0.xyz, R9.zyxw; MOV.F R0.w, {0}.x; ELSE; MOV.F R0.xyz, R9.xzyw; MOV.F R0.w, {1}.x; ENDIF; SGT.F R1.x, R1, R1.y; TRUNC.U.CC HC.x, R1; IF NE.x; MOV.F R0.xyz, R9; MOV.F R0.w, {2}.x; ENDIF; SGE.F R0.z, {0}.x, R0; TRUNC.U R0.z, R0; ADD.F R1.z, R8.w, c[9].w; I2F.U R1.y, R0.z; MOV.F R1.x, R0.w; MUL.F R0.zw, R1.xyxy, c[9].z; MAD.F R0.xy, R0, R8.z, R0.zwzw; ADD.F R1.xy, R0, c[13]; ADD.F R0.xy, R1, {-0.5}.x; FRC.F R8.xy, R0; MAD.F R1.xy, -R8, {0.5}.x, R1; ADD.F R0.zw, -R8.xyxy, {2}.x; ADD.F R0.xy, R8, {1}.x; MUL.F R2, R0.zxzx, R0.wwyy; ADD.F R8.xyz, R1, {-0.5, 0}.xxyw; ADD.F R0.xyz, R1, {1, -0.5, 0}; TEX.F R0.x, R0, texture9, SHADOWRECT; TEX.F R8.x, R8, texture9, SHADOWRECT; ADD.F R0.yzw, R1.xxyz, {-0.5, 1, 0}.xxyz; MOV.F R8.y, R0.x; TEX.F R0.x, R0.yzww, texture9, SHADOWRECT; DP3.F R0.y, R4, R9; MAD.F R0.w, -R9, R5, R0.y; MOV.F R8.z, R0.x; ADD.F R0.xyz, R1, {1, 0}.xxyw; TEX.F R0.x, R0, texture9, SHADOWRECT; MUL.F.SAT R0.w, R7, R0; POW.F R0.y, R0.w, {16}.x; MOV.F R8.w, R0.x; MAD.F R0.xyz, R0.y, R3.w, R3; DP4.F R0.w, R2, R8; MUL.F R0.xyz, R0, c[5]; MUL.F R0.w, R0, R6; MUL.F R0.xyz, R0.w, R0; MAD.F R5.xyz, R0, {0.11111111}.x, R5; ENDIF; ENDIF; MAD.F R9.xyz, R6, c[2].w, -c[2]; DP3.F R0.x, R9, R9; SLT.F R0.y, R0.x, {1}.x; TRUNC.U.CC HC.x, R0.y; IF NE.x; DP3.F R9.w, R9, R7; SLT.F R0.y, R9.w, {0}.x; TRUNC.U.CC HC.x, R0.y; IF NE.x; RSQ.F R7.w, R0.x; MAX.F R1.y, |R9.x|, |R9|; MAX.F R0.y, |R9.z|, R1; SGT.F R0.x, |R9|, |R9.y|; TRUNC.U.CC HC.x, R0; DIV.F R8.zw, c[10].xyxy, R0.y; MOV.F R1.x, |R9.z|; MAD.F R6.w, -R7, R9, R9; IF NE.x; MOV.F R0.xyz, R9.zyxw; MOV.F R0.w, {0}.x; ELSE; MOV.F R0.xyz, R9.xzyw; MOV.F R0.w, {1}.x; ENDIF; SGT.F R1.x, R1, R1.y; TRUNC.U.CC HC.x, R1; IF NE.x; MOV.F R0.xyz, R9; MOV.F R0.w, {2}.x; ENDIF; SGE.F R0.z, {0}.x, R0; TRUNC.U R0.z, R0; ADD.F R1.z, R8.w, c[10].w; I2F.U R1.y, R0.z; MOV.F R1.x, R0.w; MUL.F R0.zw, R1.xyxy, c[10].z; MAD.F R0.xy, R0, R8.z, R0.zwzw; ADD.F R1.xy, R0, c[14]; ADD.F R0.xy, R1, {-0.5}.x; FRC.F R8.xy, R0; MAD.F R1.xy, -R8, {0.5}.x, R1; ADD.F R0.zw, -R8.xyxy, {2}.x; ADD.F R0.xy, R8, {1}.x; MUL.F R2, R0.zxzx, R0.wwyy; ADD.F R8.xyz, R1, {-0.5, 0}.xxyw; ADD.F R0.xyz, R1, {1, -0.5, 0}; TEX.F R0.x, R0, texture9, SHADOWRECT; TEX.F R8.x, R8, texture9, SHADOWRECT; ADD.F R0.yzw, R1.xxyz, {-0.5, 1, 0}.xxyz; MOV.F R8.y, R0.x; TEX.F R0.x, R0.yzww, texture9, SHADOWRECT; DP3.F R0.y, R4, R9; MAD.F R0.w, -R9, R5, R0.y; MOV.F R8.z, R0.x; ADD.F R0.xyz, R1, {1, 0}.xxyw; TEX.F R0.x, R0, texture9, SHADOWRECT; MUL.F.SAT R0.w, R7, R0; POW.F R0.y, R0.w, {16}.x; MOV.F R8.w, R0.x; MAD.F R0.xyz, R0.y, R3.w, R3; DP4.F R0.w, R2, R8; MUL.F R0.xyz, R0, c[6]; MUL.F R0.w, R0, R6; MUL.F R0.xyz, R0.w, R0; MAD.F R5.xyz, R0, {0.11111111}.x, R5; ENDIF; ENDIF; MAD.F R1.xyz, R6, c[3].w, -c[3]; DP3.F R0.x, R1, R1; SLT.F R0.y, R0.x, {1}.x; TRUNC.U.CC HC.x, R0.y; IF NE.x; DP3.F R9.x, R1, R7; SLT.F R0.y, R9.x, {0}.x; TRUNC.U.CC HC.x, R0.y; IF NE.x; RSQ.F R8.w, R0.x; MAX.F R2.y, |R1.x|, |R1|; MAX.F R0.y, |R1.z|, R2; SGT.F R0.x, |R1|, |R1.y|; TRUNC.U.CC HC.x, R0; DIV.F R7.xy, c[11], R0.y; MOV.F R2.x, |R1.z|; MAD.F R7.w, -R8, R9.x, R9.x; IF NE.x; MOV.F R0.xyz, R1.zyxw; MOV.F R0.w, {0}.x; ELSE; MOV.F R0.xyz, R1.xzyw; MOV.F R0.w, {1}.x; ENDIF; SGT.F R2.x, R2, R2.y; TRUNC.U.CC HC.x, R2; IF NE.x; MOV.F R0.xyz, R1; MOV.F R0.w, {2}.x; ENDIF; SGE.F R0.z, {0}.x, R0; TRUNC.U R0.z, R0; ADD.F R7.z, R7.y, c[11].w; I2F.U R2.y, R0.z; MOV.F R2.x, R0.w; MUL.F R0.zw, R2.xyxy, c[11].z; MAD.F R0.xy, R0, R7.x, R0.zwzw; ADD.F R6.xy, R0, c[15]; ADD.F R0.xy, R6, {-0.5}.x; FRC.F R6.zw, R0.xyxy; MAD.F R7.xy, -R6.zwzw, {0.5}.x, R6; ADD.F R0.zw, -R6, {2}.x; ADD.F R0.xy, R6.zwzw, {1}.x; MUL.F R2, R0.zxzx, R0.wwyy; ADD.F R6.xyz, R7, {-0.5, 0}.xxyw; ADD.F R0.xyz, R7, {1, -0.5, 0}; TEX.F R0.x, R0, texture9, SHADOWRECT; TEX.F R6.x, R6, texture9, SHADOWRECT; DP3.F R0.y, R4, R1; MAD.F R0.w, -R9.x, R5, R0.y; MOV.F R6.y, R0.x; ADD.F R8.xyz, R7, {-0.5, 1, 0}; TEX.F R0.x, R8, texture9, SHADOWRECT; MOV.F R6.z, R0.x; ADD.F R0.xyz, R7, {1, 0}.xxyw; TEX.F R0.x, R0, texture9, SHADOWRECT; MUL.F.SAT R0.w, R8, R0; POW.F R0.y, R0.w, {16}.x; MOV.F R6.w, R0.x; MAD.F R0.xyz, R0.y, R3.w, R3; MUL.F R1.xyz, R0, c[7]; DP4.F R0.w, R2, R6; MUL.F R0.x, R0.w, R7.w; MUL.F R0.xyz, R0.x, R1; MAD.F R5.xyz, R0, {0.11111111}.x, R5; ENDIF; ENDIF; MUL.F R0.x, R4.w, c[48]; EX2.F R0.x, R0.x; MAD.F R2.xyz, -R1.w, c[47], R5; MUL.F R1.xyz, R1.w, c[47]; MUL.F.SAT R0.x, R0, c[48].y; MAD.F result_color0.xyz, R0.x, R2, R1; MOV.F result_color0.w, R1; END # 407 instructions, 10 R-regs