Nier Automata
  2 / 10    
[quote="sgsrules"]TheBigDogma, what gpu and driver version are you on?[/quote] sgsrules - I have a 1060 (the only recent GTX that fits in my slim line case... LOL) and am on 378.78 - Area 51, Intel I7, Asus monitor
sgsrules said:TheBigDogma, what gpu and driver version are you on?


sgsrules - I have a 1060 (the only recent GTX that fits in my slim line case... LOL) and am on 378.78 - Area 51, Intel I7, Asus monitor

GeForce 1060 6 GB * Driver 382.05 * Intel i7-3770 * Windows 7 * 8 GB Ram * Asus 1920 x 1080/120hz

#16
Posted 03/17/2017 10:13 PM   
Yes it's dx11. It'd be easier to hunt for shaders if that damn game would give you a second to breathe, dodging attacks while hunting shaders makes things difficult lol. I found 2 pixel shaders that seem to be responsible for the shadows: 40285a8c8fd28555-ps_replace.txt [code]// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017 cbuffer SceneBuffer : register(b0) { float4x4 g_View : packoffset(c0); float4x4 g_Proj : packoffset(c4); float4x4 g_ViewProjection : packoffset(c8); float4x4 g_ViewInverseMatrix : packoffset(c12); } cbuffer CamParam_HPixel_Buffer : register(b13) { float4 g_CameraParam : packoffset(c0); float4 g_CameraVec : packoffset(c1); } cbuffer ShadowView_Buffer : register(b10) { float4 g_ShadowFarInv : packoffset(c0); float4 g_DepthOffset : packoffset(c1); float4 g_BokeOffset : packoffset(c2); float4x4 g_ShadowView : packoffset(c3); float4x4 g_ShadowViewProj[4] : packoffset(c7); } SamplerState g_Z_TexSampler_s : register(s6); SamplerComparisonState g_Shadow_TexSampler_s : register(s11); Texture2D<float4> g_Z_Tex : register(t6); Texture2D<float4> g_Shadow_Tex : register(t11); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_POSITION0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, out float4 o0 : SV_Target0) { const float4 icb[] = { { 1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, 0, 1.000000, 0}, { 0, 0, 0, 1.000000} }; float4 r0,r1,r2,r3,r4,r5,r6,r7,r8; uint4 bitmask, uiDest; float4 fDest; float4 x0[4]; r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x; r0.x = r0.x * g_CameraParam.y + g_CameraParam.x; r0.yz = v2.xy * r0.xx; r1.xy = v2.zw * r0.yz; r1.z = -r0.x; r1.w = 1; r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30); r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31); r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32); r0.w = 1; r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33); x0[0].xyw = r1.xyz; r1.x = r1.w / r1.z; r2.xyzw = g_DepthOffset.xyzw * g_ShadowFarInv.xyzw; r1.x = -r2.x * 0.100000001 + r1.x; x0[0].z = r1.x; r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33); x0[1].xyw = r1.xyz; r1.x = r1.w / r1.z; r1.x = -r2.y * 0.100000001 + r1.x; x0[1].z = r1.x; r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33); x0[2].xyw = r1.xyz; r1.x = r1.w / r1.z; r1.x = -r2.z * 0.100000001 + r1.x; x0[2].z = r1.x; r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33); x0[3].xyw = r1.xyz; r0.x = r1.w / r1.z; r0.x = -r2.w * 0.100000001 + r0.x; x0[3].z = r0.x; r0.xyzw = float4(0,0,0,0); while (true) { r1.x = cmp((uint)r0.y >= 4); if (r1.x != 0) break; r1.xyzw = x0[r0.y+0].xyzw; r1.xy = r1.xy / r1.ww; r1.z = max(abs(r1.y), abs(r1.z)); r1.z = max(abs(r1.x), r1.z); r1.z = cmp(0.99000001 >= r1.z); if (r1.z != 0) { r0.zw = r1.xy; break; } r0.xy = (int2)r0.xy + int2(1,1); r0.zw = r1.xy; } r0.y = cmp((uint)r0.x < 4); if (r0.y != 0) { r0.y = 1 + r0.z; r0.z = (int)r0.x & 1; r0.z = (uint)r0.z; r0.z = 0.5 * r0.z; r1.x = r0.y * 0.25 + r0.z; r0.y = 1 + -r0.w; r0.z = (uint)r0.x >> 1; r0.z = (uint)r0.z; r0.z = 0.5 * r0.z; r1.y = r0.y * 0.25 + r0.z; r1.z = x0[r0.x+0].z; r0.x = dot(g_BokeOffset.xyzw, icb[r0.x+0].xyzw); r0.yzw = r0.xxx * float3(0.5,0.5,0) + r1.xyz; r2.xyz = r0.xxx * float3(-0.5,-0.5,0) + r1.xyz; r3.xyz = r0.xxx * float3(-0.5,0.5,0) + r1.xyz; r4.xyz = r0.xxx * float3(0.5,-0.5,0) + r1.xyz; r5.xyz = r0.xxx * float3(-1.5,0.5,0) + r1.xyz; r6.xyz = r0.xxx * float3(1.5,-0.5,0) + r1.xyz; r7.xyz = r0.xxx * float3(-0.5,1.5,0) + r1.xyz; r8.xyz = r0.xxx * float3(0.5,-1.5,0) + r1.xyz; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r0.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.yz, r0.w).x; r0.y = r0.y * 0.800000012 + r1.w; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r0.y = r0.z * 0.800000012 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r0.y = r0.z * 0.800000012 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r0.y = r0.z * 0.800000012 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = cmp(r0.y != 0.000000); if (r0.z != 0) { r2.xyz = r0.xxx * float3(1.5,1.5,0) + r1.xyz; r3.xyz = r0.xxx * float3(-1.5,-1.5,0) + r1.xyz; r4.xyz = r0.xxx * float3(-1.5,1.5,0) + r1.xyz; r5.xyz = r0.xxx * float3(1.5,-1.5,0) + r1.xyz; r6.xyz = r0.xxx * float3(1.5,0.5,0) + r1.xyz; r7.xyz = r0.xxx * float3(-1.5,-0.5,0) + r1.xyz; r8.xyz = r0.xxx * float3(0.5,1.5,0) + r1.xyz; r0.xzw = r0.xxx * float3(-0.5,-1.5,0) + r1.xyz; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = r1.x * 0.150000006 + r0.y; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xz, r0.w).x; r0.x = r0.x * 0.449999988 + r1.x; r0.x = 0.119047619 * r0.x; } else { r0.x = 0.166666672 * r0.y; } r0.x = 1 + -r0.x; } else { r0.x = 1; } o0.xyzw = r0.xxxx; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017 // // // Buffer Definitions: // // cbuffer SceneBuffer // { // // float4x4 g_View; // Offset: 0 Size: 64 [unused] // float4x4 g_Proj; // Offset: 64 Size: 64 [unused] // float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused] // float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64 // // } // // cbuffer CamParam_HPixel_Buffer // { // // float4 g_CameraParam; // Offset: 0 Size: 16 // float4 g_CameraVec; // Offset: 16 Size: 16 [unused] // // } // // cbuffer ShadowView_Buffer // { // // float4 g_ShadowFarInv; // Offset: 0 Size: 16 // float4 g_DepthOffset; // Offset: 16 Size: 16 // float4 g_BokeOffset; // Offset: 32 Size: 16 // float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused] // float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // g_Z_TexSampler sampler NA NA 6 1 // g_Shadow_TexSampler sampler_c NA NA 11 1 // g_Z_Tex texture float4 2d 6 1 // g_Shadow_Tex texture float4 2d 11 1 // SceneBuffer cbuffer NA NA 0 1 // ShadowView_Buffer cbuffer NA NA 10 1 // CamParam_HPixel_Buffer cbuffer NA NA 13 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float // TEXCOORD 0 xy 1 NONE float xy // TEXCOORD 1 xyzw 2 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, 0, 1.000000, 0}, { 0, 0, 0, 1.000000} } dcl_constantbuffer cb0[15], immediateIndexed dcl_constantbuffer cb13[1], immediateIndexed dcl_constantbuffer cb10[23], immediateIndexed dcl_sampler s6, mode_default dcl_sampler s11, mode_comparison dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t11 dcl_input_ps linear v1.xy dcl_input_ps linear v2.xyzw dcl_output o0.xyzw dcl_temps 9 dcl_indexableTemp x0[4], 4 sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6 mad r0.x, r0.x, cb13[0].y, cb13[0].x mul r0.yz, r0.xxxx, v2.xxyx mul r1.xy, r0.yzyy, v2.zwzz mov r1.z, -r0.x mov r1.w, l(1.000000) dp4 r0.x, r1.xyzw, cb0[12].xyzw dp4 r0.y, r1.xyzw, cb0[13].xyzw dp4 r0.z, r1.xyzw, cb0[14].xyzw mov r0.w, l(1.000000) dp4 r1.x, r0.xyzw, cb10[7].xyzw dp4 r1.y, r0.xyzw, cb10[8].xyzw dp4 r1.w, r0.xyzw, cb10[9].xyzw dp4 r1.z, r0.xyzw, cb10[10].xyzw mov x0[0].xyw, r1.xyxz div r1.x, r1.w, r1.z mul r2.xyzw, cb10[0].xyzw, cb10[1].xyzw mad r1.x, -r2.x, l(0.100000), r1.x mov x0[0].z, r1.x dp4 r1.x, r0.xyzw, cb10[11].xyzw dp4 r1.y, r0.xyzw, cb10[12].xyzw dp4 r1.w, r0.xyzw, cb10[13].xyzw dp4 r1.z, r0.xyzw, cb10[14].xyzw mov x0[1].xyw, r1.xyxz div r1.x, r1.w, r1.z mad r1.x, -r2.y, l(0.100000), r1.x mov x0[1].z, r1.x dp4 r1.x, r0.xyzw, cb10[15].xyzw dp4 r1.y, r0.xyzw, cb10[16].xyzw dp4 r1.w, r0.xyzw, cb10[17].xyzw dp4 r1.z, r0.xyzw, cb10[18].xyzw mov x0[2].xyw, r1.xyxz div r1.x, r1.w, r1.z mad r1.x, -r2.z, l(0.100000), r1.x mov x0[2].z, r1.x dp4 r1.x, r0.xyzw, cb10[19].xyzw dp4 r1.y, r0.xyzw, cb10[20].xyzw dp4 r1.w, r0.xyzw, cb10[21].xyzw dp4 r1.z, r0.xyzw, cb10[22].xyzw mov x0[3].xyw, r1.xyxz div r0.x, r1.w, r1.z mad r0.x, -r2.w, l(0.100000), r0.x mov x0[3].z, r0.x mov r0.xyzw, l(0,0,0,0) loop uge r1.x, r0.y, l(4) breakc_nz r1.x mov r1.xyzw, x0[r0.y + 0].xyzw div r1.xy, r1.xyxx, r1.wwww max r1.z, |r1.z|, |r1.y| max r1.z, r1.z, |r1.x| ge r1.z, l(0.990000), r1.z if_nz r1.z mov r0.zw, r1.xxxy break endif iadd r0.xy, r0.xyxx, l(1, 1, 0, 0) mov r0.zw, r1.xxxy endloop ult r0.y, r0.x, l(4) if_nz r0.y add r0.y, r0.z, l(1.000000) and r0.z, r0.x, l(1) utof r0.z, r0.z mul r0.z, r0.z, l(0.500000) mad r1.x, r0.y, l(0.250000), r0.z add r0.y, -r0.w, l(1.000000) ushr r0.z, r0.x, l(1) utof r0.z, r0.z mul r0.z, r0.z, l(0.500000) mad r1.y, r0.y, l(0.250000), r0.z mov r1.z, x0[r0.x + 0].z dp4 r0.x, cb10[2].xyzw, icb[r0.x + 0].xyzw mad r0.yzw, r0.xxxx, l(0.000000, 0.500000, 0.500000, 0.000000), r1.xxyz mad r2.xyz, r0.xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r3.xyz, r0.xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r1.xyzx mad r4.xyz, r0.xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r5.xyz, r0.xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx mad r6.xyz, r0.xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r7.xyz, r0.xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r8.xyz, r0.xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r1.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r1.xyxx, t11.xxxx, s11, r1.z sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r0.yzyy, t11.xxxx, s11, r0.w mad r0.y, r0.y, l(0.800000), r1.w sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r2.xyxx, t11.xxxx, s11, r2.z mad r0.y, r0.z, l(0.800000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r3.xyxx, t11.xxxx, s11, r3.z mad r0.y, r0.z, l(0.800000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t11.xxxx, s11, r4.z mad r0.y, r0.z, l(0.800000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r5.xyxx, t11.xxxx, s11, r5.z mad r0.y, r0.z, l(0.450000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t11.xxxx, s11, r6.z mad r0.y, r0.z, l(0.450000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t11.xxxx, s11, r7.z mad r0.y, r0.z, l(0.450000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r8.xyxx, t11.xxxx, s11, r8.z mad r0.y, r0.z, l(0.450000), r0.y ne r0.z, r0.y, l(0.000000) if_nz r0.z mad r2.xyz, r0.xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r3.xyz, r0.xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx mad r4.xyz, r0.xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r5.xyz, r0.xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx mad r6.xyz, r0.xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx mad r7.xyz, r0.xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r8.xyz, r0.xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r0.xzw, r0.xxxx, l(-0.500000, 0.000000, -1.500000, 0.000000), r1.xxyz sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z mad r1.x, r1.x, l(0.150000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xzxx, t11.xxxx, s11, r0.w mad r0.x, r0.x, l(0.450000), r1.x mul r0.x, r0.x, l(0.119047619) else mul r0.x, r0.y, l(0.166666672) endif add r0.x, -r0.x, l(1.000000) else mov r0.x, l(1.000000) endif mov o0.xyzw, r0.xxxx ret // Approximately 134 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] 896775b62a868a33-ps_replace.txt [code]// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017 cbuffer SceneBuffer : register(b0) { float4x4 g_View : packoffset(c0); float4x4 g_Proj : packoffset(c4); float4x4 g_ViewProjection : packoffset(c8); float4x4 g_ViewInverseMatrix : packoffset(c12); } cbuffer CamParam_HPixel_Buffer : register(b13) { float4 g_CameraParam : packoffset(c0); float4 g_CameraVec : packoffset(c1); } cbuffer ShadowView_Buffer : register(b10) { float4 g_ShadowFarInv : packoffset(c0); float4 g_DepthOffset : packoffset(c1); float4 g_BokeOffset : packoffset(c2); float4x4 g_ShadowView : packoffset(c3); float4x4 g_ShadowViewProj[4] : packoffset(c7); } SamplerState g_Z_TexSampler_s : register(s6); SamplerComparisonState g_Shadow_TexSampler_s : register(s11); Texture2D<float4> g_Z_Tex : register(t6); Texture2D<float4> g_Shadow_Tex : register(t11); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_POSITION0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9; uint4 bitmask, uiDest; float4 fDest; float4 x0[4]; r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x; x0[3].x = 0; x0[2].x = 0; x0[1].x = 0; x0[0].x = 0; r0.x = r0.x * g_CameraParam.y + g_CameraParam.x; r0.yz = v2.xy * r0.xx; r1.xy = v2.zw * r0.yz; r1.z = -r0.x; r1.w = 1; r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30); r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31); r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32); r0.w = 1; r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r2.x = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32); r1.z = r2.x / r1.z; r2.z = -g_DepthOffset.x * 0.25 + r1.z; r1.x = 1 + r1.x; r1.zw = (int2)r1.ww & int2(1,0); r2.x = r1.x * 0.25 + r1.w; r1.x = 1 + -r1.y; r2.y = 0.25 * r1.x; r1.xyw = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz; r3.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz; r2.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.w).x; r1.x = r1.x * 0.800000012 + r2.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r3.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz; r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.y = r1.y * 0.150000006 + r1.x; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.y = r1.w * 0.150000006 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.y = r1.w * 0.150000006 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.y = r1.w * 0.150000006 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.y = 0.119047619 * r1.y; } else { r1.y = 0.166666672 * r1.x; } r1.x = 1 + -r1.y; x0[r1.z+0].x = r1.x; } r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r2.x = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32); r1.z = r2.x / r1.z; r2.z = -g_DepthOffset.x * 0.25 + r1.z; r1.x = 1 + r1.x; r3.xy = r1.ww ? float2(2,0) : float2(1,0.5); r2.x = r1.x * 0.25 + r3.y; r1.x = 1 + -r1.y; r1.y = (int)r1.w & 0x3f000000; r2.y = r1.x * 0.25 + r1.y; r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz; r3.yzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r1.x = r1.x * 0.800000012 + r1.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz; r3.yzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz; r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x; r1.y = r1.y * 0.150000006 + r1.x; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.y = 0.119047619 * r1.y; } else { r1.y = 0.166666672 * r1.x; } r1.x = 1 + -r1.y; x0[r3.x+0].x = r1.x; } r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r2.x = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32); r2.y = r1.w ? 3 : 2; r1.z = r2.x / r1.z; r3.z = -g_DepthOffset.x * 0.25 + r1.z; r1.x = 1 + r1.x; r1.z = (int)r1.w & 0x3f000000; r3.x = r1.x * 0.25 + r1.z; r1.x = 1 + -r1.y; r3.y = r1.x * 0.25 + 0.5; r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r3.xyz; r2.xzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r3.xyz; r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r3.xyz; r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r3.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r3.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r3.xyz; r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r3.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r3.xyz; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r1.x = r1.x * 0.800000012 + r1.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r3.xyz; r2.xzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r3.xyz; r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r3.xyz; r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r3.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r3.xyz; r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r3.xyz; r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r3.xyz; r3.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r3.xyz; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x; r1.y = r1.y * 0.150000006 + r1.x; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.y = 0.119047619 * r1.y; } else { r1.y = 0.166666672 * r1.x; } r1.x = 1 + -r1.y; x0[r2.y+0].x = r1.x; } r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r0.x = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32); r0.x = r0.x / r1.z; r0.z = -g_DepthOffset.x * 0.25 + r0.x; r0.w = 1 + r1.x; r1.xz = r1.ww ? float2(0,1) : float2(0.5,0.5); r0.x = r0.w * 0.25 + r1.x; r0.w = 1 + -r1.y; r0.y = r0.w * 0.25 + r1.z; r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r0.xyz; r2.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r0.xyz; r3.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r0.xyz; r4.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r0.xyz; r5.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r0.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r0.xyz; r7.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r0.xyz; r8.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r0.xyz; r0.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = cmp(r0.w != 0.000000); if (r1.x != 0) { r1.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r0.xyz; r2.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r0.xyz; r3.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r0.xyz; r4.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r0.xyz; r5.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r0.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r0.xyz; r7.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r0.xyz; r0.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r0.xyz; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r1.x = r1.x * 0.150000006 + r0.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x; r0.x = r0.x * 0.449999988 + r1.x; r0.x = 0.119047619 * r0.x; } else { r0.x = 0.166666672 * r0.w; } r0.x = 1 + -r0.x; x0[3].x = r0.x; } o0.x = x0[0].x; o0.y = x0[1].x; o0.z = x0[2].x; o0.w = x0[3].x; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017 // // // Buffer Definitions: // // cbuffer SceneBuffer // { // // float4x4 g_View; // Offset: 0 Size: 64 [unused] // float4x4 g_Proj; // Offset: 64 Size: 64 [unused] // float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused] // float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64 // // } // // cbuffer CamParam_HPixel_Buffer // { // // float4 g_CameraParam; // Offset: 0 Size: 16 // float4 g_CameraVec; // Offset: 16 Size: 16 [unused] // // } // // cbuffer ShadowView_Buffer // { // // float4 g_ShadowFarInv; // Offset: 0 Size: 16 [unused] // float4 g_DepthOffset; // Offset: 16 Size: 16 // float4 g_BokeOffset; // Offset: 32 Size: 16 // float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused] // float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // g_Z_TexSampler sampler NA NA 6 1 // g_Shadow_TexSampler sampler_c NA NA 11 1 // g_Z_Tex texture float4 2d 6 1 // g_Shadow_Tex texture float4 2d 11 1 // SceneBuffer cbuffer NA NA 0 1 // ShadowView_Buffer cbuffer NA NA 10 1 // CamParam_HPixel_Buffer cbuffer NA NA 13 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float // TEXCOORD 0 xy 1 NONE float xy // TEXCOORD 1 xyzw 2 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[15], immediateIndexed dcl_constantbuffer cb13[1], immediateIndexed dcl_constantbuffer cb10[23], immediateIndexed dcl_sampler s6, mode_default dcl_sampler s11, mode_comparison dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t11 dcl_input_ps linear v1.xy dcl_input_ps linear v2.xyzw dcl_output o0.xyzw dcl_temps 10 dcl_indexableTemp x0[4], 4 sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6 mov x0[3].x, l(0) mov x0[2].x, l(0) mov x0[1].x, l(0) mov x0[0].x, l(0) mad r0.x, r0.x, cb13[0].y, cb13[0].x mul r0.yz, r0.xxxx, v2.xxyx mul r1.xy, r0.yzyy, v2.zwzz mov r1.z, -r0.x mov r1.w, l(1.000000) dp4 r0.x, r1.xyzw, cb0[12].xyzw dp4 r0.y, r1.xyzw, cb0[13].xyzw dp4 r0.z, r1.xyzw, cb0[14].xyzw mov r0.w, l(1.000000) dp4 r1.x, r0.xyzw, cb10[7].xyzw dp4 r1.y, r0.xyzw, cb10[8].xyzw dp4 r1.z, r0.xyzw, cb10[10].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r2.x, r0.xyzw, cb10[9].xyzw div r1.z, r2.x, r1.z mad r2.z, -cb10[1].x, l(0.250000), r1.z add r1.x, r1.x, l(1.000000) and r1.zw, r1.wwww, l(0, 0, 1, 0x3f000000) mad r2.x, r1.x, l(0.250000), r1.w add r1.x, -r1.y, l(1.000000) mul r2.y, r1.x, l(0.250000) mad r1.xyw, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyxz mad r3.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r2.xyxx, t11.xxxx, s11, r2.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.w mad r1.x, r1.x, l(0.800000), r2.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z mad r1.x, r1.y, l(0.450000), r1.x ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r3.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r4.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.y, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r4.xyxx, t11.xxxx, s11, r4.z mad r1.y, r1.w, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t11.xxxx, s11, r5.z mad r1.y, r1.w, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t11.xxxx, s11, r6.z mad r1.y, r1.w, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r7.xyxx, t11.xxxx, s11, r7.z mad r1.y, r1.w, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r8.xyxx, t11.xxxx, s11, r8.z mad r1.y, r1.w, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r9.xyxx, t11.xxxx, s11, r9.z mad r1.y, r1.w, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z mad r1.y, r1.w, l(0.450000), r1.y mul r1.y, r1.y, l(0.119047619) else mul r1.y, r1.x, l(0.166666672) endif add r1.x, -r1.y, l(1.000000) mov x0[r1.z + 0].x, r1.x endif dp4 r1.x, r0.xyzw, cb10[11].xyzw dp4 r1.y, r0.xyzw, cb10[12].xyzw dp4 r1.z, r0.xyzw, cb10[14].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r2.x, r0.xyzw, cb10[13].xyzw div r1.z, r2.x, r1.z mad r2.z, -cb10[1].x, l(0.250000), r1.z add r1.x, r1.x, l(1.000000) movc r3.xy, r1.wwww, l(2,0,0,0), l(1,0.500000,0,0) mad r2.x, r1.x, l(0.250000), r3.y add r1.x, -r1.y, l(1.000000) and r1.y, r1.w, l(0x3f000000) mad r2.y, r1.x, l(0.250000), r1.y mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r3.yzw, cb10[2].xxxx, l(0.000000, -0.500000, -0.500000, 0.000000), r2.xxyz mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r1.x, r1.x, l(0.800000), r1.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.yzyy, t11.xxxx, s11, r3.w mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z mad r1.x, r1.y, l(0.450000), r1.x ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r2.xxyz mad r3.yzw, cb10[2].xxxx, l(0.000000, -1.500000, -1.500000, 0.000000), r2.xxyz mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w mad r1.y, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.yzyy, t11.xxxx, s11, r3.w mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xyxx, t11.xxxx, s11, r2.z mad r1.y, r1.z, l(0.450000), r1.y mul r1.y, r1.y, l(0.119047619) else mul r1.y, r1.x, l(0.166666672) endif add r1.x, -r1.y, l(1.000000) mov x0[r3.x + 0].x, r1.x endif dp4 r1.x, r0.xyzw, cb10[15].xyzw dp4 r1.y, r0.xyzw, cb10[16].xyzw dp4 r1.z, r0.xyzw, cb10[18].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r2.x, r0.xyzw, cb10[17].xyzw movc r2.y, r1.w, l(3), l(2) div r1.z, r2.x, r1.z mad r3.z, -cb10[1].x, l(0.250000), r1.z add r1.x, r1.x, l(1.000000) and r1.z, r1.w, l(0x3f000000) mad r3.x, r1.x, l(0.250000), r1.z add r1.x, -r1.y, l(1.000000) mad r3.y, r1.x, l(0.250000), l(0.500000) mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r2.xzw, cb10[2].xxxx, l(-0.500000, 0.000000, -0.500000, 0.000000), r3.xxyz mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r3.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r3.xyxx, t11.xxxx, s11, r3.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r1.x, r1.x, l(0.800000), r1.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xzxx, t11.xxxx, s11, r2.w mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z mad r1.x, r1.y, l(0.450000), r1.x ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r3.xxyz mad r2.xzw, cb10[2].xxxx, l(-1.500000, 0.000000, -1.500000, 0.000000), r3.xxyz mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r3.xyzx mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r3.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx mad r3.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w mad r1.y, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xzxx, t11.xxxx, s11, r2.w mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.xyxx, t11.xxxx, s11, r3.z mad r1.y, r1.z, l(0.450000), r1.y mul r1.y, r1.y, l(0.119047619) else mul r1.y, r1.x, l(0.166666672) endif add r1.x, -r1.y, l(1.000000) mov x0[r2.y + 0].x, r1.x endif dp4 r1.x, r0.xyzw, cb10[19].xyzw dp4 r1.y, r0.xyzw, cb10[20].xyzw dp4 r1.z, r0.xyzw, cb10[22].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r0.x, r0.xyzw, cb10[21].xyzw div r0.x, r0.x, r1.z mad r0.z, -cb10[1].x, l(0.250000), r0.x add r0.w, r1.x, l(1.000000) movc r1.xz, r1.wwww, l(0,0,1.000000,0), l(0.500000,0,0.500000,0) mad r0.x, r0.w, l(0.250000), r1.x add r0.w, -r1.y, l(1.000000) mad r0.y, r0.w, l(0.250000), r1.z mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r2.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r3.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r4.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r5.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r7.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r8.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r0.xyxx, t11.xxxx, s11, r0.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r3.xyxx, t11.xxxx, s11, r3.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r4.xyxx, t11.xxxx, s11, r4.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r5.xyxx, t11.xxxx, s11, r5.z mad r0.w, r1.x, l(0.450000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r6.xyxx, t11.xxxx, s11, r6.z mad r0.w, r1.x, l(0.450000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r7.xyxx, t11.xxxx, s11, r7.z mad r0.w, r1.x, l(0.450000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r8.xyxx, t11.xxxx, s11, r8.z mad r0.w, r1.x, l(0.450000), r0.w ne r1.x, r0.w, l(0.000000) if_nz r1.x mad r1.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r2.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx mad r3.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r4.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx mad r5.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r7.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r0.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r1.x, r1.x, l(0.150000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t11.xxxx, s11, r2.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t11.xxxx, s11, r0.z mad r0.x, r0.x, l(0.450000), r1.x mul r0.x, r0.x, l(0.119047619) else mul r0.x, r0.w, l(0.166666672) endif add r0.x, -r0.x, l(1.000000) mov x0[3].x, r0.x endif mov o0.x, x0[0].x mov o0.y, x0[1].x mov o0.z, x0[2].x mov o0.w, x0[3].x ret // Approximately 313 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
Yes it's dx11. It'd be easier to hunt for shaders if that damn game would give you a second to breathe, dodging attacks while hunting shaders makes things difficult lol.

