Post Fxaa Default
(post_FXAA:default
, 0xe74ee320ebd89534
)
This template is referenced 1 time by post_FXAA.
Technique ambient
Render States
More info can be found on the Direct3D Docs
enum D3DRENDERSTATETYPE {
D3DRS_ZENABLE = 0,
D3DRS_ZFUNC = 4,
D3DRS_ZWRITEENABLE = 0,
D3DRS_ALPHABLENDENABLE = 0,
D3DRS_CULLMODE = 1,
D3DRS_COLORWRITEENABLE = 7,
D3DRS_COLORWRITEENABLE1 = 15,
D3DRS_COLORWRITEENABLE2 = 15,
D3DRS_STENCILENABLE = 0,
D3DRS_STENCILFUNC = 1,
D3DRS_STENCILFAIL = 1,
D3DRS_STENCILMASK = 0,
D3DRS_STENCILPASS = 1,
D3DRS_STENCILREF = 0,
D3DRS_STENCILWRITEMASK = 0,
D3DRS_STENCILZFAIL = 1,
D3DRS_DEPTHBIAS = 0,
D3DRS_SLOPESCALEDEPTHBIAS = 0,
D3DRS_FOGENABLE = 0,
D3DRS_SPECULARENABLE = 0,
D3DRS_ADAPTIVETESS_X = 0,
D3DRS_ADAPTIVETESS_Z = 0,
D3DRS_ADAPTIVETESS_W = 0,
D3DRS_SRGBWRITEENABLE = 0,
D3DRS_SEPARATEALPHABLENDENABLE = 0,
D3DRS_ALPHATESTENABLE = 0,
};
Sampler States
More info can be found on the Direct3D Docs
Sampler 0
enum D3DSAMPLERSTATETYPE {
D3DSAMP_MIPMAPLODBIAS = 827606343,
D3DSAMP_SRGBTEXTURE = 0,
D3DSAMP_ADDRESSU = 3,
D3DSAMP_ADDRESSV = 3,
D3DSAMP_MAGFILTER = 2,
D3DSAMP_MINFILTER = 2,
D3DSAMP_MIPFILTER = 2,
};
Shaders
Vertex Shader
column_major float4x4 view_proj_matrix : register(vs_3_0, c0);
struct VertexMain_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct VertexMain_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
VertexMain_Output VertexMain(VertexMain_Input i)
{
VertexMain_Output o;
// def c4, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// dp4 o0.x, v0, c0
o.position.x = dot(i.position, (view_proj_matrix._m00_m10_m20_m30));
// dp4 o0.y, v0, c1
o.position.y = dot(i.position, (view_proj_matrix._m01_m11_m21_m31));
// dp4 o0.w, v0, c3
o.position.w = dot(i.position, (view_proj_matrix._m03_m13_m23_m33));
// mov o0.z, c4.x
o.position.z = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
Decompiled by DXDecompiler.
Pixel Shader
sampler2D diffuse_texture : register(ps_3_0, s0);
float2 render_target_size : register(ps_3_0, c0);
float4 PixelMain(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9;
// def c1, 1, 0, -1, 0.166
// def c2, -0.0833, -2, 2, 0.083333336
// def c3, 0.5, -2, 3, 0.25
// def c4, 1.5, 4, 12, 0.75
// dcl_texcoord v0.xy
// dcl_2d s0
// rcp r0.x, c0.x
temp0.x = 1.0f / render_target_size.x;
// rcp r0.y, c0.y
temp0.y = 1.0f / render_target_size.y;
// mul r1, c1.xxyy, v0.xyxx
temp1 = float4(1, 1, 0, 0) * texcoord.xyxx;
// texldl r1, r1, s0
temp1 = tex2Dlod(diffuse_texture, temp1);
// mov r0.z, r0.y
temp0.z = temp0.y;
// add r2.y, r0.z, v0.y
temp2.y = temp0.z + texcoord.y;
// mul r2.zw, c1.xyxy, v0.x
temp2.zw = float2(1, 0) * texcoord.xx;
// texldl r2, r2.zyww, s0
temp2 = tex2Dlod(diffuse_texture, temp2.zyww);
// mad r3.xy, r0, c1, v0
temp3.xy = temp0.xy * float2(1, 0) + texcoord.xy;
// mov r3.zw, c1.y
temp3.zw = float2(0, 0);
// texldl r3, r3, s0
temp3 = tex2Dlod(diffuse_texture, temp3);
// mad r4.y, r0.y, c1.z, v0.y
temp4.y = temp0.y * float1(-1) + texcoord.y;
// mul r4.zw, c1.xyxy, v0.x
temp4.zw = float2(1, 0) * texcoord.xx;
// texldl r4, r4.zyww, s0
temp4 = tex2Dlod(diffuse_texture, temp4.zyww);
// mad r5.xy, r0, c1.zyzw, v0
temp5.xy = temp0.xy * float2(-1, 0) + texcoord.xy;
// mov r5.zw, c1.y
temp5.zw = float2(0, 0);
// texldl r5, r5, s0
temp5 = tex2Dlod(diffuse_texture, temp5);
// max r0.z, r2.y, r1.y
temp0.z = max(temp2.y, temp1.y);
// min r0.w, r1.y, r2.y
temp0.w = min(temp1.y, temp2.y);
// max r2.x, r3.y, r0.z
temp2.x = max(temp3.y, temp0.z);
// min r2.z, r0.w, r3.y
temp2.z = min(temp0.w, temp3.y);
// max r0.z, r4.y, r5.y
temp0.z = max(temp4.y, temp5.y);
// min r0.w, r5.y, r4.y
temp0.w = min(temp5.y, temp4.y);
// max r3.x, r0.z, r2.x
temp3.x = max(temp0.z, temp2.x);
// min r3.z, r2.z, r0.w
temp3.z = min(temp2.z, temp0.w);
// mul r0.z, r3.x, c1.w
temp0.z = temp3.x * float1(0.166);
// add r0.w, -r3.z, r3.x
temp0.w = -temp3.z + temp3.x;
// min r2.x, -r0.z, c2.x
temp2.x = min(-temp0.z, float1(-0.0833));
// if_lt r0.w, -r2.x
if (temp0.w < -temp2.x) {
// mov oC0, r1
out_color = temp1;
// else
} else {
// add r6.xy, -r0, v0
temp6.xy = -temp0.xy + texcoord.xy;
// mov r6.zw, c1.y
temp6.zw = float2(0, 0);
// texldl r6, r6, s0
temp6 = tex2Dlod(diffuse_texture, temp6);
// add r7.xy, r0, v0
temp7.xy = temp0.xy + texcoord.xy;
// mov r7.zw, c1.y
temp7.zw = float2(0, 0);
// texldl r7, r7, s0
temp7 = tex2Dlod(diffuse_texture, temp7);
// mad r8.xy, r0, c1.xzzw, v0
temp8.xy = temp0.xy * float2(1, -1) + texcoord.xy;
// mov r8.zw, c1.y
temp8.zw = float2(0, 0);
// texldl r8, r8, s0
temp8 = tex2Dlod(diffuse_texture, temp8);
// mad r9.xy, r0, c1.zxzw, v0
temp9.xy = temp0.xy * float2(-1, 1) + texcoord.xy;
// mov r9.zw, c1.y
temp9.zw = float2(0, 0);
// texldl r9, r9, s0
temp9 = tex2Dlod(diffuse_texture, temp9);
// add r0.z, r2.y, r4.y
temp0.z = temp2.y + temp4.y;
// add r1.x, r3.y, r5.y
temp1.x = temp3.y + temp5.y;
// rcp r0.w, r0.w
temp0.w = 1.0f / temp0.w;
// add r1.z, r0.z, r1.x
temp1.z = temp0.z + temp1.x;
// mad r0.z, r1.y, c2.y, r0.z
temp0.z = temp1.y * float1(-2) + temp0.z;
// mad r1.x, r1.y, c2.y, r1.x
temp1.x = temp1.y * float1(-2) + temp1.x;
// add r1.w, r7.y, r8.y
temp1.w = temp7.y + temp8.y;
// add r2.x, r6.y, r8.y
temp2.x = temp6.y + temp8.y;
// mad r2.z, r3.y, c2.y, r1.w
temp2.z = temp3.y * float1(-2) + temp1.w;
// mad r2.x, r4.y, c2.y, r2.x
temp2.x = temp4.y * float1(-2) + temp2.x;
// add r2.w, r6.y, r9.y
temp2.w = temp6.y + temp9.y;
// add r3.x, r7.y, r9.y
temp3.x = temp7.y + temp9.y;
// mad r0.z, r0_abs.z, c2.z, r2_abs.z
temp0.z = abs(temp0).z * float1(2) + abs(temp2).z;
// mad r1.x, r1_abs.x, c2.z, r2_abs.x
temp1.x = abs(temp1).x * float1(2) + abs(temp2).x;
// mad r2.x, r5.y, c2.y, r2.w
temp2.x = temp5.y * float1(-2) + temp2.w;
// mad r2.z, r2.y, c2.y, r3.x
temp2.z = temp2.y * float1(-2) + temp3.x;
// add r0.z, r0.z, r2_abs.x
temp0.z = temp0.z + abs(temp2).x;
// add r1.x, r1.x, r2_abs.z
temp1.x = temp1.x + abs(temp2).z;
// add r1.w, r1.w, r2.w
temp1.w = temp1.w + temp2.w;
// add r0.z, r0.z, -r1.x
temp0.z = temp0.z + -temp1.x;
// mad r1.x, r1.z, c2.z, r1.w
temp1.x = temp1.z * float1(2) + temp1.w;
// cmp r1.z, r0.z, r4.y, r5.y
temp1.z = (temp0.z >= 0) ? temp4.y : temp5.y;
// cmp r1.w, r0.z, r2.y, r3.y
temp1.w = (temp0.z >= 0) ? temp2.y : temp3.y;
// cmp r2.x, r0.z, r0.y, r0.x
temp2.x = (temp0.z >= 0) ? temp0.y : temp0.x;
// mad r1.x, r1.x, c2.w, -r1.y
temp1.x = temp1.x * float1(0.083333336) + -temp1.y;
// add r2.yz, -r1.y, r1.xzww
temp2.yz = -temp1.yy + temp1.zw;
// add r1.zw, r1.y, r1
temp1.zw = temp1.yy + temp1.zw;
// add r2.w, -r2_abs.z, r2_abs.y
temp2.w = -abs(temp2).z + abs(temp2).y;
// max r3.x, r2_abs.y, r2_abs.z
temp3.x = max(abs(temp2).y, abs(temp2).z);
// cmp r2.x, r2.w, -r2.x, r2.x
temp2.x = (temp2.w >= 0) ? -temp2.x : temp2.x;
// mul_sat r0.w, r0.w, r1_abs.x
temp0.w = saturate(temp0.w * abs(temp1).x);
// cmp r0.x, r0.z, r0.x, c1.y
temp0.x = (temp0.z >= 0) ? temp0.x : float1(0);
// cmp r0.y, r0.z, c1.y, r0.y
temp0.y = (temp0.z >= 0) ? float1(0) : temp0.y;
// mad r2.yz, r2.x, c3.x, v0.xxyw
temp2.yz = temp2.xx * float2(0.5, 0.5) + texcoord.xy;
// cmp r1.x, r0.z, v0.x, r2.y
temp1.x = (temp0.z >= 0) ? texcoord.x : temp2.y;
// cmp r2.y, r0.z, r2.z, v0.y
temp2.y = (temp0.z >= 0) ? temp2.z : texcoord.y;
// add r4.x, -r0.x, r1.x
temp4.x = -temp0.x + temp1.x;
// add r4.y, -r0.y, r2.y
temp4.y = -temp0.y + temp2.y;
// add r5.x, r0.x, r1.x
temp5.x = temp0.x + temp1.x;
// add r5.y, r0.y, r2.y
temp5.y = temp0.y + temp2.y;
// mad r1.x, r0.w, c3.y, c3.z
temp1.x = temp0.w * float1(-2) + float1(3);
// mov r4.zw, c1.y
temp4.zw = float2(0, 0);
// texldl r6, r4, s0
temp6 = tex2Dlod(diffuse_texture, temp4);
// mul r0.w, r0.w, r0.w
temp0.w = temp0.w * temp0.w;
// mov r5.zw, c1.y
temp5.zw = float2(0, 0);
// texldl r7, r5, s0
temp7 = tex2Dlod(diffuse_texture, temp5);
// cmp r1.z, r2.w, r1.z, r1.w
temp1.z = (temp2.w >= 0) ? temp1.z : temp1.w;
// mul r1.w, r3.x, c3.w
temp1.w = temp3.x * float1(0.25);
// mad r2.y, r1.z, -c3.x, r1.y
temp2.y = temp1.z * float1(-0.5) + temp1.y;
// mul r0.w, r0.w, r1.x
temp0.w = temp0.w * temp1.x;
// mad r2.z, r1.z, -c3.x, r6.y
temp2.z = temp1.z * float1(-0.5) + temp6.y;
// mad r2.w, r1.z, -c3.x, r7.y
temp2.w = temp1.z * float1(-0.5) + temp7.y;
// mad r3.yz, r3.x, -c3.w, r2_abs.xzww
temp3.yz = temp3.xx * float2(-0.25, -0.25) + abs(temp2).zw;
// mad r1.x, r0.x, -c4.x, r4.x
temp1.x = temp0.x * float1(-1.5) + temp4.x;
// cmp r6.x, r3.y, r4.x, r1.x
temp6.x = (temp3.y >= 0) ? temp4.x : temp1.x;
// mad r1.x, r0.y, -c4.x, r4.y
temp1.x = temp0.y * float1(-1.5) + temp4.y;
// cmp r6.y, r3.y, r4.y, r1.x
temp6.y = (temp3.y >= 0) ? temp4.y : temp1.x;
// cmp r4.xy, r3.yzzw, c1.y, c1.x
temp4.xy = (temp3.yz >= 0) ? float2(0, 0) : float2(1, 1);
// add r1.x, r4.y, r4.x
temp1.x = temp4.y + temp4.x;
// mad r3.w, r0.x, c4.x, r5.x
temp3.w = temp0.x * float1(1.5) + temp5.x;
// cmp r4.x, r3.z, r5.x, r3.w
temp4.x = (temp3.z >= 0) ? temp5.x : temp3.w;
// mad r3.w, r0.y, c4.x, r5.y
temp3.w = temp0.y * float1(1.5) + temp5.y;
// cmp r4.y, r3.z, r5.y, r3.w
temp4.y = (temp3.z >= 0) ? temp5.y : temp3.w;
// if_lt -r1.x, c1.y
if (-temp1.x < float4(0, 0, 0, 0)) {
// if_ge r2_abs.z, r1.w
if (abs(temp2).z >= temp1.w) {
// else
} else {
// mov r6.zw, c1.y
temp6.zw = float2(0, 0);
// texldl r5, r6, s0
temp5 = tex2Dlod(diffuse_texture, temp6);
// mov r2.z, r5.y
temp2.z = temp5.y;
// endif
}
// if_ge r2_abs.w, r1.w
if (abs(temp2).w >= temp1.w) {
// else
} else {
// mov r4.zw, c1.y
temp4.zw = float2(0, 0);
// texldl r5, r4, s0
temp5 = tex2Dlod(diffuse_texture, temp4);
// mov r2.w, r5.y
temp2.w = temp5.y;
// endif
}
// mad r1.x, r1.z, -c3.x, r2.z
temp1.x = temp1.z * float1(-0.5) + temp2.z;
// cmp r2.z, r3.y, r2.z, r1.x
temp2.z = (temp3.y >= 0) ? temp2.z : temp1.x;
// mad r1.x, r1.z, -c3.x, r2.w
temp1.x = temp1.z * float1(-0.5) + temp2.w;
// cmp r2.w, r3.z, r2.w, r1.x
temp2.w = (temp3.z >= 0) ? temp2.w : temp1.x;
// mad r3.yz, r3.x, -c3.w, r2_abs.xzww
temp3.yz = temp3.xx * float2(-0.25, -0.25) + abs(temp2).zw;
// mad r1.x, r0.x, -c2.z, r6.x
temp1.x = temp0.x * float1(-2) + temp6.x;
// cmp r6.x, r3.y, r6.x, r1.x
temp6.x = (temp3.y >= 0) ? temp6.x : temp1.x;
// mad r1.x, r0.y, -c2.z, r6.y
temp1.x = temp0.y * float1(-2) + temp6.y;
// cmp r6.y, r3.y, r6.y, r1.x
temp6.y = (temp3.y >= 0) ? temp6.y : temp1.x;
// cmp r5.xy, r3.yzzw, c1.y, c1.x
temp5.xy = (temp3.yz >= 0) ? float2(0, 0) : float2(1, 1);
// add r1.x, r5.y, r5.x
temp1.x = temp5.y + temp5.x;
// mad r3.w, r0.x, c2.z, r4.x
temp3.w = temp0.x * float1(2) + temp4.x;
// cmp r4.x, r3.z, r4.x, r3.w
temp4.x = (temp3.z >= 0) ? temp4.x : temp3.w;
// mad r3.w, r0.y, c2.z, r4.y
temp3.w = temp0.y * float1(2) + temp4.y;
// cmp r4.y, r3.z, r4.y, r3.w
temp4.y = (temp3.z >= 0) ? temp4.y : temp3.w;
// if_lt -r1.x, c1.y
if (-temp1.x < float4(0, 0, 0, 0)) {
// if_ge r2_abs.z, r1.w
if (abs(temp2).z >= temp1.w) {
// else
} else {
// mov r6.zw, c1.y
temp6.zw = float2(0, 0);
// texldl r5, r6, s0
temp5 = tex2Dlod(diffuse_texture, temp6);
// mov r2.z, r5.y
temp2.z = temp5.y;
// endif
}
// if_ge r2_abs.w, r1.w
if (abs(temp2).w >= temp1.w) {
// else
} else {
// mov r4.zw, c1.y
temp4.zw = float2(0, 0);
// texldl r5, r4, s0
temp5 = tex2Dlod(diffuse_texture, temp4);
// mov r2.w, r5.y
temp2.w = temp5.y;
// endif
}
// mad r1.x, r1.z, -c3.x, r2.z
temp1.x = temp1.z * float1(-0.5) + temp2.z;
// cmp r2.z, r3.y, r2.z, r1.x
temp2.z = (temp3.y >= 0) ? temp2.z : temp1.x;
// mad r1.x, r1.z, -c3.x, r2.w
temp1.x = temp1.z * float1(-0.5) + temp2.w;
// cmp r2.w, r3.z, r2.w, r1.x
temp2.w = (temp3.z >= 0) ? temp2.w : temp1.x;
// mad r3.yz, r3.x, -c3.w, r2_abs.xzww
temp3.yz = temp3.xx * float2(-0.25, -0.25) + abs(temp2).zw;
// mad r1.x, r0.x, -c4.y, r6.x
temp1.x = temp0.x * float1(-4) + temp6.x;
// cmp r6.x, r3.y, r6.x, r1.x
temp6.x = (temp3.y >= 0) ? temp6.x : temp1.x;
// mad r1.x, r0.y, -c4.y, r6.y
temp1.x = temp0.y * float1(-4) + temp6.y;
// cmp r6.y, r3.y, r6.y, r1.x
temp6.y = (temp3.y >= 0) ? temp6.y : temp1.x;
// cmp r5.xy, r3.yzzw, c1.y, c1.x
temp5.xy = (temp3.yz >= 0) ? float2(0, 0) : float2(1, 1);
// add r1.x, r5.y, r5.x
temp1.x = temp5.y + temp5.x;
// mad r3.w, r0.x, c4.y, r4.x
temp3.w = temp0.x * float1(4) + temp4.x;
// cmp r4.x, r3.z, r4.x, r3.w
temp4.x = (temp3.z >= 0) ? temp4.x : temp3.w;
// mad r3.w, r0.y, c4.y, r4.y
temp3.w = temp0.y * float1(4) + temp4.y;
// cmp r4.y, r3.z, r4.y, r3.w
temp4.y = (temp3.z >= 0) ? temp4.y : temp3.w;
// if_lt -r1.x, c1.y
if (-temp1.x < float4(0, 0, 0, 0)) {
// if_ge r2_abs.z, r1.w
if (abs(temp2).z >= temp1.w) {
// else
} else {
// mov r6.zw, c1.y
temp6.zw = float2(0, 0);
// texldl r5, r6, s0
temp5 = tex2Dlod(diffuse_texture, temp6);
// mov r2.z, r5.y
temp2.z = temp5.y;
// endif
}
// if_ge r2_abs.w, r1.w
if (abs(temp2).w >= temp1.w) {
// else
} else {
// mov r4.zw, c1.y
temp4.zw = float2(0, 0);
// texldl r5, r4, s0
temp5 = tex2Dlod(diffuse_texture, temp4);
// mov r2.w, r5.y
temp2.w = temp5.y;
// endif
}
// mad r1.x, r1.z, -c3.x, r2.z
temp1.x = temp1.z * float1(-0.5) + temp2.z;
// cmp r2.z, r3.y, r2.z, r1.x
temp2.z = (temp3.y >= 0) ? temp2.z : temp1.x;
// mad r1.x, r1.z, -c3.x, r2.w
temp1.x = temp1.z * float1(-0.5) + temp2.w;
// cmp r2.w, r3.z, r2.w, r1.x
temp2.w = (temp3.z >= 0) ? temp2.w : temp1.x;
// mad r1.xz, r3.x, -c3.w, r2_abs.zyww
temp1.xz = temp3.xx * float2(-0.25, -0.25) + abs(temp2).zw;
// mad r1.w, r0.x, -c4.z, r6.x
temp1.w = temp0.x * float1(-12) + temp6.x;
// cmp r6.x, r1.x, r6.x, r1.w
temp6.x = (temp1.x >= 0) ? temp6.x : temp1.w;
// mad r1.w, r0.y, -c4.z, r6.y
temp1.w = temp0.y * float1(-12) + temp6.y;
// cmp r6.y, r1.x, r6.y, r1.w
temp6.y = (temp1.x >= 0) ? temp6.y : temp1.w;
// mad r0.x, r0.x, c4.z, r4.x
temp0.x = temp0.x * float1(12) + temp4.x;
// cmp r4.x, r1.z, r4.x, r0.x
temp4.x = (temp1.z >= 0) ? temp4.x : temp0.x;
// mad r0.x, r0.y, c4.z, r4.y
temp0.x = temp0.y * float1(12) + temp4.y;
// cmp r4.y, r1.z, r4.y, r0.x
temp4.y = (temp1.z >= 0) ? temp4.y : temp0.x;
// endif
}
// endif
}
// endif
}
// add r0.x, -r6.x, v0.x
temp0.x = -temp6.x + texcoord.x;
// add r0.y, r4.x, -v0.x
temp0.y = temp4.x + -texcoord.x;
// add r1.x, -r6.y, v0.y
temp1.x = -temp6.y + texcoord.y;
// cmp r0.x, r0.z, r0.x, r1.x
temp0.x = (temp0.z >= 0) ? temp0.x : temp1.x;
// add r1.x, r4.y, -v0.y
temp1.x = temp4.y + -texcoord.y;
// cmp r0.y, r0.z, r0.y, r1.x
temp0.y = (temp0.z >= 0) ? temp0.y : temp1.x;
// cmp r1.xz, r2.zyww, c1.y, c1.x
temp1.xz = (temp2.zw >= 0) ? float2(0, 0) : float2(1, 1);
// cmp r1.w, r2.y, -c1.y, -c1.x
temp1.w = (temp2.y >= 0) ? float1(-0) : float1(-1);
// add r1.xz, r1.w, r1
temp1.xz = temp1.ww + temp1.xz;
// add r1.w, r0.x, r0.y
temp1.w = temp0.x + temp0.y;
// rcp r1.w, r1.w
temp1.w = 1.0f / temp1.w;
// add r2.y, -r0.y, r0.x
temp2.y = -temp0.y + temp0.x;
// min r2.z, r0.y, r0.x
temp2.z = min(temp0.y, temp0.x);
// cmp r0.x, r2.y, r1_abs.z, r1_abs.x
temp0.x = (temp2.y >= 0) ? abs(temp1).z : abs(temp1).x;
// mul r0.y, r0.w, r0.w
temp0.y = temp0.w * temp0.w;
// mad r0.w, r2.z, -r1.w, c3.x
temp0.w = temp2.z * -temp1.w + float1(0.5);
// mul r0.y, r0.y, c4.w
temp0.y = temp0.y * float1(0.75);
// cmp r0.x, -r0.x, c1.y, r0.w
temp0.x = (-temp0.x >= 0) ? float1(0) : temp0.w;
// max r1.x, r0.x, r0.y
temp1.x = max(temp0.x, temp0.y);
// mad r0.xy, r1.x, r2.x, v0
temp0.xy = temp1.xx * temp2.xx + texcoord.xy;
// cmp r2.x, r0.z, v0.x, r0.x
temp2.x = (temp0.z >= 0) ? texcoord.x : temp0.x;
// cmp r2.y, r0.z, r0.y, v0.y
temp2.y = (temp0.z >= 0) ? temp0.y : texcoord.y;
// mov r2.zw, c1.y
temp2.zw = float2(0, 0);
// texldl r0, r2, s0
temp0 = tex2Dlod(diffuse_texture, temp2);
// mov oC0.xyz, r0
out_color.xyz = temp0.xyz;
// mov oC0.w, r1.y
out_color.w = temp1.y;
// endif
}
//
return out_color;
}
Decompiled by DXDecompiler.