I found 2 pixel shaders that seem to be responsible for the shadows:

40285a8c8fd28555-ps_replace.txt
// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017

cbuffer SceneBuffer : register(b0)
{
float4x4 g_View : packoffset(c0);
float4x4 g_Proj : packoffset(c4);
float4x4 g_ViewProjection : packoffset(c8);
float4x4 g_ViewInverseMatrix : packoffset(c12);
}

cbuffer CamParam_HPixel_Buffer : register(b13)
{
float4 g_CameraParam : packoffset(c0);
float4 g_CameraVec : packoffset(c1);
}

cbuffer ShadowView_Buffer : register(b10)
{
float4 g_ShadowFarInv : packoffset(c0);
float4 g_DepthOffset : packoffset(c1);
float4 g_BokeOffset : packoffset(c2);
float4x4 g_ShadowView : packoffset(c3);
float4x4 g_ShadowViewProj[4] : packoffset(c7);
}

SamplerState g_Z_TexSampler_s : register(s6);
SamplerComparisonState g_Shadow_TexSampler_s : register(s11);
Texture2D<float4> g_Z_Tex : register(t6);
Texture2D<float4> g_Shadow_Tex : register(t11);


// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float4 v2 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
const float4 icb[] = { { 1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, 0, 1.000000, 0},
{ 0, 0, 0, 1.000000} };
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8;
uint4 bitmask, uiDest;
float4 fDest;

float4 x0[4];
r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x;
r0.x = r0.x * g_CameraParam.y + g_CameraParam.x;
r0.yz = v2.xy * r0.xx;
r1.xy = v2.zw * r0.yz;
r1.z = -r0.x;
r1.w = 1;
r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30);
r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31);
r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32);
r0.w = 1;
r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33);
x0[0].xyw = r1.xyz;
r1.x = r1.w / r1.z;
r2.xyzw = g_DepthOffset.xyzw * g_ShadowFarInv.xyzw;
r1.x = -r2.x * 0.100000001 + r1.x;
x0[0].z = r1.x;
r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33);
x0[1].xyw = r1.xyz;
r1.x = r1.w / r1.z;
r1.x = -r2.y * 0.100000001 + r1.x;
x0[1].z = r1.x;
r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33);
x0[2].xyw = r1.xyz;
r1.x = r1.w / r1.z;
r1.x = -r2.z * 0.100000001 + r1.x;
x0[2].z = r1.x;
r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33);
x0[3].xyw = r1.xyz;
r0.x = r1.w / r1.z;
r0.x = -r2.w * 0.100000001 + r0.x;
x0[3].z = r0.x;
r0.xyzw = float4(0,0,0,0);
while (true) {
r1.x = cmp((uint)r0.y >= 4);
if (r1.x != 0) break;
r1.xyzw = x0[r0.y+0].xyzw;
r1.xy = r1.xy / r1.ww;
r1.z = max(abs(r1.y), abs(r1.z));
r1.z = max(abs(r1.x), r1.z);
r1.z = cmp(0.99000001 >= r1.z);
if (r1.z != 0) {
r0.zw = r1.xy;
break;
}
r0.xy = (int2)r0.xy + int2(1,1);
r0.zw = r1.xy;
}
r0.y = cmp((uint)r0.x < 4);
if (r0.y != 0) {
r0.y = 1 + r0.z;
r0.z = (int)r0.x & 1;
r0.z = (uint)r0.z;
r0.z = 0.5 * r0.z;
r1.x = r0.y * 0.25 + r0.z;
r0.y = 1 + -r0.w;
r0.z = (uint)r0.x >> 1;
r0.z = (uint)r0.z;
r0.z = 0.5 * r0.z;
r1.y = r0.y * 0.25 + r0.z;
r1.z = x0[r0.x+0].z;
r0.x = dot(g_BokeOffset.xyzw, icb[r0.x+0].xyzw);
r0.yzw = r0.xxx * float3(0.5,0.5,0) + r1.xyz;
r2.xyz = r0.xxx * float3(-0.5,-0.5,0) + r1.xyz;
r3.xyz = r0.xxx * float3(-0.5,0.5,0) + r1.xyz;
r4.xyz = r0.xxx * float3(0.5,-0.5,0) + r1.xyz;
r5.xyz = r0.xxx * float3(-1.5,0.5,0) + r1.xyz;
r6.xyz = r0.xxx * float3(1.5,-0.5,0) + r1.xyz;
r7.xyz = r0.xxx * float3(-0.5,1.5,0) + r1.xyz;
r8.xyz = r0.xxx * float3(0.5,-1.5,0) + r1.xyz;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r0.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.yz, r0.w).x;
r0.y = r0.y * 0.800000012 + r1.w;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r0.y = r0.z * 0.800000012 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r0.y = r0.z * 0.800000012 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r0.y = r0.z * 0.800000012 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = cmp(r0.y != 0.000000);
if (r0.z != 0) {
r2.xyz = r0.xxx * float3(1.5,1.5,0) + r1.xyz;
r3.xyz = r0.xxx * float3(-1.5,-1.5,0) + r1.xyz;
r4.xyz = r0.xxx * float3(-1.5,1.5,0) + r1.xyz;
r5.xyz = r0.xxx * float3(1.5,-1.5,0) + r1.xyz;
r6.xyz = r0.xxx * float3(1.5,0.5,0) + r1.xyz;
r7.xyz = r0.xxx * float3(-1.5,-0.5,0) + r1.xyz;
r8.xyz = r0.xxx * float3(0.5,1.5,0) + r1.xyz;
r0.xzw = r0.xxx * float3(-0.5,-1.5,0) + r1.xyz;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = r1.x * 0.150000006 + r0.y;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xz, r0.w).x;
r0.x = r0.x * 0.449999988 + r1.x;
r0.x = 0.119047619 * r0.x;
} else {
r0.x = 0.166666672 * r0.y;
}
r0.x = 1 + -r0.x;
} else {
r0.x = 1;
}
o0.xyzw = r0.xxxx;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017
//
//
// Buffer Definitions:
//
// cbuffer SceneBuffer
// {
//
// float4x4 g_View; // Offset: 0 Size: 64 [unused]
// float4x4 g_Proj; // Offset: 64 Size: 64 [unused]
// float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused]
// float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64
//
// }
//
// cbuffer CamParam_HPixel_Buffer
// {
//
// float4 g_CameraParam; // Offset: 0 Size: 16
// float4 g_CameraVec; // Offset: 16 Size: 16 [unused]
//
// }
//
// cbuffer ShadowView_Buffer
// {
//
// float4 g_ShadowFarInv; // Offset: 0 Size: 16
// float4 g_DepthOffset; // Offset: 16 Size: 16
// float4 g_BokeOffset; // Offset: 32 Size: 16
// float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused]
// float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_Z_TexSampler sampler NA NA 6 1
// g_Shadow_TexSampler sampler_c NA NA 11 1
// g_Z_Tex texture float4 2d 6 1
// g_Shadow_Tex texture float4 2d 11 1
// SceneBuffer cbuffer NA NA 0 1
// ShadowView_Buffer cbuffer NA NA 10 1
// CamParam_HPixel_Buffer cbuffer NA NA 13 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// TEXCOORD 1 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, 0, 1.000000, 0},
{ 0, 0, 0, 1.000000} }
dcl_constantbuffer cb0[15], immediateIndexed
dcl_constantbuffer cb13[1], immediateIndexed
dcl_constantbuffer cb10[23], immediateIndexed
dcl_sampler s6, mode_default
dcl_sampler s11, mode_comparison
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t11
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 9
dcl_indexableTemp x0[4], 4
sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6
mad r0.x, r0.x, cb13[0].y, cb13[0].x
mul r0.yz, r0.xxxx, v2.xxyx
mul r1.xy, r0.yzyy, v2.zwzz
mov r1.z, -r0.x
mov r1.w, l(1.000000)
dp4 r0.x, r1.xyzw, cb0[12].xyzw
dp4 r0.y, r1.xyzw, cb0[13].xyzw
dp4 r0.z, r1.xyzw, cb0[14].xyzw
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb10[7].xyzw
dp4 r1.y, r0.xyzw, cb10[8].xyzw
dp4 r1.w, r0.xyzw, cb10[9].xyzw
dp4 r1.z, r0.xyzw, cb10[10].xyzw
mov x0[0].xyw, r1.xyxz
div r1.x, r1.w, r1.z
mul r2.xyzw, cb10[0].xyzw, cb10[1].xyzw
mad r1.x, -r2.x, l(0.100000), r1.x
mov x0[0].z, r1.x
dp4 r1.x, r0.xyzw, cb10[11].xyzw
dp4 r1.y, r0.xyzw, cb10[12].xyzw
dp4 r1.w, r0.xyzw, cb10[13].xyzw
dp4 r1.z, r0.xyzw, cb10[14].xyzw
mov x0[1].xyw, r1.xyxz
div r1.x, r1.w, r1.z
mad r1.x, -r2.y, l(0.100000), r1.x
mov x0[1].z, r1.x
dp4 r1.x, r0.xyzw, cb10[15].xyzw
dp4 r1.y, r0.xyzw, cb10[16].xyzw
dp4 r1.w, r0.xyzw, cb10[17].xyzw
dp4 r1.z, r0.xyzw, cb10[18].xyzw
mov x0[2].xyw, r1.xyxz
div r1.x, r1.w, r1.z
mad r1.x, -r2.z, l(0.100000), r1.x
mov x0[2].z, r1.x
dp4 r1.x, r0.xyzw, cb10[19].xyzw
dp4 r1.y, r0.xyzw, cb10[20].xyzw
dp4 r1.w, r0.xyzw, cb10[21].xyzw
dp4 r1.z, r0.xyzw, cb10[22].xyzw
mov x0[3].xyw, r1.xyxz
div r0.x, r1.w, r1.z
mad r0.x, -r2.w, l(0.100000), r0.x
mov x0[3].z, r0.x
mov r0.xyzw, l(0,0,0,0)
loop
uge r1.x, r0.y, l(4)
breakc_nz r1.x
mov r1.xyzw, x0[r0.y + 0].xyzw
div r1.xy, r1.xyxx, r1.wwww
max r1.z, |r1.z|, |r1.y|
max r1.z, r1.z, |r1.x|
ge r1.z, l(0.990000), r1.z
if_nz r1.z
mov r0.zw, r1.xxxy
break
endif
iadd r0.xy, r0.xyxx, l(1, 1, 0, 0)
mov r0.zw, r1.xxxy
endloop
ult r0.y, r0.x, l(4)
if_nz r0.y
add r0.y, r0.z, l(1.000000)
and r0.z, r0.x, l(1)
utof r0.z, r0.z
mul r0.z, r0.z, l(0.500000)
mad r1.x, r0.y, l(0.250000), r0.z
add r0.y, -r0.w, l(1.000000)
ushr r0.z, r0.x, l(1)
utof r0.z, r0.z
mul r0.z, r0.z, l(0.500000)
mad r1.y, r0.y, l(0.250000), r0.z
mov r1.z, x0[r0.x + 0].z
dp4 r0.x, cb10[2].xyzw, icb[r0.x + 0].xyzw
mad r0.yzw, r0.xxxx, l(0.000000, 0.500000, 0.500000, 0.000000), r1.xxyz
mad r2.xyz, r0.xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r3.xyz, r0.xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r1.xyzx
mad r4.xyz, r0.xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r5.xyz, r0.xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx
mad r6.xyz, r0.xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r7.xyz, r0.xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r8.xyz, r0.xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r1.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r1.xyxx, t11.xxxx, s11, r1.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r0.yzyy, t11.xxxx, s11, r0.w
mad r0.y, r0.y, l(0.800000), r1.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r2.xyxx, t11.xxxx, s11, r2.z
mad r0.y, r0.z, l(0.800000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r3.xyxx, t11.xxxx, s11, r3.z
mad r0.y, r0.z, l(0.800000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t11.xxxx, s11, r4.z
mad r0.y, r0.z, l(0.800000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r5.xyxx, t11.xxxx, s11, r5.z
mad r0.y, r0.z, l(0.450000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t11.xxxx, s11, r6.z
mad r0.y, r0.z, l(0.450000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t11.xxxx, s11, r7.z
mad r0.y, r0.z, l(0.450000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r8.xyxx, t11.xxxx, s11, r8.z
mad r0.y, r0.z, l(0.450000), r0.y
ne r0.z, r0.y, l(0.000000)
if_nz r0.z
mad r2.xyz, r0.xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r3.xyz, r0.xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx
mad r4.xyz, r0.xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r5.xyz, r0.xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx
mad r6.xyz, r0.xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx
mad r7.xyz, r0.xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r8.xyz, r0.xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r0.xzw, r0.xxxx, l(-0.500000, 0.000000, -1.500000, 0.000000), r1.xxyz
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.x, r1.x, l(0.150000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xzxx, t11.xxxx, s11, r0.w
mad r0.x, r0.x, l(0.450000), r1.x
mul r0.x, r0.x, l(0.119047619)
else
mul r0.x, r0.y, l(0.166666672)
endif
add r0.x, -r0.x, l(1.000000)
else
mov r0.x, l(1.000000)
endif
mov o0.xyzw, r0.xxxx
ret
// Approximately 134 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/



896775b62a868a33-ps_replace.txt
// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017

cbuffer SceneBuffer : register(b0)
{
float4x4 g_View : packoffset(c0);
float4x4 g_Proj : packoffset(c4);
float4x4 g_ViewProjection : packoffset(c8);
float4x4 g_ViewInverseMatrix : packoffset(c12);
}

cbuffer CamParam_HPixel_Buffer : register(b13)
{
float4 g_CameraParam : packoffset(c0);
float4 g_CameraVec : packoffset(c1);
}

cbuffer ShadowView_Buffer : register(b10)
{
float4 g_ShadowFarInv : packoffset(c0);
float4 g_DepthOffset : packoffset(c1);
float4 g_BokeOffset : packoffset(c2);
float4x4 g_ShadowView : packoffset(c3);
float4x4 g_ShadowViewProj[4] : packoffset(c7);
}

SamplerState g_Z_TexSampler_s : register(s6);
SamplerComparisonState g_Shadow_TexSampler_s : register(s11);
Texture2D<float4> g_Z_Tex : register(t6);
Texture2D<float4> g_Shadow_Tex : register(t11);


// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float4 v2 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9;
uint4 bitmask, uiDest;
float4 fDest;

float4 x0[4];
r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x;
x0[3].x = 0;
x0[2].x = 0;
x0[1].x = 0;
x0[0].x = 0;
r0.x = r0.x * g_CameraParam.y + g_CameraParam.x;
r0.yz = v2.xy * r0.xx;
r1.xy = v2.zw * r0.yz;
r1.z = -r0.x;
r1.w = 1;
r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30);
r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31);
r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32);
r0.w = 1;
r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r2.x = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32);
r1.z = r2.x / r1.z;
r2.z = -g_DepthOffset.x * 0.25 + r1.z;
r1.x = 1 + r1.x;
r1.zw = (int2)r1.ww & int2(1,0);
r2.x = r1.x * 0.25 + r1.w;
r1.x = 1 + -r1.y;
r2.y = 0.25 * r1.x;
r1.xyw = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz;
r2.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.w).x;
r1.x = r1.x * 0.800000012 + r2.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r3.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.y = r1.y * 0.150000006 + r1.x;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.y = r1.w * 0.150000006 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.y = r1.w * 0.150000006 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.y = r1.w * 0.150000006 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.y = 0.119047619 * r1.y;
} else {
r1.y = 0.166666672 * r1.x;
}
r1.x = 1 + -r1.y;
x0[r1.z+0].x = r1.x;
}
r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r2.x = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32);
r1.z = r2.x / r1.z;
r2.z = -g_DepthOffset.x * 0.25 + r1.z;
r1.x = 1 + r1.x;
r3.xy = r1.ww ? float2(2,0) : float2(1,0.5);
r2.x = r1.x * 0.25 + r3.y;
r1.x = 1 + -r1.y;
r1.y = (int)r1.w & 0x3f000000;
r2.y = r1.x * 0.25 + r1.y;
r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz;
r3.yzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r1.x = r1.x * 0.800000012 + r1.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz;
r3.yzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x;
r1.y = r1.y * 0.150000006 + r1.x;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.y = 0.119047619 * r1.y;
} else {
r1.y = 0.166666672 * r1.x;
}
r1.x = 1 + -r1.y;
x0[r3.x+0].x = r1.x;
}
r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r2.x = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32);
r2.y = r1.w ? 3 : 2;
r1.z = r2.x / r1.z;
r3.z = -g_DepthOffset.x * 0.25 + r1.z;
r1.x = 1 + r1.x;
r1.z = (int)r1.w & 0x3f000000;
r3.x = r1.x * 0.25 + r1.z;
r1.x = 1 + -r1.y;
r3.y = r1.x * 0.25 + 0.5;
r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r3.xyz;
r2.xzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r3.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r3.xyz;
r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r3.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r3.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r3.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r3.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r3.xyz;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r1.x = r1.x * 0.800000012 + r1.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r3.xyz;
r2.xzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r3.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r3.xyz;
r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r3.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r3.xyz;
r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r3.xyz;
r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r3.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r3.xyz;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x;
r1.y = r1.y * 0.150000006 + r1.x;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.y = 0.119047619 * r1.y;
} else {
r1.y = 0.166666672 * r1.x;
}
r1.x = 1 + -r1.y;
x0[r2.y+0].x = r1.x;
}
r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r0.x = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32);
r0.x = r0.x / r1.z;
r0.z = -g_DepthOffset.x * 0.25 + r0.x;
r0.w = 1 + r1.x;
r1.xz = r1.ww ? float2(0,1) : float2(0.5,0.5);
r0.x = r0.w * 0.25 + r1.x;
r0.w = 1 + -r1.y;
r0.y = r0.w * 0.25 + r1.z;
r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r0.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r0.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r0.xyz;
r4.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r0.xyz;
r5.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r0.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r0.xyz;
r7.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r0.xyz;
r8.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r0.xyz;
r0.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = cmp(r0.w != 0.000000);
if (r1.x != 0) {
r1.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r0.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r0.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r0.xyz;
r4.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r0.xyz;
r5.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r0.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r0.xyz;
r7.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r0.xyz;
r0.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r0.xyz;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r1.x = r1.x * 0.150000006 + r0.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x;
r0.x = r0.x * 0.449999988 + r1.x;
r0.x = 0.119047619 * r0.x;
} else {
r0.x = 0.166666672 * r0.w;
}
r0.x = 1 + -r0.x;
x0[3].x = r0.x;
}
o0.x = x0[0].x;
o0.y = x0[1].x;
o0.z = x0[2].x;
o0.w = x0[3].x;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017
//
//
// Buffer Definitions:
//
// cbuffer SceneBuffer
// {
//
// float4x4 g_View; // Offset: 0 Size: 64 [unused]
// float4x4 g_Proj; // Offset: 64 Size: 64 [unused]
// float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused]
// float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64
//
// }
//
// cbuffer CamParam_HPixel_Buffer
// {
//
// float4 g_CameraParam; // Offset: 0 Size: 16
// float4 g_CameraVec; // Offset: 16 Size: 16 [unused]
//
// }
//
// cbuffer ShadowView_Buffer
// {
//
// float4 g_ShadowFarInv; // Offset: 0 Size: 16 [unused]
// float4 g_DepthOffset; // Offset: 16 Size: 16
// float4 g_BokeOffset; // Offset: 32 Size: 16
// float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused]
// float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_Z_TexSampler sampler NA NA 6 1
// g_Shadow_TexSampler sampler_c NA NA 11 1
// g_Z_Tex texture float4 2d 6 1
// g_Shadow_Tex texture float4 2d 11 1
// SceneBuffer cbuffer NA NA 0 1
// ShadowView_Buffer cbuffer NA NA 10 1
// CamParam_HPixel_Buffer cbuffer NA NA 13 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// TEXCOORD 1 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[15], immediateIndexed
dcl_constantbuffer cb13[1], immediateIndexed
dcl_constantbuffer cb10[23], immediateIndexed
dcl_sampler s6, mode_default
dcl_sampler s11, mode_comparison
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t11
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 10
dcl_indexableTemp x0[4], 4
sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6
mov x0[3].x, l(0)
mov x0[2].x, l(0)
mov x0[1].x, l(0)
mov x0[0].x, l(0)
mad r0.x, r0.x, cb13[0].y, cb13[0].x
mul r0.yz, r0.xxxx, v2.xxyx
mul r1.xy, r0.yzyy, v2.zwzz
mov r1.z, -r0.x
mov r1.w, l(1.000000)
dp4 r0.x, r1.xyzw, cb0[12].xyzw
dp4 r0.y, r1.xyzw, cb0[13].xyzw
dp4 r0.z, r1.xyzw, cb0[14].xyzw
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb10[7].xyzw
dp4 r1.y, r0.xyzw, cb10[8].xyzw
dp4 r1.z, r0.xyzw, cb10[10].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r2.x, r0.xyzw, cb10[9].xyzw
div r1.z, r2.x, r1.z
mad r2.z, -cb10[1].x, l(0.250000), r1.z
add r1.x, r1.x, l(1.000000)
and r1.zw, r1.wwww, l(0, 0, 1, 0x3f000000)
mad r2.x, r1.x, l(0.250000), r1.w
add r1.x, -r1.y, l(1.000000)
mul r2.y, r1.x, l(0.250000)
mad r1.xyw, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyxz
mad r3.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r2.xyxx, t11.xxxx, s11, r2.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.w
mad r1.x, r1.x, l(0.800000), r2.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.x, r1.y, l(0.450000), r1.x
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r3.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r4.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.y, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.y, r1.w, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.y, r1.w, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.y, r1.w, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.y, r1.w, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.y, r1.w, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.y, r1.w, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.y, r1.w, l(0.450000), r1.y
mul r1.y, r1.y, l(0.119047619)
else
mul r1.y, r1.x, l(0.166666672)
endif
add r1.x, -r1.y, l(1.000000)
mov x0[r1.z + 0].x, r1.x
endif
dp4 r1.x, r0.xyzw, cb10[11].xyzw
dp4 r1.y, r0.xyzw, cb10[12].xyzw
dp4 r1.z, r0.xyzw, cb10[14].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r2.x, r0.xyzw, cb10[13].xyzw
div r1.z, r2.x, r1.z
mad r2.z, -cb10[1].x, l(0.250000), r1.z
add r1.x, r1.x, l(1.000000)
movc r3.xy, r1.wwww, l(2,0,0,0), l(1,0.500000,0,0)
mad r2.x, r1.x, l(0.250000), r3.y
add r1.x, -r1.y, l(1.000000)
and r1.y, r1.w, l(0x3f000000)
mad r2.y, r1.x, l(0.250000), r1.y
mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r3.yzw, cb10[2].xxxx, l(0.000000, -0.500000, -0.500000, 0.000000), r2.xxyz
mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r1.x, r1.x, l(0.800000), r1.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.yzyy, t11.xxxx, s11, r3.w
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.x, r1.y, l(0.450000), r1.x
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r2.xxyz
mad r3.yzw, cb10[2].xxxx, l(0.000000, -1.500000, -1.500000, 0.000000), r2.xxyz
mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w
mad r1.y, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.yzyy, t11.xxxx, s11, r3.w
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.y, r1.z, l(0.450000), r1.y
mul r1.y, r1.y, l(0.119047619)
else
mul r1.y, r1.x, l(0.166666672)
endif
add r1.x, -r1.y, l(1.000000)
mov x0[r3.x + 0].x, r1.x
endif
dp4 r1.x, r0.xyzw, cb10[15].xyzw
dp4 r1.y, r0.xyzw, cb10[16].xyzw
dp4 r1.z, r0.xyzw, cb10[18].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r2.x, r0.xyzw, cb10[17].xyzw
movc r2.y, r1.w, l(3), l(2)
div r1.z, r2.x, r1.z
mad r3.z, -cb10[1].x, l(0.250000), r1.z
add r1.x, r1.x, l(1.000000)
and r1.z, r1.w, l(0x3f000000)
mad r3.x, r1.x, l(0.250000), r1.z
add r1.x, -r1.y, l(1.000000)
mad r3.y, r1.x, l(0.250000), l(0.500000)
mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r2.xzw, cb10[2].xxxx, l(-0.500000, 0.000000, -0.500000, 0.000000), r3.xxyz
mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r3.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx
mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r3.xyxx, t11.xxxx, s11, r3.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r1.x, r1.x, l(0.800000), r1.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xzxx, t11.xxxx, s11, r2.w
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.x, r1.y, l(0.450000), r1.x
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r3.xxyz
mad r2.xzw, cb10[2].xxxx, l(-1.500000, 0.000000, -1.500000, 0.000000), r3.xxyz
mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r3.xyzx
mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r3.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx
mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx
mad r3.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w
mad r1.y, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xzxx, t11.xxxx, s11, r2.w
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.y, r1.z, l(0.450000), r1.y
mul r1.y, r1.y, l(0.119047619)
else
mul r1.y, r1.x, l(0.166666672)
endif
add r1.x, -r1.y, l(1.000000)
mov x0[r2.y + 0].x, r1.x
endif
dp4 r1.x, r0.xyzw, cb10[19].xyzw
dp4 r1.y, r0.xyzw, cb10[20].xyzw
dp4 r1.z, r0.xyzw, cb10[22].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r0.x, r0.xyzw, cb10[21].xyzw
div r0.x, r0.x, r1.z
mad r0.z, -cb10[1].x, l(0.250000), r0.x
add r0.w, r1.x, l(1.000000)
movc r1.xz, r1.wwww, l(0,0,1.000000,0), l(0.500000,0,0.500000,0)
mad r0.x, r0.w, l(0.250000), r1.x
add r0.w, -r1.y, l(1.000000)
mad r0.y, r0.w, l(0.250000), r1.z
mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r2.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r3.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r4.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r5.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r7.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r8.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r0.xyxx, t11.xxxx, s11, r0.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r3.xyxx, t11.xxxx, s11, r3.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r4.xyxx, t11.xxxx, s11, r4.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r5.xyxx, t11.xxxx, s11, r5.z
mad r0.w, r1.x, l(0.450000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r6.xyxx, t11.xxxx, s11, r6.z
mad r0.w, r1.x, l(0.450000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r7.xyxx, t11.xxxx, s11, r7.z
mad r0.w, r1.x, l(0.450000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r8.xyxx, t11.xxxx, s11, r8.z
mad r0.w, r1.x, l(0.450000), r0.w
ne r1.x, r0.w, l(0.000000)
if_nz r1.x
mad r1.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r2.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
mad r3.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r4.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
mad r5.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r7.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r0.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r1.x, r1.x, l(0.150000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t11.xxxx, s11, r0.z
mad r0.x, r0.x, l(0.450000), r1.x
mul r0.x, r0.x, l(0.119047619)
else
mul r0.x, r0.w, l(0.166666672)
endif
add r0.x, -r0.x, l(1.000000)
mov x0[3].x, r0.x
endif
mov o0.x, x0[0].x
mov o0.y, x0[1].x
mov o0.z, x0[2].x
mov o0.w, x0[3].x
ret
// Approximately 313 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#17
Posted 03/17/2017 10:29 PM   
It seems very similar to Dark Souls 2 SOTFS and Skyrim SE shadows shaders. I can't promise that they will work, but try this (one shader at a time just in case, to better identify which fixes what): 40285a8c8fd28555-ps_replace.txt [code]//Nier Automata. Shadows 1. // ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017 cbuffer SceneBuffer : register(b0) { float4x4 g_View : packoffset(c0); float4x4 g_Proj : packoffset(c4); float4x4 g_ViewProjection : packoffset(c8); float4x4 g_ViewInverseMatrix : packoffset(c12); } cbuffer CamParam_HPixel_Buffer : register(b13) { float4 g_CameraParam : packoffset(c0); float4 g_CameraVec : packoffset(c1); } cbuffer ShadowView_Buffer : register(b10) { float4 g_ShadowFarInv : packoffset(c0); float4 g_DepthOffset : packoffset(c1); float4 g_BokeOffset : packoffset(c2); float4x4 g_ShadowView : packoffset(c3); float4x4 g_ShadowViewProj[4] : packoffset(c7); } SamplerState g_Z_TexSampler_s : register(s6); SamplerComparisonState g_Shadow_TexSampler_s : register(s11); Texture2D<float4> g_Z_Tex : register(t6); Texture2D<float4> g_Shadow_Tex : register(t11); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_POSITION0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, out float4 o0 : SV_Target0) { const float4 icb[] = { { 1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, 0, 1.000000, 0}, { 0, 0, 0, 1.000000} }; float4 r0,r1,r2,r3,r4,r5,r6,r7,r8; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); float separation = stereo.x; float convergence = stereo.y; float4 x0[4]; r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x; r0.x = r0.x * g_CameraParam.y + g_CameraParam.x; r0.yz = v2.xy * r0.xx; r1.xy = v2.zw * r0.yz; r1.z = -r0.x; r1.w = 1; r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30); r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31); r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32); r0.w = 1; float depth=dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33); r0.x+=separation*(depth*convergence-1); r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33); x0[0].xyw = r1.xyz; r1.x = r1.w / r1.z; r2.xyzw = g_DepthOffset.xyzw * g_ShadowFarInv.xyzw; r1.x = -r2.x * 0.100000001 + r1.x; x0[0].z = r1.x; r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33); x0[1].xyw = r1.xyz; r1.x = r1.w / r1.z; r1.x = -r2.y * 0.100000001 + r1.x; x0[1].z = r1.x; r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33); x0[2].xyw = r1.xyz; r1.x = r1.w / r1.z; r1.x = -r2.z * 0.100000001 + r1.x; x0[2].z = r1.x; r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31); r1.w = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32); r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33); x0[3].xyw = r1.xyz; r0.x = r1.w / r1.z; r0.x = -r2.w * 0.100000001 + r0.x; x0[3].z = r0.x; r0.xyzw = float4(0,0,0,0); while (true) { r1.x = cmp((uint)r0.y >= 4); if (r1.x != 0) break; r1.xyzw = x0[r0.y+0].xyzw; r1.xy = r1.xy / r1.ww; r1.z = max(abs(r1.y), abs(r1.z)); r1.z = max(abs(r1.x), r1.z); r1.z = cmp(0.99000001 >= r1.z); if (r1.z != 0) { r0.zw = r1.xy; break; } r0.xy = (int2)r0.xy + int2(1,1); r0.zw = r1.xy; } r0.y = cmp((uint)r0.x < 4); if (r0.y != 0) { r0.y = 1 + r0.z; r0.z = (int)r0.x & 1; r0.z = (uint)r0.z; r0.z = 0.5 * r0.z; r1.x = r0.y * 0.25 + r0.z; r0.y = 1 + -r0.w; r0.z = (uint)r0.x >> 1; r0.z = (uint)r0.z; r0.z = 0.5 * r0.z; r1.y = r0.y * 0.25 + r0.z; r1.z = x0[r0.x+0].z; r0.x = dot(g_BokeOffset.xyzw, icb[r0.x+0].xyzw); r0.yzw = r0.xxx * float3(0.5,0.5,0) + r1.xyz; r2.xyz = r0.xxx * float3(-0.5,-0.5,0) + r1.xyz; r3.xyz = r0.xxx * float3(-0.5,0.5,0) + r1.xyz; r4.xyz = r0.xxx * float3(0.5,-0.5,0) + r1.xyz; r5.xyz = r0.xxx * float3(-1.5,0.5,0) + r1.xyz; r6.xyz = r0.xxx * float3(1.5,-0.5,0) + r1.xyz; r7.xyz = r0.xxx * float3(-0.5,1.5,0) + r1.xyz; r8.xyz = r0.xxx * float3(0.5,-1.5,0) + r1.xyz; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r0.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.yz, r0.w).x; r0.y = r0.y * 0.800000012 + r1.w; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r0.y = r0.z * 0.800000012 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r0.y = r0.z * 0.800000012 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r0.y = r0.z * 0.800000012 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r0.y = r0.z * 0.449999988 + r0.y; r0.z = cmp(r0.y != 0.000000); if (r0.z != 0) { r2.xyz = r0.xxx * float3(1.5,1.5,0) + r1.xyz; r3.xyz = r0.xxx * float3(-1.5,-1.5,0) + r1.xyz; r4.xyz = r0.xxx * float3(-1.5,1.5,0) + r1.xyz; r5.xyz = r0.xxx * float3(1.5,-1.5,0) + r1.xyz; r6.xyz = r0.xxx * float3(1.5,0.5,0) + r1.xyz; r7.xyz = r0.xxx * float3(-1.5,-0.5,0) + r1.xyz; r8.xyz = r0.xxx * float3(0.5,1.5,0) + r1.xyz; r0.xzw = r0.xxx * float3(-0.5,-1.5,0) + r1.xyz; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = r1.x * 0.150000006 + r0.y; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xz, r0.w).x; r0.x = r0.x * 0.449999988 + r1.x; r0.x = 0.119047619 * r0.x; } else { r0.x = 0.166666672 * r0.y; } r0.x = 1 + -r0.x; } else { r0.x = 1; } o0.xyzw = r0.xxxx; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017 // // // Buffer Definitions: // // cbuffer SceneBuffer // { // // float4x4 g_View; // Offset: 0 Size: 64 [unused] // float4x4 g_Proj; // Offset: 64 Size: 64 [unused] // float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused] // float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64 // // } // // cbuffer CamParam_HPixel_Buffer // { // // float4 g_CameraParam; // Offset: 0 Size: 16 // float4 g_CameraVec; // Offset: 16 Size: 16 [unused] // // } // // cbuffer ShadowView_Buffer // { // // float4 g_ShadowFarInv; // Offset: 0 Size: 16 // float4 g_DepthOffset; // Offset: 16 Size: 16 // float4 g_BokeOffset; // Offset: 32 Size: 16 // float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused] // float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // g_Z_TexSampler sampler NA NA 6 1 // g_Shadow_TexSampler sampler_c NA NA 11 1 // g_Z_Tex texture float4 2d 6 1 // g_Shadow_Tex texture float4 2d 11 1 // SceneBuffer cbuffer NA NA 0 1 // ShadowView_Buffer cbuffer NA NA 10 1 // CamParam_HPixel_Buffer cbuffer NA NA 13 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float // TEXCOORD 0 xy 1 NONE float xy // TEXCOORD 1 xyzw 2 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, 0, 1.000000, 0}, { 0, 0, 0, 1.000000} } dcl_constantbuffer cb0[15], immediateIndexed dcl_constantbuffer cb13[1], immediateIndexed dcl_constantbuffer cb10[23], immediateIndexed dcl_sampler s6, mode_default dcl_sampler s11, mode_comparison dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t11 dcl_input_ps linear v1.xy dcl_input_ps linear v2.xyzw dcl_output o0.xyzw dcl_temps 9 dcl_indexableTemp x0[4], 4 sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6 mad r0.x, r0.x, cb13[0].y, cb13[0].x mul r0.yz, r0.xxxx, v2.xxyx mul r1.xy, r0.yzyy, v2.zwzz mov r1.z, -r0.x mov r1.w, l(1.000000) dp4 r0.x, r1.xyzw, cb0[12].xyzw dp4 r0.y, r1.xyzw, cb0[13].xyzw dp4 r0.z, r1.xyzw, cb0[14].xyzw mov r0.w, l(1.000000) dp4 r1.x, r0.xyzw, cb10[7].xyzw dp4 r1.y, r0.xyzw, cb10[8].xyzw dp4 r1.w, r0.xyzw, cb10[9].xyzw dp4 r1.z, r0.xyzw, cb10[10].xyzw mov x0[0].xyw, r1.xyxz div r1.x, r1.w, r1.z mul r2.xyzw, cb10[0].xyzw, cb10[1].xyzw mad r1.x, -r2.x, l(0.100000), r1.x mov x0[0].z, r1.x dp4 r1.x, r0.xyzw, cb10[11].xyzw dp4 r1.y, r0.xyzw, cb10[12].xyzw dp4 r1.w, r0.xyzw, cb10[13].xyzw dp4 r1.z, r0.xyzw, cb10[14].xyzw mov x0[1].xyw, r1.xyxz div r1.x, r1.w, r1.z mad r1.x, -r2.y, l(0.100000), r1.x mov x0[1].z, r1.x dp4 r1.x, r0.xyzw, cb10[15].xyzw dp4 r1.y, r0.xyzw, cb10[16].xyzw dp4 r1.w, r0.xyzw, cb10[17].xyzw dp4 r1.z, r0.xyzw, cb10[18].xyzw mov x0[2].xyw, r1.xyxz div r1.x, r1.w, r1.z mad r1.x, -r2.z, l(0.100000), r1.x mov x0[2].z, r1.x dp4 r1.x, r0.xyzw, cb10[19].xyzw dp4 r1.y, r0.xyzw, cb10[20].xyzw dp4 r1.w, r0.xyzw, cb10[21].xyzw dp4 r1.z, r0.xyzw, cb10[22].xyzw mov x0[3].xyw, r1.xyxz div r0.x, r1.w, r1.z mad r0.x, -r2.w, l(0.100000), r0.x mov x0[3].z, r0.x mov r0.xyzw, l(0,0,0,0) loop uge r1.x, r0.y, l(4) breakc_nz r1.x mov r1.xyzw, x0[r0.y + 0].xyzw div r1.xy, r1.xyxx, r1.wwww max r1.z, |r1.z|, |r1.y| max r1.z, r1.z, |r1.x| ge r1.z, l(0.990000), r1.z if_nz r1.z mov r0.zw, r1.xxxy break endif iadd r0.xy, r0.xyxx, l(1, 1, 0, 0) mov r0.zw, r1.xxxy endloop ult r0.y, r0.x, l(4) if_nz r0.y add r0.y, r0.z, l(1.000000) and r0.z, r0.x, l(1) utof r0.z, r0.z mul r0.z, r0.z, l(0.500000) mad r1.x, r0.y, l(0.250000), r0.z add r0.y, -r0.w, l(1.000000) ushr r0.z, r0.x, l(1) utof r0.z, r0.z mul r0.z, r0.z, l(0.500000) mad r1.y, r0.y, l(0.250000), r0.z mov r1.z, x0[r0.x + 0].z dp4 r0.x, cb10[2].xyzw, icb[r0.x + 0].xyzw mad r0.yzw, r0.xxxx, l(0.000000, 0.500000, 0.500000, 0.000000), r1.xxyz mad r2.xyz, r0.xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r3.xyz, r0.xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r1.xyzx mad r4.xyz, r0.xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r5.xyz, r0.xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx mad r6.xyz, r0.xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r7.xyz, r0.xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r8.xyz, r0.xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r1.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r1.xyxx, t11.xxxx, s11, r1.z sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r0.yzyy, t11.xxxx, s11, r0.w mad r0.y, r0.y, l(0.800000), r1.w sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r2.xyxx, t11.xxxx, s11, r2.z mad r0.y, r0.z, l(0.800000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r3.xyxx, t11.xxxx, s11, r3.z mad r0.y, r0.z, l(0.800000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t11.xxxx, s11, r4.z mad r0.y, r0.z, l(0.800000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r5.xyxx, t11.xxxx, s11, r5.z mad r0.y, r0.z, l(0.450000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t11.xxxx, s11, r6.z mad r0.y, r0.z, l(0.450000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t11.xxxx, s11, r7.z mad r0.y, r0.z, l(0.450000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r8.xyxx, t11.xxxx, s11, r8.z mad r0.y, r0.z, l(0.450000), r0.y ne r0.z, r0.y, l(0.000000) if_nz r0.z mad r2.xyz, r0.xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r3.xyz, r0.xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx mad r4.xyz, r0.xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r5.xyz, r0.xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx mad r6.xyz, r0.xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx mad r7.xyz, r0.xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx mad r8.xyz, r0.xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx mad r0.xzw, r0.xxxx, l(-0.500000, 0.000000, -1.500000, 0.000000), r1.xxyz sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z mad r1.x, r1.x, l(0.150000), r0.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xzxx, t11.xxxx, s11, r0.w mad r0.x, r0.x, l(0.450000), r1.x mul r0.x, r0.x, l(0.119047619) else mul r0.x, r0.y, l(0.166666672) endif add r0.x, -r0.x, l(1.000000) else mov r0.x, l(1.000000) endif mov o0.xyzw, r0.xxxx ret // Approximately 134 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/[/code] 896775b62a868a33-ps_replace.txt [code]//Nier Automata. Shadows 1. // ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017 cbuffer SceneBuffer : register(b0) { float4x4 g_View : packoffset(c0); float4x4 g_Proj : packoffset(c4); float4x4 g_ViewProjection : packoffset(c8); float4x4 g_ViewInverseMatrix : packoffset(c12); } cbuffer CamParam_HPixel_Buffer : register(b13) { float4 g_CameraParam : packoffset(c0); float4 g_CameraVec : packoffset(c1); } cbuffer ShadowView_Buffer : register(b10) { float4 g_ShadowFarInv : packoffset(c0); float4 g_DepthOffset : packoffset(c1); float4 g_BokeOffset : packoffset(c2); float4x4 g_ShadowView : packoffset(c3); float4x4 g_ShadowViewProj[4] : packoffset(c7); } SamplerState g_Z_TexSampler_s : register(s6); SamplerComparisonState g_Shadow_TexSampler_s : register(s11); Texture2D<float4> g_Z_Tex : register(t6); Texture2D<float4> g_Shadow_Tex : register(t11); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_POSITION0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); float separation = stereo.x; float convergence = stereo.y; float4 x0[4]; r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x; x0[3].x = 0; x0[2].x = 0; x0[1].x = 0; x0[0].x = 0; r0.x = r0.x * g_CameraParam.y + g_CameraParam.x; r0.yz = v2.xy * r0.xx; r1.xy = v2.zw * r0.yz; r1.z = -r0.x; r1.w = 1; r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30); r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31); r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32); r0.w = 1; float depth=dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33); r0.x+=separation*(depth*convergence-1); r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r2.x = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32); r1.z = r2.x / r1.z; r2.z = -g_DepthOffset.x * 0.25 + r1.z; r1.x = 1 + r1.x; r1.zw = (int2)r1.ww & int2(1,0); r2.x = r1.x * 0.25 + r1.w; r1.x = 1 + -r1.y; r2.y = 0.25 * r1.x; r1.xyw = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz; r3.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz; r2.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.w).x; r1.x = r1.x * 0.800000012 + r2.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r3.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz; r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.y = r1.y * 0.150000006 + r1.x; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.y = r1.w * 0.150000006 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.y = r1.w * 0.150000006 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.y = r1.w * 0.150000006 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.y = r1.w * 0.449999988 + r1.y; r1.y = 0.119047619 * r1.y; } else { r1.y = 0.166666672 * r1.x; } r1.x = 1 + -r1.y; x0[r1.z+0].x = r1.x; } r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r2.x = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32); r1.z = r2.x / r1.z; r2.z = -g_DepthOffset.x * 0.25 + r1.z; r1.x = 1 + r1.x; r3.xy = r1.ww ? float2(2,0) : float2(1,0.5); r2.x = r1.x * 0.25 + r3.y; r1.x = 1 + -r1.y; r1.y = (int)r1.w & 0x3f000000; r2.y = r1.x * 0.25 + r1.y; r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz; r3.yzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r1.x = r1.x * 0.800000012 + r1.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz; r3.yzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz; r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz; r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz; r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz; r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz; r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x; r1.y = r1.y * 0.150000006 + r1.x; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.y = 0.119047619 * r1.y; } else { r1.y = 0.166666672 * r1.x; } r1.x = 1 + -r1.y; x0[r3.x+0].x = r1.x; } r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r2.x = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32); r2.y = r1.w ? 3 : 2; r1.z = r2.x / r1.z; r3.z = -g_DepthOffset.x * 0.25 + r1.z; r1.x = 1 + r1.x; r1.z = (int)r1.w & 0x3f000000; r3.x = r1.x * 0.25 + r1.z; r1.x = 1 + -r1.y; r3.y = r1.x * 0.25 + 0.5; r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r3.xyz; r2.xzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r3.xyz; r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r3.xyz; r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r3.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r3.xyz; r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r3.xyz; r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r3.xyz; r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r3.xyz; r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r1.x = r1.x * 0.800000012 + r1.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.800000012 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r3.xyz; r2.xzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r3.xyz; r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r3.xyz; r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r3.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r3.xyz; r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r3.xyz; r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r3.xyz; r3.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r3.xyz; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x; r1.y = r1.y * 0.150000006 + r1.x; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.y = r1.z * 0.150000006 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.y = r1.z * 0.449999988 + r1.y; r1.y = 0.119047619 * r1.y; } else { r1.y = 0.166666672 * r1.x; } r1.x = 1 + -r1.y; x0[r2.y+0].x = r1.x; } r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30); r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31); r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33); r1.xy = r1.xy / r1.zz; r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy)); r1.w = (int)r2.y | (int)r2.x; if (r1.w == 0) { r0.x = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32); r0.x = r0.x / r1.z; r0.z = -g_DepthOffset.x * 0.25 + r0.x; r0.w = 1 + r1.x; r1.xz = r1.ww ? float2(0,1) : float2(0.5,0.5); r0.x = r0.w * 0.25 + r1.x; r0.w = 1 + -r1.y; r0.y = r0.w * 0.25 + r1.z; r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r0.xyz; r2.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r0.xyz; r3.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r0.xyz; r4.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r0.xyz; r5.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r0.xyz; r6.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r0.xyz; r7.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r0.xyz; r8.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r0.xyz; r0.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r0.w = r1.x * 0.800000012 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x; r0.w = r1.x * 0.449999988 + r0.w; r1.x = cmp(r0.w != 0.000000); if (r1.x != 0) { r1.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r0.xyz; r2.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r0.xyz; r3.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r0.xyz; r4.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r0.xyz; r5.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r0.xyz; r6.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r0.xyz; r7.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r0.xyz; r0.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r0.xyz; r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x; r1.x = r1.x * 0.150000006 + r0.w; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x; r1.x = r1.y * 0.150000006 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x; r1.x = r1.y * 0.449999988 + r1.x; r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x; r1.x = r1.y * 0.449999988 + r1.x; r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x; r0.x = r0.x * 0.449999988 + r1.x; r0.x = 0.119047619 * r0.x; } else { r0.x = 0.166666672 * r0.w; } r0.x = 1 + -r0.x; x0[3].x = r0.x; } o0.x = x0[0].x; o0.y = x0[1].x; o0.z = x0[2].x; o0.w = x0[3].x; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017 // // // Buffer Definitions: // // cbuffer SceneBuffer // { // // float4x4 g_View; // Offset: 0 Size: 64 [unused] // float4x4 g_Proj; // Offset: 64 Size: 64 [unused] // float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused] // float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64 // // } // // cbuffer CamParam_HPixel_Buffer // { // // float4 g_CameraParam; // Offset: 0 Size: 16 // float4 g_CameraVec; // Offset: 16 Size: 16 [unused] // // } // // cbuffer ShadowView_Buffer // { // // float4 g_ShadowFarInv; // Offset: 0 Size: 16 [unused] // float4 g_DepthOffset; // Offset: 16 Size: 16 // float4 g_BokeOffset; // Offset: 32 Size: 16 // float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused] // float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // g_Z_TexSampler sampler NA NA 6 1 // g_Shadow_TexSampler sampler_c NA NA 11 1 // g_Z_Tex texture float4 2d 6 1 // g_Shadow_Tex texture float4 2d 11 1 // SceneBuffer cbuffer NA NA 0 1 // ShadowView_Buffer cbuffer NA NA 10 1 // CamParam_HPixel_Buffer cbuffer NA NA 13 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float // TEXCOORD 0 xy 1 NONE float xy // TEXCOORD 1 xyzw 2 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[15], immediateIndexed dcl_constantbuffer cb13[1], immediateIndexed dcl_constantbuffer cb10[23], immediateIndexed dcl_sampler s6, mode_default dcl_sampler s11, mode_comparison dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t11 dcl_input_ps linear v1.xy dcl_input_ps linear v2.xyzw dcl_output o0.xyzw dcl_temps 10 dcl_indexableTemp x0[4], 4 sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6 mov x0[3].x, l(0) mov x0[2].x, l(0) mov x0[1].x, l(0) mov x0[0].x, l(0) mad r0.x, r0.x, cb13[0].y, cb13[0].x mul r0.yz, r0.xxxx, v2.xxyx mul r1.xy, r0.yzyy, v2.zwzz mov r1.z, -r0.x mov r1.w, l(1.000000) dp4 r0.x, r1.xyzw, cb0[12].xyzw dp4 r0.y, r1.xyzw, cb0[13].xyzw dp4 r0.z, r1.xyzw, cb0[14].xyzw mov r0.w, l(1.000000) dp4 r1.x, r0.xyzw, cb10[7].xyzw dp4 r1.y, r0.xyzw, cb10[8].xyzw dp4 r1.z, r0.xyzw, cb10[10].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r2.x, r0.xyzw, cb10[9].xyzw div r1.z, r2.x, r1.z mad r2.z, -cb10[1].x, l(0.250000), r1.z add r1.x, r1.x, l(1.000000) and r1.zw, r1.wwww, l(0, 0, 1, 0x3f000000) mad r2.x, r1.x, l(0.250000), r1.w add r1.x, -r1.y, l(1.000000) mul r2.y, r1.x, l(0.250000) mad r1.xyw, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyxz mad r3.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r2.xyxx, t11.xxxx, s11, r2.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.w mad r1.x, r1.x, l(0.800000), r2.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z mad r1.x, r1.y, l(0.450000), r1.x ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r3.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r4.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.y, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r4.xyxx, t11.xxxx, s11, r4.z mad r1.y, r1.w, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t11.xxxx, s11, r5.z mad r1.y, r1.w, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t11.xxxx, s11, r6.z mad r1.y, r1.w, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r7.xyxx, t11.xxxx, s11, r7.z mad r1.y, r1.w, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r8.xyxx, t11.xxxx, s11, r8.z mad r1.y, r1.w, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r9.xyxx, t11.xxxx, s11, r9.z mad r1.y, r1.w, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z mad r1.y, r1.w, l(0.450000), r1.y mul r1.y, r1.y, l(0.119047619) else mul r1.y, r1.x, l(0.166666672) endif add r1.x, -r1.y, l(1.000000) mov x0[r1.z + 0].x, r1.x endif dp4 r1.x, r0.xyzw, cb10[11].xyzw dp4 r1.y, r0.xyzw, cb10[12].xyzw dp4 r1.z, r0.xyzw, cb10[14].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r2.x, r0.xyzw, cb10[13].xyzw div r1.z, r2.x, r1.z mad r2.z, -cb10[1].x, l(0.250000), r1.z add r1.x, r1.x, l(1.000000) movc r3.xy, r1.wwww, l(2,0,0,0), l(1,0.500000,0,0) mad r2.x, r1.x, l(0.250000), r3.y add r1.x, -r1.y, l(1.000000) and r1.y, r1.w, l(0x3f000000) mad r2.y, r1.x, l(0.250000), r1.y mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r3.yzw, cb10[2].xxxx, l(0.000000, -0.500000, -0.500000, 0.000000), r2.xxyz mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r1.x, r1.x, l(0.800000), r1.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.yzyy, t11.xxxx, s11, r3.w mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z mad r1.x, r1.y, l(0.450000), r1.x ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r2.xxyz mad r3.yzw, cb10[2].xxxx, l(0.000000, -1.500000, -1.500000, 0.000000), r2.xxyz mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w mad r1.y, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.yzyy, t11.xxxx, s11, r3.w mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xyxx, t11.xxxx, s11, r2.z mad r1.y, r1.z, l(0.450000), r1.y mul r1.y, r1.y, l(0.119047619) else mul r1.y, r1.x, l(0.166666672) endif add r1.x, -r1.y, l(1.000000) mov x0[r3.x + 0].x, r1.x endif dp4 r1.x, r0.xyzw, cb10[15].xyzw dp4 r1.y, r0.xyzw, cb10[16].xyzw dp4 r1.z, r0.xyzw, cb10[18].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r2.x, r0.xyzw, cb10[17].xyzw movc r2.y, r1.w, l(3), l(2) div r1.z, r2.x, r1.z mad r3.z, -cb10[1].x, l(0.250000), r1.z add r1.x, r1.x, l(1.000000) and r1.z, r1.w, l(0x3f000000) mad r3.x, r1.x, l(0.250000), r1.z add r1.x, -r1.y, l(1.000000) mad r3.y, r1.x, l(0.250000), l(0.500000) mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r2.xzw, cb10[2].xxxx, l(-0.500000, 0.000000, -0.500000, 0.000000), r3.xxyz mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r3.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r3.xyxx, t11.xxxx, s11, r3.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r1.x, r1.x, l(0.800000), r1.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xzxx, t11.xxxx, s11, r2.w mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.800000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z mad r1.x, r1.y, l(0.450000), r1.x ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r3.xxyz mad r2.xzw, cb10[2].xxxx, l(-1.500000, 0.000000, -1.500000, 0.000000), r3.xxyz mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r3.xyzx mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r3.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx mad r3.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w mad r1.y, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xzxx, t11.xxxx, s11, r2.w mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z mad r1.y, r1.z, l(0.150000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z mad r1.y, r1.z, l(0.450000), r1.y sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.xyxx, t11.xxxx, s11, r3.z mad r1.y, r1.z, l(0.450000), r1.y mul r1.y, r1.y, l(0.119047619) else mul r1.y, r1.x, l(0.166666672) endif add r1.x, -r1.y, l(1.000000) mov x0[r2.y + 0].x, r1.x endif dp4 r1.x, r0.xyzw, cb10[19].xyzw dp4 r1.y, r0.xyzw, cb10[20].xyzw dp4 r1.z, r0.xyzw, cb10[22].xyzw div r1.xy, r1.xyxx, r1.zzzz lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx| or r1.w, r2.y, r2.x if_z r1.w dp4 r0.x, r0.xyzw, cb10[21].xyzw div r0.x, r0.x, r1.z mad r0.z, -cb10[1].x, l(0.250000), r0.x add r0.w, r1.x, l(1.000000) movc r1.xz, r1.wwww, l(0,0,1.000000,0), l(0.500000,0,0.500000,0) mad r0.x, r0.w, l(0.250000), r1.x add r0.w, -r1.y, l(1.000000) mad r0.y, r0.w, l(0.250000), r1.z mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r2.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r3.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r4.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r5.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r6.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r7.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r8.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r0.xyxx, t11.xxxx, s11, r0.z sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r3.xyxx, t11.xxxx, s11, r3.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r4.xyxx, t11.xxxx, s11, r4.z mad r0.w, r1.x, l(0.800000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r5.xyxx, t11.xxxx, s11, r5.z mad r0.w, r1.x, l(0.450000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r6.xyxx, t11.xxxx, s11, r6.z mad r0.w, r1.x, l(0.450000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r7.xyxx, t11.xxxx, s11, r7.z mad r0.w, r1.x, l(0.450000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r8.xyxx, t11.xxxx, s11, r8.z mad r0.w, r1.x, l(0.450000), r0.w ne r1.x, r0.w, l(0.000000) if_nz r1.x mad r1.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r2.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx mad r3.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r4.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx mad r5.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx mad r6.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx mad r7.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx mad r0.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z mad r1.x, r1.x, l(0.150000), r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t11.xxxx, s11, r2.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z mad r1.x, r1.y, l(0.150000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z mad r1.x, r1.y, l(0.450000), r1.x sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t11.xxxx, s11, r0.z mad r0.x, r0.x, l(0.450000), r1.x mul r0.x, r0.x, l(0.119047619) else mul r0.x, r0.w, l(0.166666672) endif add r0.x, -r0.x, l(1.000000) mov x0[3].x, r0.x endif mov o0.x, x0[0].x mov o0.y, x0[1].x mov o0.z, x0[2].x mov o0.w, x0[3].x ret // Approximately 313 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/[/code]
It seems very similar to Dark Souls 2 SOTFS and Skyrim SE shadows shaders. I can't promise that they will work, but try this (one shader at a time just in case, to better identify which fixes what):

40285a8c8fd28555-ps_replace.txt
//Nier Automata. Shadows 1.
// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017

cbuffer SceneBuffer : register(b0)
{
float4x4 g_View : packoffset(c0);
float4x4 g_Proj : packoffset(c4);
float4x4 g_ViewProjection : packoffset(c8);
float4x4 g_ViewInverseMatrix : packoffset(c12);
}

cbuffer CamParam_HPixel_Buffer : register(b13)
{
float4 g_CameraParam : packoffset(c0);
float4 g_CameraVec : packoffset(c1);
}

cbuffer ShadowView_Buffer : register(b10)
{
float4 g_ShadowFarInv : packoffset(c0);
float4 g_DepthOffset : packoffset(c1);
float4 g_BokeOffset : packoffset(c2);
float4x4 g_ShadowView : packoffset(c3);
float4x4 g_ShadowViewProj[4] : packoffset(c7);
}

SamplerState g_Z_TexSampler_s : register(s6);
SamplerComparisonState g_Shadow_TexSampler_s : register(s11);
Texture2D<float4> g_Z_Tex : register(t6);
Texture2D<float4> g_Shadow_Tex : register(t11);


// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float4 v2 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
const float4 icb[] = { { 1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, 0, 1.000000, 0},
{ 0, 0, 0, 1.000000} };
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8;
uint4 bitmask, uiDest;
float4 fDest;

float4 stereo = StereoParams.Load(0);
float separation = stereo.x;
float convergence = stereo.y;

float4 x0[4];
r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x;
r0.x = r0.x * g_CameraParam.y + g_CameraParam.x;
r0.yz = v2.xy * r0.xx;
r1.xy = v2.zw * r0.yz;
r1.z = -r0.x;
r1.w = 1;
r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30);
r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31);
r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32);
r0.w = 1;

float depth=dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33);
r0.x+=separation*(depth*convergence-1);

r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33);
x0[0].xyw = r1.xyz;
r1.x = r1.w / r1.z;
r2.xyzw = g_DepthOffset.xyzw * g_ShadowFarInv.xyzw;
r1.x = -r2.x * 0.100000001 + r1.x;
x0[0].z = r1.x;
r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33);
x0[1].xyw = r1.xyz;
r1.x = r1.w / r1.z;
r1.x = -r2.y * 0.100000001 + r1.x;
x0[1].z = r1.x;
r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33);
x0[2].xyw = r1.xyz;
r1.x = r1.w / r1.z;
r1.x = -r2.z * 0.100000001 + r1.x;
x0[2].z = r1.x;
r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31);
r1.w = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32);
r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33);
x0[3].xyw = r1.xyz;
r0.x = r1.w / r1.z;
r0.x = -r2.w * 0.100000001 + r0.x;
x0[3].z = r0.x;
r0.xyzw = float4(0,0,0,0);
while (true) {
r1.x = cmp((uint)r0.y >= 4);
if (r1.x != 0) break;
r1.xyzw = x0[r0.y+0].xyzw;
r1.xy = r1.xy / r1.ww;
r1.z = max(abs(r1.y), abs(r1.z));
r1.z = max(abs(r1.x), r1.z);
r1.z = cmp(0.99000001 >= r1.z);
if (r1.z != 0) {
r0.zw = r1.xy;
break;
}
r0.xy = (int2)r0.xy + int2(1,1);
r0.zw = r1.xy;
}
r0.y = cmp((uint)r0.x < 4);
if (r0.y != 0) {
r0.y = 1 + r0.z;
r0.z = (int)r0.x & 1;
r0.z = (uint)r0.z;
r0.z = 0.5 * r0.z;
r1.x = r0.y * 0.25 + r0.z;
r0.y = 1 + -r0.w;
r0.z = (uint)r0.x >> 1;
r0.z = (uint)r0.z;
r0.z = 0.5 * r0.z;
r1.y = r0.y * 0.25 + r0.z;
r1.z = x0[r0.x+0].z;
r0.x = dot(g_BokeOffset.xyzw, icb[r0.x+0].xyzw);
r0.yzw = r0.xxx * float3(0.5,0.5,0) + r1.xyz;
r2.xyz = r0.xxx * float3(-0.5,-0.5,0) + r1.xyz;
r3.xyz = r0.xxx * float3(-0.5,0.5,0) + r1.xyz;
r4.xyz = r0.xxx * float3(0.5,-0.5,0) + r1.xyz;
r5.xyz = r0.xxx * float3(-1.5,0.5,0) + r1.xyz;
r6.xyz = r0.xxx * float3(1.5,-0.5,0) + r1.xyz;
r7.xyz = r0.xxx * float3(-0.5,1.5,0) + r1.xyz;
r8.xyz = r0.xxx * float3(0.5,-1.5,0) + r1.xyz;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r0.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.yz, r0.w).x;
r0.y = r0.y * 0.800000012 + r1.w;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r0.y = r0.z * 0.800000012 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r0.y = r0.z * 0.800000012 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r0.y = r0.z * 0.800000012 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r0.y = r0.z * 0.449999988 + r0.y;
r0.z = cmp(r0.y != 0.000000);
if (r0.z != 0) {
r2.xyz = r0.xxx * float3(1.5,1.5,0) + r1.xyz;
r3.xyz = r0.xxx * float3(-1.5,-1.5,0) + r1.xyz;
r4.xyz = r0.xxx * float3(-1.5,1.5,0) + r1.xyz;
r5.xyz = r0.xxx * float3(1.5,-1.5,0) + r1.xyz;
r6.xyz = r0.xxx * float3(1.5,0.5,0) + r1.xyz;
r7.xyz = r0.xxx * float3(-1.5,-0.5,0) + r1.xyz;
r8.xyz = r0.xxx * float3(0.5,1.5,0) + r1.xyz;
r0.xzw = r0.xxx * float3(-0.5,-1.5,0) + r1.xyz;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = r1.x * 0.150000006 + r0.y;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xz, r0.w).x;
r0.x = r0.x * 0.449999988 + r1.x;
r0.x = 0.119047619 * r0.x;
} else {
r0.x = 0.166666672 * r0.y;
}
r0.x = 1 + -r0.x;
} else {
r0.x = 1;
}
o0.xyzw = r0.xxxx;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.56 on Fri Mar 17 16:38:25 2017
//
//
// Buffer Definitions:
//
// cbuffer SceneBuffer
// {
//
// float4x4 g_View; // Offset: 0 Size: 64 [unused]
// float4x4 g_Proj; // Offset: 64 Size: 64 [unused]
// float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused]
// float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64
//
// }
//
// cbuffer CamParam_HPixel_Buffer
// {
//
// float4 g_CameraParam; // Offset: 0 Size: 16
// float4 g_CameraVec; // Offset: 16 Size: 16 [unused]
//
// }
//
// cbuffer ShadowView_Buffer
// {
//
// float4 g_ShadowFarInv; // Offset: 0 Size: 16
// float4 g_DepthOffset; // Offset: 16 Size: 16
// float4 g_BokeOffset; // Offset: 32 Size: 16
// float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused]
// float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_Z_TexSampler sampler NA NA 6 1
// g_Shadow_TexSampler sampler_c NA NA 11 1
// g_Z_Tex texture float4 2d 6 1
// g_Shadow_Tex texture float4 2d 11 1
// SceneBuffer cbuffer NA NA 0 1
// ShadowView_Buffer cbuffer NA NA 10 1
// CamParam_HPixel_Buffer cbuffer NA NA 13 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// TEXCOORD 1 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, 0, 1.000000, 0},
{ 0, 0, 0, 1.000000} }
dcl_constantbuffer cb0[15], immediateIndexed
dcl_constantbuffer cb13[1], immediateIndexed
dcl_constantbuffer cb10[23], immediateIndexed
dcl_sampler s6, mode_default
dcl_sampler s11, mode_comparison
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t11
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 9
dcl_indexableTemp x0[4], 4
sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6
mad r0.x, r0.x, cb13[0].y, cb13[0].x
mul r0.yz, r0.xxxx, v2.xxyx
mul r1.xy, r0.yzyy, v2.zwzz
mov r1.z, -r0.x
mov r1.w, l(1.000000)
dp4 r0.x, r1.xyzw, cb0[12].xyzw
dp4 r0.y, r1.xyzw, cb0[13].xyzw
dp4 r0.z, r1.xyzw, cb0[14].xyzw
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb10[7].xyzw
dp4 r1.y, r0.xyzw, cb10[8].xyzw
dp4 r1.w, r0.xyzw, cb10[9].xyzw
dp4 r1.z, r0.xyzw, cb10[10].xyzw
mov x0[0].xyw, r1.xyxz
div r1.x, r1.w, r1.z
mul r2.xyzw, cb10[0].xyzw, cb10[1].xyzw
mad r1.x, -r2.x, l(0.100000), r1.x
mov x0[0].z, r1.x
dp4 r1.x, r0.xyzw, cb10[11].xyzw
dp4 r1.y, r0.xyzw, cb10[12].xyzw
dp4 r1.w, r0.xyzw, cb10[13].xyzw
dp4 r1.z, r0.xyzw, cb10[14].xyzw
mov x0[1].xyw, r1.xyxz
div r1.x, r1.w, r1.z
mad r1.x, -r2.y, l(0.100000), r1.x
mov x0[1].z, r1.x
dp4 r1.x, r0.xyzw, cb10[15].xyzw
dp4 r1.y, r0.xyzw, cb10[16].xyzw
dp4 r1.w, r0.xyzw, cb10[17].xyzw
dp4 r1.z, r0.xyzw, cb10[18].xyzw
mov x0[2].xyw, r1.xyxz
div r1.x, r1.w, r1.z
mad r1.x, -r2.z, l(0.100000), r1.x
mov x0[2].z, r1.x
dp4 r1.x, r0.xyzw, cb10[19].xyzw
dp4 r1.y, r0.xyzw, cb10[20].xyzw
dp4 r1.w, r0.xyzw, cb10[21].xyzw
dp4 r1.z, r0.xyzw, cb10[22].xyzw
mov x0[3].xyw, r1.xyxz
div r0.x, r1.w, r1.z
mad r0.x, -r2.w, l(0.100000), r0.x
mov x0[3].z, r0.x
mov r0.xyzw, l(0,0,0,0)
loop
uge r1.x, r0.y, l(4)
breakc_nz r1.x
mov r1.xyzw, x0[r0.y + 0].xyzw
div r1.xy, r1.xyxx, r1.wwww
max r1.z, |r1.z|, |r1.y|
max r1.z, r1.z, |r1.x|
ge r1.z, l(0.990000), r1.z
if_nz r1.z
mov r0.zw, r1.xxxy
break
endif
iadd r0.xy, r0.xyxx, l(1, 1, 0, 0)
mov r0.zw, r1.xxxy
endloop
ult r0.y, r0.x, l(4)
if_nz r0.y
add r0.y, r0.z, l(1.000000)
and r0.z, r0.x, l(1)
utof r0.z, r0.z
mul r0.z, r0.z, l(0.500000)
mad r1.x, r0.y, l(0.250000), r0.z
add r0.y, -r0.w, l(1.000000)
ushr r0.z, r0.x, l(1)
utof r0.z, r0.z
mul r0.z, r0.z, l(0.500000)
mad r1.y, r0.y, l(0.250000), r0.z
mov r1.z, x0[r0.x + 0].z
dp4 r0.x, cb10[2].xyzw, icb[r0.x + 0].xyzw
mad r0.yzw, r0.xxxx, l(0.000000, 0.500000, 0.500000, 0.000000), r1.xxyz
mad r2.xyz, r0.xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r3.xyz, r0.xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r1.xyzx
mad r4.xyz, r0.xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r5.xyz, r0.xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx
mad r6.xyz, r0.xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r7.xyz, r0.xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r8.xyz, r0.xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r1.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r1.xyxx, t11.xxxx, s11, r1.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r0.yzyy, t11.xxxx, s11, r0.w
mad r0.y, r0.y, l(0.800000), r1.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r2.xyxx, t11.xxxx, s11, r2.z
mad r0.y, r0.z, l(0.800000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r3.xyxx, t11.xxxx, s11, r3.z
mad r0.y, r0.z, l(0.800000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t11.xxxx, s11, r4.z
mad r0.y, r0.z, l(0.800000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r5.xyxx, t11.xxxx, s11, r5.z
mad r0.y, r0.z, l(0.450000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t11.xxxx, s11, r6.z
mad r0.y, r0.z, l(0.450000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t11.xxxx, s11, r7.z
mad r0.y, r0.z, l(0.450000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.z, r8.xyxx, t11.xxxx, s11, r8.z
mad r0.y, r0.z, l(0.450000), r0.y
ne r0.z, r0.y, l(0.000000)
if_nz r0.z
mad r2.xyz, r0.xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r3.xyz, r0.xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx
mad r4.xyz, r0.xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r5.xyz, r0.xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r1.xyzx
mad r6.xyz, r0.xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r1.xyzx
mad r7.xyz, r0.xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r1.xyzx
mad r8.xyz, r0.xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r1.xyzx
mad r0.xzw, r0.xxxx, l(-0.500000, 0.000000, -1.500000, 0.000000), r1.xxyz
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.x, r1.x, l(0.150000), r0.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xzxx, t11.xxxx, s11, r0.w
mad r0.x, r0.x, l(0.450000), r1.x
mul r0.x, r0.x, l(0.119047619)
else
mul r0.x, r0.y, l(0.166666672)
endif
add r0.x, -r0.x, l(1.000000)
else
mov r0.x, l(1.000000)
endif
mov o0.xyzw, r0.xxxx
ret
// Approximately 134 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


896775b62a868a33-ps_replace.txt
//Nier Automata. Shadows 1.
// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017

cbuffer SceneBuffer : register(b0)
{
float4x4 g_View : packoffset(c0);
float4x4 g_Proj : packoffset(c4);
float4x4 g_ViewProjection : packoffset(c8);
float4x4 g_ViewInverseMatrix : packoffset(c12);
}

cbuffer CamParam_HPixel_Buffer : register(b13)
{
float4 g_CameraParam : packoffset(c0);
float4 g_CameraVec : packoffset(c1);
}

cbuffer ShadowView_Buffer : register(b10)
{
float4 g_ShadowFarInv : packoffset(c0);
float4 g_DepthOffset : packoffset(c1);
float4 g_BokeOffset : packoffset(c2);
float4x4 g_ShadowView : packoffset(c3);
float4x4 g_ShadowViewProj[4] : packoffset(c7);
}

SamplerState g_Z_TexSampler_s : register(s6);
SamplerComparisonState g_Shadow_TexSampler_s : register(s11);
Texture2D<float4> g_Z_Tex : register(t6);
Texture2D<float4> g_Shadow_Tex : register(t11);


// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float4 v2 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9;
uint4 bitmask, uiDest;
float4 fDest;

float4 stereo = StereoParams.Load(0);
float separation = stereo.x;
float convergence = stereo.y;

float4 x0[4];
r0.x = g_Z_Tex.Sample(g_Z_TexSampler_s, v1.xy).x;
x0[3].x = 0;
x0[2].x = 0;
x0[1].x = 0;
x0[0].x = 0;
r0.x = r0.x * g_CameraParam.y + g_CameraParam.x;
r0.yz = v2.xy * r0.xx;
r1.xy = v2.zw * r0.yz;
r1.z = -r0.x;
r1.w = 1;
r0.x = dot(r1.xyzw, g_ViewInverseMatrix._m00_m10_m20_m30);
r0.y = dot(r1.xyzw, g_ViewInverseMatrix._m01_m11_m21_m31);
r0.z = dot(r1.xyzw, g_ViewInverseMatrix._m02_m12_m22_m32);
r0.w = 1;

float depth=dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33);
r0.x+=separation*(depth*convergence-1);

r1.x = dot(r0.xyzw, g_ShadowViewProj[0]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[0]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[0]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r2.x = dot(r0.xyzw, g_ShadowViewProj[0]._m02_m12_m22_m32);
r1.z = r2.x / r1.z;
r2.z = -g_DepthOffset.x * 0.25 + r1.z;
r1.x = 1 + r1.x;
r1.zw = (int2)r1.ww & int2(1,0);
r2.x = r1.x * 0.25 + r1.w;
r1.x = 1 + -r1.y;
r2.y = 0.25 * r1.x;
r1.xyw = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz;
r2.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.w).x;
r1.x = r1.x * 0.800000012 + r2.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r3.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.y = r1.y * 0.150000006 + r1.x;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.y = r1.w * 0.150000006 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.y = r1.w * 0.150000006 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.y = r1.w * 0.150000006 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.y = r1.w * 0.449999988 + r1.y;
r1.y = 0.119047619 * r1.y;
} else {
r1.y = 0.166666672 * r1.x;
}
r1.x = 1 + -r1.y;
x0[r1.z+0].x = r1.x;
}
r1.x = dot(r0.xyzw, g_ShadowViewProj[1]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[1]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[1]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r2.x = dot(r0.xyzw, g_ShadowViewProj[1]._m02_m12_m22_m32);
r1.z = r2.x / r1.z;
r2.z = -g_DepthOffset.x * 0.25 + r1.z;
r1.x = 1 + r1.x;
r3.xy = r1.ww ? float2(2,0) : float2(1,0.5);
r2.x = r1.x * 0.25 + r3.y;
r1.x = 1 + -r1.y;
r1.y = (int)r1.w & 0x3f000000;
r2.y = r1.x * 0.25 + r1.y;
r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r2.xyz;
r3.yzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r2.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r2.xyz;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r1.x = r1.x * 0.800000012 + r1.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r2.xyz;
r3.yzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r2.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r2.xyz;
r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r2.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r2.xyz;
r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r2.xyz;
r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r2.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r2.xyz;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x;
r1.y = r1.y * 0.150000006 + r1.x;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.yz, r3.w).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.y = 0.119047619 * r1.y;
} else {
r1.y = 0.166666672 * r1.x;
}
r1.x = 1 + -r1.y;
x0[r3.x+0].x = r1.x;
}
r1.x = dot(r0.xyzw, g_ShadowViewProj[2]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[2]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[2]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r2.x = dot(r0.xyzw, g_ShadowViewProj[2]._m02_m12_m22_m32);
r2.y = r1.w ? 3 : 2;
r1.z = r2.x / r1.z;
r3.z = -g_DepthOffset.x * 0.25 + r1.z;
r1.x = 1 + r1.x;
r1.z = (int)r1.w & 0x3f000000;
r3.x = r1.x * 0.25 + r1.z;
r1.x = 1 + -r1.y;
r3.y = r1.x * 0.25 + 0.5;
r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r3.xyz;
r2.xzw = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r3.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r3.xyz;
r5.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r3.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r3.xyz;
r7.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r3.xyz;
r8.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r3.xyz;
r9.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r3.xyz;
r1.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r1.x = r1.x * 0.800000012 + r1.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.800000012 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r9.xy, r9.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r1.yzw = g_BokeOffset.xxx * float3(1.5,1.5,0) + r3.xyz;
r2.xzw = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r3.xyz;
r4.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r3.xyz;
r5.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r3.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r3.xyz;
r7.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r3.xyz;
r8.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r3.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r3.xyz;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.yz, r1.w).x;
r1.y = r1.y * 0.150000006 + r1.x;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xz, r2.w).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.y = r1.z * 0.150000006 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.z = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.y = r1.z * 0.449999988 + r1.y;
r1.y = 0.119047619 * r1.y;
} else {
r1.y = 0.166666672 * r1.x;
}
r1.x = 1 + -r1.y;
x0[r2.y+0].x = r1.x;
}
r1.x = dot(r0.xyzw, g_ShadowViewProj[3]._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, g_ShadowViewProj[3]._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, g_ShadowViewProj[3]._m03_m13_m23_m33);
r1.xy = r1.xy / r1.zz;
r2.xy = cmp(float2(0.99000001,0.99000001) < abs(r1.xy));
r1.w = (int)r2.y | (int)r2.x;
if (r1.w == 0) {
r0.x = dot(r0.xyzw, g_ShadowViewProj[3]._m02_m12_m22_m32);
r0.x = r0.x / r1.z;
r0.z = -g_DepthOffset.x * 0.25 + r0.x;
r0.w = 1 + r1.x;
r1.xz = r1.ww ? float2(0,1) : float2(0.5,0.5);
r0.x = r0.w * 0.25 + r1.x;
r0.w = 1 + -r1.y;
r0.y = r0.w * 0.25 + r1.z;
r1.xyz = g_BokeOffset.xxx * float3(0.5,0.5,0) + r0.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-0.5,-0.5,0) + r0.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-0.5,0.5,0) + r0.xyz;
r4.xyz = g_BokeOffset.xxx * float3(0.5,-0.5,0) + r0.xyz;
r5.xyz = g_BokeOffset.xxx * float3(-1.5,0.5,0) + r0.xyz;
r6.xyz = g_BokeOffset.xxx * float3(1.5,-0.5,0) + r0.xyz;
r7.xyz = g_BokeOffset.xxx * float3(-0.5,1.5,0) + r0.xyz;
r8.xyz = g_BokeOffset.xxx * float3(0.5,-1.5,0) + r0.xyz;
r0.w = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r0.w = r1.x * 0.800000012 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r8.xy, r8.z).x;
r0.w = r1.x * 0.449999988 + r0.w;
r1.x = cmp(r0.w != 0.000000);
if (r1.x != 0) {
r1.xyz = g_BokeOffset.xxx * float3(1.5,1.5,0) + r0.xyz;
r2.xyz = g_BokeOffset.xxx * float3(-1.5,-1.5,0) + r0.xyz;
r3.xyz = g_BokeOffset.xxx * float3(-1.5,1.5,0) + r0.xyz;
r4.xyz = g_BokeOffset.xxx * float3(1.5,-1.5,0) + r0.xyz;
r5.xyz = g_BokeOffset.xxx * float3(1.5,0.5,0) + r0.xyz;
r6.xyz = g_BokeOffset.xxx * float3(-1.5,-0.5,0) + r0.xyz;
r7.xyz = g_BokeOffset.xxx * float3(0.5,1.5,0) + r0.xyz;
r0.xyz = g_BokeOffset.xxx * float3(-0.5,-1.5,0) + r0.xyz;
r1.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r1.xy, r1.z).x;
r1.x = r1.x * 0.150000006 + r0.w;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r2.xy, r2.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r3.xy, r3.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r4.xy, r4.z).x;
r1.x = r1.y * 0.150000006 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r5.xy, r5.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r6.xy, r6.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r1.y = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r7.xy, r7.z).x;
r1.x = r1.y * 0.449999988 + r1.x;
r0.x = g_Shadow_Tex.SampleCmpLevelZero(g_Shadow_TexSampler_s, r0.xy, r0.z).x;
r0.x = r0.x * 0.449999988 + r1.x;
r0.x = 0.119047619 * r0.x;
} else {
r0.x = 0.166666672 * r0.w;
}
r0.x = 1 + -r0.x;
x0[3].x = r0.x;
}
o0.x = x0[0].x;
o0.y = x0[1].x;
o0.z = x0[2].x;
o0.w = x0[3].x;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.56 on Fri Mar 17 16:42:51 2017
//
//
// Buffer Definitions:
//
// cbuffer SceneBuffer
// {
//
// float4x4 g_View; // Offset: 0 Size: 64 [unused]
// float4x4 g_Proj; // Offset: 64 Size: 64 [unused]
// float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused]
// float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64
//
// }
//
// cbuffer CamParam_HPixel_Buffer
// {
//
// float4 g_CameraParam; // Offset: 0 Size: 16
// float4 g_CameraVec; // Offset: 16 Size: 16 [unused]
//
// }
//
// cbuffer ShadowView_Buffer
// {
//
// float4 g_ShadowFarInv; // Offset: 0 Size: 16 [unused]
// float4 g_DepthOffset; // Offset: 16 Size: 16
// float4 g_BokeOffset; // Offset: 32 Size: 16
// float4x4 g_ShadowView; // Offset: 48 Size: 64 [unused]
// float4x4 g_ShadowViewProj[4]; // Offset: 112 Size: 256
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_Z_TexSampler sampler NA NA 6 1
// g_Shadow_TexSampler sampler_c NA NA 11 1
// g_Z_Tex texture float4 2d 6 1
// g_Shadow_Tex texture float4 2d 11 1
// SceneBuffer cbuffer NA NA 0 1
// ShadowView_Buffer cbuffer NA NA 10 1
// CamParam_HPixel_Buffer cbuffer NA NA 13 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// TEXCOORD 1 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[15], immediateIndexed
dcl_constantbuffer cb13[1], immediateIndexed
dcl_constantbuffer cb10[23], immediateIndexed
dcl_sampler s6, mode_default
dcl_sampler s11, mode_comparison
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t11
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 10
dcl_indexableTemp x0[4], 4
sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t6.xyzw, s6
mov x0[3].x, l(0)
mov x0[2].x, l(0)
mov x0[1].x, l(0)
mov x0[0].x, l(0)
mad r0.x, r0.x, cb13[0].y, cb13[0].x
mul r0.yz, r0.xxxx, v2.xxyx
mul r1.xy, r0.yzyy, v2.zwzz
mov r1.z, -r0.x
mov r1.w, l(1.000000)
dp4 r0.x, r1.xyzw, cb0[12].xyzw
dp4 r0.y, r1.xyzw, cb0[13].xyzw
dp4 r0.z, r1.xyzw, cb0[14].xyzw
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb10[7].xyzw
dp4 r1.y, r0.xyzw, cb10[8].xyzw
dp4 r1.z, r0.xyzw, cb10[10].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r2.x, r0.xyzw, cb10[9].xyzw
div r1.z, r2.x, r1.z
mad r2.z, -cb10[1].x, l(0.250000), r1.z
add r1.x, r1.x, l(1.000000)
and r1.zw, r1.wwww, l(0, 0, 1, 0x3f000000)
mad r2.x, r1.x, l(0.250000), r1.w
add r1.x, -r1.y, l(1.000000)
mul r2.y, r1.x, l(0.250000)
mad r1.xyw, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyxz
mad r3.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r2.xyxx, t11.xxxx, s11, r2.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.w
mad r1.x, r1.x, l(0.800000), r2.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.x, r1.y, l(0.450000), r1.x
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r3.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r4.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.y, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.y, r1.w, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.y, r1.w, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.y, r1.w, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.y, r1.w, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.y, r1.w, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.y, r1.w, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.y, r1.w, l(0.450000), r1.y
mul r1.y, r1.y, l(0.119047619)
else
mul r1.y, r1.x, l(0.166666672)
endif
add r1.x, -r1.y, l(1.000000)
mov x0[r1.z + 0].x, r1.x
endif
dp4 r1.x, r0.xyzw, cb10[11].xyzw
dp4 r1.y, r0.xyzw, cb10[12].xyzw
dp4 r1.z, r0.xyzw, cb10[14].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r2.x, r0.xyzw, cb10[13].xyzw
div r1.z, r2.x, r1.z
mad r2.z, -cb10[1].x, l(0.250000), r1.z
add r1.x, r1.x, l(1.000000)
movc r3.xy, r1.wwww, l(2,0,0,0), l(1,0.500000,0,0)
mad r2.x, r1.x, l(0.250000), r3.y
add r1.x, -r1.y, l(1.000000)
and r1.y, r1.w, l(0x3f000000)
mad r2.y, r1.x, l(0.250000), r1.y
mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r3.yzw, cb10[2].xxxx, l(0.000000, -0.500000, -0.500000, 0.000000), r2.xxyz
mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t11.xxxx, s11, r2.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r1.x, r1.x, l(0.800000), r1.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.yzyy, t11.xxxx, s11, r3.w
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.x, r1.y, l(0.450000), r1.x
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r2.xxyz
mad r3.yzw, cb10[2].xxxx, l(0.000000, -1.500000, -1.500000, 0.000000), r2.xxyz
mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r2.xyzx
mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r2.xyzx
mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r2.xyzx
mad r2.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r2.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w
mad r1.y, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.yzyy, t11.xxxx, s11, r3.w
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.y, r1.z, l(0.450000), r1.y
mul r1.y, r1.y, l(0.119047619)
else
mul r1.y, r1.x, l(0.166666672)
endif
add r1.x, -r1.y, l(1.000000)
mov x0[r3.x + 0].x, r1.x
endif
dp4 r1.x, r0.xyzw, cb10[15].xyzw
dp4 r1.y, r0.xyzw, cb10[16].xyzw
dp4 r1.z, r0.xyzw, cb10[18].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r2.x, r0.xyzw, cb10[17].xyzw
movc r2.y, r1.w, l(3), l(2)
div r1.z, r2.x, r1.z
mad r3.z, -cb10[1].x, l(0.250000), r1.z
add r1.x, r1.x, l(1.000000)
and r1.z, r1.w, l(0x3f000000)
mad r3.x, r1.x, l(0.250000), r1.z
add r1.x, -r1.y, l(1.000000)
mad r3.y, r1.x, l(0.250000), l(0.500000)
mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r2.xzw, cb10[2].xxxx, l(-0.500000, 0.000000, -0.500000, 0.000000), r3.xxyz
mad r4.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r5.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r3.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r7.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx
mad r8.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx
mad r9.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r3.xyxx, t11.xxxx, s11, r3.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r1.x, r1.x, l(0.800000), r1.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xzxx, t11.xxxx, s11, r2.w
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.800000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r9.xyxx, t11.xxxx, s11, r9.z
mad r1.x, r1.y, l(0.450000), r1.x
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r1.yzw, cb10[2].xxxx, l(0.000000, 1.500000, 1.500000, 0.000000), r3.xxyz
mad r2.xzw, cb10[2].xxxx, l(-1.500000, 0.000000, -1.500000, 0.000000), r3.xxyz
mad r4.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r3.xyzx
mad r5.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r3.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r3.xyzx
mad r7.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r3.xyzx
mad r8.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r3.xyzx
mad r3.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r3.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r1.yzyy, t11.xxxx, s11, r1.w
mad r1.y, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r2.xzxx, t11.xxxx, s11, r2.w
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.y, r1.z, l(0.150000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r8.xyxx, t11.xxxx, s11, r8.z
mad r1.y, r1.z, l(0.450000), r1.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.z, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.y, r1.z, l(0.450000), r1.y
mul r1.y, r1.y, l(0.119047619)
else
mul r1.y, r1.x, l(0.166666672)
endif
add r1.x, -r1.y, l(1.000000)
mov x0[r2.y + 0].x, r1.x
endif
dp4 r1.x, r0.xyzw, cb10[19].xyzw
dp4 r1.y, r0.xyzw, cb10[20].xyzw
dp4 r1.z, r0.xyzw, cb10[22].xyzw
div r1.xy, r1.xyxx, r1.zzzz
lt r2.xy, l(0.990000, 0.990000, 0.000000, 0.000000), |r1.xyxx|
or r1.w, r2.y, r2.x
if_z r1.w
dp4 r0.x, r0.xyzw, cb10[21].xyzw
div r0.x, r0.x, r1.z
mad r0.z, -cb10[1].x, l(0.250000), r0.x
add r0.w, r1.x, l(1.000000)
movc r1.xz, r1.wwww, l(0,0,1.000000,0), l(0.500000,0,0.500000,0)
mad r0.x, r0.w, l(0.250000), r1.x
add r0.w, -r1.y, l(1.000000)
mad r0.y, r0.w, l(0.250000), r1.z
mad r1.xyz, cb10[2].xxxx, l(0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r2.xyz, cb10[2].xxxx, l(-0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r3.xyz, cb10[2].xxxx, l(-0.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r4.xyz, cb10[2].xxxx, l(0.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r5.xyz, cb10[2].xxxx, l(-1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r6.xyz, cb10[2].xxxx, l(1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r7.xyz, cb10[2].xxxx, l(-0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r8.xyz, cb10[2].xxxx, l(0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r0.xyxx, t11.xxxx, s11, r0.z
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r2.xyxx, t11.xxxx, s11, r2.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r3.xyxx, t11.xxxx, s11, r3.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r4.xyxx, t11.xxxx, s11, r4.z
mad r0.w, r1.x, l(0.800000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r5.xyxx, t11.xxxx, s11, r5.z
mad r0.w, r1.x, l(0.450000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r6.xyxx, t11.xxxx, s11, r6.z
mad r0.w, r1.x, l(0.450000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r7.xyxx, t11.xxxx, s11, r7.z
mad r0.w, r1.x, l(0.450000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r8.xyxx, t11.xxxx, s11, r8.z
mad r0.w, r1.x, l(0.450000), r0.w
ne r1.x, r0.w, l(0.000000)
if_nz r1.x
mad r1.xyz, cb10[2].xxxx, l(1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r2.xyz, cb10[2].xxxx, l(-1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
mad r3.xyz, cb10[2].xxxx, l(-1.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r4.xyz, cb10[2].xxxx, l(1.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
mad r5.xyz, cb10[2].xxxx, l(1.500000, 0.500000, 0.000000, 0.000000), r0.xyzx
mad r6.xyz, cb10[2].xxxx, l(-1.500000, -0.500000, 0.000000, 0.000000), r0.xyzx
mad r7.xyz, cb10[2].xxxx, l(0.500000, 1.500000, 0.000000, 0.000000), r0.xyzx
mad r0.xyz, cb10[2].xxxx, l(-0.500000, -1.500000, 0.000000, 0.000000), r0.xyzx
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t11.xxxx, s11, r1.z
mad r1.x, r1.x, l(0.150000), r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t11.xxxx, s11, r2.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r3.xyxx, t11.xxxx, s11, r3.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r4.xyxx, t11.xxxx, s11, r4.z
mad r1.x, r1.y, l(0.150000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r5.xyxx, t11.xxxx, s11, r5.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r6.xyxx, t11.xxxx, s11, r6.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r1.y, r7.xyxx, t11.xxxx, s11, r7.z
mad r1.x, r1.y, l(0.450000), r1.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t11.xxxx, s11, r0.z
mad r0.x, r0.x, l(0.450000), r1.x
mul r0.x, r0.x, l(0.119047619)
else
mul r0.x, r0.w, l(0.166666672)
endif
add r0.x, -r0.x, l(1.000000)
mov x0[3].x, r0.x
endif
mov o0.x, x0[0].x
mov o0.y, x0[1].x
mov o0.z, x0[2].x
mov o0.w, x0[3].x
ret
// Approximately 313 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: Gainward Phoenix 1080 GLH
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#18
Posted 03/17/2017 11:07 PM   
Do you want the game master otaku. I will get it for you :D
Do you want the game master otaku. I will get it for you :D

I'm ishiki, forum screwed up my name.

7700k @4.7 GHZ, 16GBDDR4@3466MHZ, 2080 Ti

#19
Posted 03/17/2017 11:50 PM   
[quote="ishiki"]Do you want the game master otaku. I will get it for you :D[/quote] I would feel a bit guilty about that, with the huge backlog and some pending fixes (Van Helsing DX11, RE5, Xanadu Next, Dead Rising 1 and 3. Ugh, I hate reaching a 90% done state and getting stuck with a small issue) that I already have. And the game is at full price, almost 50€ in greenmangaming. I mean, I would play it and fix it (if it's in the realm of my skills), but I would prefer knowing all about the first Nier first (emulation, youtube, waiting until I'm old for a PC port...). I want the opinion of other fixers and their intentions if you want to donate to the fixers shared account system. I think it's Pirateguybrush who takes the money donations and uses them for games. First of all, people should try the shaders I posted. If they work, maybe other issues are easy to fix too and this would give me an indication of the difficulty to fix this game (I don't want to be gifted a game that I can't fix). If it's just a small number of issues, maybe this can be solved if sgsrules (or somebody else) dumps the shaders for me and others to see.
ishiki said:Do you want the game master otaku. I will get it for you :D


I would feel a bit guilty about that, with the huge backlog and some pending fixes (Van Helsing DX11, RE5, Xanadu Next, Dead Rising 1 and 3. Ugh, I hate reaching a 90% done state and getting stuck with a small issue) that I already have. And the game is at full price, almost 50€ in greenmangaming.

I mean, I would play it and fix it (if it's in the realm of my skills), but I would prefer knowing all about the first Nier first (emulation, youtube, waiting until I'm old for a PC port...).

I want the opinion of other fixers and their intentions if you want to donate to the fixers shared account system. I think it's Pirateguybrush who takes the money donations and uses them for games.


First of all, people should try the shaders I posted. If they work, maybe other issues are easy to fix too and this would give me an indication of the difficulty to fix this game (I don't want to be gifted a game that I can't fix). If it's just a small number of issues, maybe this can be solved if sgsrules (or somebody else) dumps the shaders for me and others to see.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: Gainward Phoenix 1080 GLH
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#20
Posted 03/18/2017 12:21 AM   
masterotaku thanks for taking the time to look at this but unfortunately the second fix didn't work, i'm not to sure about the first one since i spotted another pixel shader that might be causing similar issues, or it may be a vertex shader. It's hard to hunt for shaders during the start of the game since theres no breathing room and they don't pop up for very long, i literally only have a few seconds to cycle through about 50 shaders that are loaded. I also haven't even made it to the first save point so i'm having to redo the intro sequence everytime. I'll try dumping shaders again once i get to spot where things aren't so hectic. Or should i just try dumping all the shaders at once?
masterotaku thanks for taking the time to look at this but unfortunately the second fix didn't work, i'm not to sure about the first one since i spotted another pixel shader that might be causing similar issues, or it may be a vertex shader. It's hard to hunt for shaders during the start of the game since theres no breathing room and they don't pop up for very long, i literally only have a few seconds to cycle through about 50 shaders that are loaded. I also haven't even made it to the first save point so i'm having to redo the intro sequence everytime. I'll try dumping shaders again once i get to spot where things aren't so hectic. Or should i just try dumping all the shaders at once?

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#21
Posted 03/18/2017 12:36 AM   
Ahh well, I don't want you to feel bad. If you couldn't fix it it would be okay. And if it took you long time t would be okay too I've played lots of your fixes... And I donated to helifax and djrk for no fix just cause I've played a lot of their fixes, like I have yours. I couldn't donate to you, nor have I bought you a game!
Ahh well, I don't want you to feel bad. If you couldn't fix it it would be okay. And if it took you long time t would be okay too


I've played lots of your fixes...

And I donated to helifax and djrk for no fix just cause I've played a lot of their fixes, like I have yours. I couldn't donate to you, nor have I bought you a game!

I'm ishiki, forum screwed up my name.

7700k @4.7 GHZ, 16GBDDR4@3466MHZ, 2080 Ti

#22
Posted 03/18/2017 12:37 AM   
Some people (I should do it more often) use the [s]"cache_shaders=1"[/s] (edit: nope nope nope. Not that option. Have to sleep, it's another one) option in the "d3dx.ini" file to dump everything the game sees automatically into the "ShaderCache" folder. The game will probably take a long time to boot for the first time, be patient. And yeah, better wait until you can stop without worrying about enemies, unless you see some unique effects (if they have predictable code in shaders, they can be found in the massive shader list that you would have dumped with the option above).
Some people (I should do it more often) use the "cache_shaders=1" (edit: nope nope nope. Not that option. Have to sleep, it's another one) option in the "d3dx.ini" file to dump everything the game sees automatically into the "ShaderCache" folder. The game will probably take a long time to boot for the first time, be patient.

And yeah, better wait until you can stop without worrying about enemies, unless you see some unique effects (if they have predictable code in shaders, they can be found in the massive shader list that you would have dumped with the option above).

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: Gainward Phoenix 1080 GLH
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#23
Posted 03/18/2017 12:40 AM   
[quote="ishiki"] I've played lots of your fixes... And I donated to helifax and djrk for no fix just cause I've played a lot of their fixes, like I have yours. I couldn't donate to you, nor have I bought you a game![/quote] Your thanks and you playing games with my fixes are enough happiness for me! :) Well, if I didn't have a job I would be open to donations, I think. I just like doing these things for fun and without obligations.
ishiki said:
I've played lots of your fixes...

And I donated to helifax and djrk for no fix just cause I've played a lot of their fixes, like I have yours. I couldn't donate to you, nor have I bought you a game!


Your thanks and you playing games with my fixes are enough happiness for me! :) Well, if I didn't have a job I would be open to donations, I think. I just like doing these things for fun and without obligations.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: Gainward Phoenix 1080 GLH
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#24
Posted 03/18/2017 12:44 AM   
It took me an hour to reach the first save point. wtf? As i mentioned the shader fixes from masterotaku didn't work. I tried taking a look a the shadow shader but im illiterate when it comes to ASM. if we had access to a higher level shading language like hlsl or glsl i'm sure be able to figure this out. anyhow I'm not sure if this helps but here's the matching vertex shader [code] // ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 22:11:59 2017 cbuffer SceneBuffer : register(b0) { float4x4 g_View : packoffset(c0); float4x4 g_Proj : packoffset(c4); float4x4 g_ViewProjection : packoffset(c8); float4x4 g_ViewInverseMatrix : packoffset(c12); } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float2 v1 : TEXCOORD0, out float4 o0 : SV_POSITION0, out float4 o1 : TEXCOORD0, out float4 o2 : TEXCOORD1) { o0.xyw = v0.xyw * float3(2,2,1) + float3(1,1,0); o0.z = 1; o1.xy = v1.xy; o2.x = v1.x * 2 + -1; o2.y = v1.y * -2 + 1; o2.z = 1 / g_Proj._m00; o2.w = 1 / g_Proj._m11; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.56 on Fri Mar 17 22:11:59 2017 // // // Buffer Definitions: // // cbuffer SceneBuffer // { // // float4x4 g_View; // Offset: 0 Size: 64 [unused] // float4x4 g_Proj; // Offset: 64 Size: 64 // float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused] // float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // SceneBuffer cbuffer NA NA 0 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xy w // TEXCOORD 0 xy 1 NONE float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // TEXCOORD 0 xy 1 NONE float xy // TEXCOORD 1 xyzw 2 NONE float xyzw // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[6], immediateIndexed dcl_input v0.xyw dcl_input v1.xy dcl_output_siv o0.xyzw, position dcl_output o1.xy dcl_output o2.xyzw mad o0.xyw, v0.xyxw, l(2.000000, 2.000000, 0.000000, 1.000000), l(1.000000, 1.000000, 0.000000, 0.000000) mov o0.z, l(1.000000) mov o1.xy, v1.xyxx mad o2.x, v1.x, l(2.000000), l(-1.000000) mad o2.y, v1.y, l(-2.000000), l(1.000000) div o2.z, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[4].x div o2.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[5].y ret // Approximately 8 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] This game kicks ass btw!
It took me an hour to reach the first save point. wtf? As i mentioned the shader fixes from masterotaku didn't work. I tried taking a look a the shadow shader but im illiterate when it comes to ASM. if we had access to a higher level shading language like hlsl or glsl i'm sure be able to figure this out. anyhow I'm not sure if this helps but here's the matching vertex shader
// ---- Created with 3Dmigoto v1.2.56 on Fri Mar 17 22:11:59 2017

cbuffer SceneBuffer : register(b0)
{
float4x4 g_View : packoffset(c0);
float4x4 g_Proj : packoffset(c4);
float4x4 g_ViewProjection : packoffset(c8);
float4x4 g_ViewInverseMatrix : packoffset(c12);
}



// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
float2 v1 : TEXCOORD0,
out float4 o0 : SV_POSITION0,
out float4 o1 : TEXCOORD0,
out float4 o2 : TEXCOORD1)
{
o0.xyw = v0.xyw * float3(2,2,1) + float3(1,1,0);
o0.z = 1;
o1.xy = v1.xy;
o2.x = v1.x * 2 + -1;
o2.y = v1.y * -2 + 1;
o2.z = 1 / g_Proj._m00;
o2.w = 1 / g_Proj._m11;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.56 on Fri Mar 17 22:11:59 2017
//
//
// Buffer Definitions:
//
// cbuffer SceneBuffer
// {
//
// float4x4 g_View; // Offset: 0 Size: 64 [unused]
// float4x4 g_Proj; // Offset: 64 Size: 64
// float4x4 g_ViewProjection; // Offset: 128 Size: 64 [unused]
// float4x4 g_ViewInverseMatrix; // Offset: 192 Size: 64 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// SceneBuffer cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xy w
// TEXCOORD 0 xy 1 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xy 1 NONE float xy
// TEXCOORD 1 xyzw 2 NONE float xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[6], immediateIndexed
dcl_input v0.xyw
dcl_input v1.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyzw
mad o0.xyw, v0.xyxw, l(2.000000, 2.000000, 0.000000, 1.000000), l(1.000000, 1.000000, 0.000000, 0.000000)
mov o0.z, l(1.000000)
mov o1.xy, v1.xyxx
mad o2.x, v1.x, l(2.000000), l(-1.000000)
mad o2.y, v1.y, l(-2.000000), l(1.000000)
div o2.z, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[4].x
div o2.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[5].y
ret
// Approximately 8 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/



This game kicks ass btw!

Like my work? You can send a donation via Paypal to sgs.rules@gmail.com

Windows 7 Pro 64x - Nvidia Driver 398.82 - EVGA 980Ti SC - Optoma HD26 with Edid override - 3D Vision 2 - i7-8700K CPU at 5.0Ghz - ASROCK Z370 Ext 4 Motherboard - 32 GB RAM Corsair Vengeance - 512 GB Samsung SSD 850 Pro - Creative Sound Blaster Z

#25
Posted 03/18/2017 03:42 AM   
If someone wants to buy it for the shared shaderhacker accounts, you can send $37 to pirateguybrush@gmail.com and I'll sort it out.
If someone wants to buy it for the shared shaderhacker accounts, you can send $37 to pirateguybrush@gmail.com and I'll sort it out.

#26
Posted 03/18/2017 05:00 AM   
Done. And of what I've played in 3d, it looks wonderful besides the shadows... Once that's fixed, I imagine I won't ever NOT play it in 3d.
Done. And of what I've played in 3d, it looks wonderful besides the shadows... Once that's fixed, I imagine I won't ever NOT play it in 3d.

#27
Posted 03/18/2017 07:06 AM   
Thanks for that, I'll get it set up on the shared accounts within a few days.
Thanks for that, I'll get it set up on the shared accounts within a few days.

#28
Posted 03/18/2017 07:40 AM   
[quote="sgsrules"]I tried taking a look a the shadow shader but im illiterate when it comes to ASM. if we had access to a higher level shading language like hlsl or glsl i'm sure be able to figure this out.[/quote] But they are HLSL shaders. At the top there is the HLSL part, and at the bottom there is the ASM equivalent. In some rare cases, things have to be fixed in ASM, but most of the time HLSL is fine. [quote="End0fw0r1d"]Done. And of what I've played in 3d, it looks wonderful besides the shadows... Once that's fixed, I imagine I won't ever NOT play it in 3d.[/quote] Thank you for the donation. This way more than one person can test the game.
sgsrules said:I tried taking a look a the shadow shader but im illiterate when it comes to ASM. if we had access to a higher level shading language like hlsl or glsl i'm sure be able to figure this out.


But they are HLSL shaders. At the top there is the HLSL part, and at the bottom there is the ASM equivalent. In some rare cases, things have to be fixed in ASM, but most of the time HLSL is fine.

End0fw0r1d said:Done. And of what I've played in 3d, it looks wonderful besides the shadows... Once that's fixed, I imagine I won't ever NOT play it in 3d.


Thank you for the donation. This way more than one person can test the game.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: Gainward Phoenix 1080 GLH
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#29
Posted 03/18/2017 08:04 AM   
I'm having trouble disabling shaders. I've done it once before. I think DXHRDC before fix was done. But I keep getting the boop sound that I think means the shader isn't loading? Does that make sense? in d3dx I'm writing [Shadows1] Hash=345160567d287bb4 Handling=skip [Shadows2] Hash=36b610492da984ca Handling=skip [Shadows3] Hash=a3a79eb435339549 Handling=skip and then in shaders I go to void main {} and then type discard afterwards. The main issues with the game I've seen so far is 2-3 shadow shaders. HUD should probably be pushed to character depth like Lightning Returns. To make reticule as good as they can be since HUD is all one shader I think. There's one weird decal clipping issue that sometimes occur as well.
I'm having trouble disabling shaders. I've done it once before. I think DXHRDC before fix was done.

But I keep getting the boop sound that I think means the shader isn't loading?

Does that make sense?



in d3dx I'm writing

[Shadows1]
Hash=345160567d287bb4
Handling=skip

[Shadows2]
Hash=36b610492da984ca
Handling=skip

[Shadows3]
Hash=a3a79eb435339549
Handling=skip

and then in shaders I go to void main {} and then type discard afterwards.

The main issues with the game I've seen so far is 2-3 shadow shaders. HUD should probably be pushed to character depth like Lightning Returns. To make reticule as good as they can be since HUD is all one shader I think.

There's one weird decal clipping issue that sometimes occur as well.

I'm ishiki, forum screwed up my name.

7700k @4.7 GHZ, 16GBDDR4@3466MHZ, 2080 Ti

#30
Posted 03/18/2017 08:37 AM   
  2 / 10    
Scroll To Top