From e140f2e97bd21cf5ec36e0e28e9cbcc5940f6fae Mon Sep 17 00:00:00 2001 From: bo3b Date: Fri, 14 Nov 2014 18:17:22 -0800 Subject: [PATCH] Add one new planar shader to Alien fix. --- .../3f57afdd2320845e-ps_replace.txt | 670 ++++++++++++++++++ 1 file changed, 670 insertions(+) create mode 100644 Alien/ShaderFixes/3f57afdd2320845e-ps_replace.txt diff --git a/Alien/ShaderFixes/3f57afdd2320845e-ps_replace.txt b/Alien/ShaderFixes/3f57afdd2320845e-ps_replace.txt new file mode 100644 index 000000000..de0756efa --- /dev/null +++ b/Alien/ShaderFixes/3f57afdd2320845e-ps_replace.txt @@ -0,0 +1,670 @@ +// Planar reflection in level 5 + +cbuffer cbDefaultPSC : register(b2) +{ + float4x4 AlphaLight_WorldtoClipMatrix : packoffset(c0); + float4x4 AlphaLight_CliptoWorldMatrix : packoffset(c4); + float4x4 ProjectorMatrix : packoffset(c8); + float4x4 MotionBlurCurrInvViewProjection : packoffset(c12); + float4x4 MotionBlurPrevViewProjection : packoffset(c16); + float4x4 MotionBlurPrevSecViewProjection : packoffset(c20); + float4x4 Spotlight0_Transform : packoffset(c24); + float4 TextureAnimation : packoffset(c28); + float4 AmbientDiffuse : packoffset(c29); + float4 EnvironmentDebugParams : packoffset(c30); + float4 ShadowFilterESMWeights : packoffset(c31); + float4 LegacyDofParams : packoffset(c32); + float4 OnePixelStepForS0 : packoffset(c33); + float4 RenderTargetSize : packoffset(c34); + float4 ModelTrackerID : packoffset(c35); + float4 Sharpness_Bloom_Controls : packoffset(c36); + float4 Blur_Direction : packoffset(c37); + float4 LightMeterDebugParams : packoffset(c38); + float4 SourceResolution : packoffset(c39); + float4 HDR_EncodeScale : packoffset(c40); + float4 OutputGamma : packoffset(c41); + float4 AlphaLight_ScaleParams : packoffset(c42); + float4 WrinkleMapWeights[6] : packoffset(c43); + float4 RadiosityCubeMapIdx : packoffset(c49); + float4 HairShadingParams[8] : packoffset(c50); + float4 SkinShadingParams : packoffset(c58); + float4 HDR_EncodeScale3 : packoffset(c59); + float4 ScreenResolution[4] : packoffset(c60); + float4 VelocityParams : packoffset(c64); + float4 DeferredConstColor : packoffset(c65); + float4 Spotlight0_Shadow_Params : packoffset(c66); + float4 Spotlight0_ShadowMapDimensions : packoffset(c67); + float4 ShadowFilterType : packoffset(c68); + float4 Spotlight0_ReverseZPerspective : packoffset(c69); + float4 SpacesuitVisorParams : packoffset(c70); + float4 Directional_Light_Colour : packoffset(c71); + float4 Directional_Light_Direction : packoffset(c72); + float4 EnvironmentMap_Params : packoffset(c73); + float4 Spotlight0_Shadow_Bias_GoboScale : packoffset(c74); + float4 ScreenSpaceLightShaftParams1 : packoffset(c75); + float4 ScreenSpaceLightShaftParams2 : packoffset(c76); + float4 ScreenSpaceLightPosition : packoffset(c77); + float4 LensAndScreenCenter : packoffset(c78); + float4 ScaleAndScaleIn : packoffset(c79); + float4 HmdWarpParam : packoffset(c80); + float4 ChromAbParam : packoffset(c81); + float4 SMAA_SubsampleIndices : packoffset(c82); +} + +cbuffer cbUbershaderXSC : register(b5) +{ + float4 rp_parameter_vs[32] : packoffset(c0); + float4 rp_parameter_ps[32] : packoffset(c32); +} +SamplerState DIFFUSE_MAP_SAMPLER_SMP_s : register(s0); +SamplerState SPECULAR_MAP_SAMPLER_SMP_s : register(s1); +SamplerState DIRT_MAP_SAMPLER_SMP_s : register(s2); +SamplerState reflectionSamplerReg_SMP_s : register(s7); +SamplerState g_smp_fresnel_lut_SMP_s : register(s11); +Texture2D DIFFUSE_MAP_SAMPLER_TEX : register(t0); +Texture2D SPECULAR_MAP_SAMPLER_TEX : register(t1); +Texture2D DIRT_MAP_SAMPLER_TEX : register(t2); +Texture2D reflectionSamplerReg_TEX : register(t7); +Texture3D g_smp_fresnel_lut_TEX : register(t11); + +Texture2D StereoParams : register(t125); + +void main( + float4 v0 : TEXCOORD0, + float4 v1 : TEXCOORD1, + float4 v2 : TEXCOORD2, + float4 v3 : TEXCOORD3, + float4 v4 : TEXCOORD4, + float4 v5 : COLOR0, + float4 v6 : SV_Position0, + out float4 o0 : SV_Target0, + out float4 o1 : SV_Target1, + out float4 o2 : SV_Target2, + out float4 o3 : SV_Target3) +{ + float4 r0,r1,r2,r3; + uint4 bitmask; + r0.xy = float2(1.000000e-003,1.000000e-003) * v6.xy; + r0.zw = v6.xy * float2(1.000000e-003,1.000000e-003) + -v1.xx; + r0.x = dot(r0.zw, r0.xy); + r0.x = exp2(r0.x); + r0.x = 1.000000000e+004 * r0.x; + r0.x = frac(r0.x); + r0.x = 1.400000000e+003 * r0.x; + r0.x = frac(r0.x); + r1.xyzw = rp_parameter_ps[2].wwxx * v1.xyxy; + r0.yzw = DIRT_MAP_SAMPLER_TEX.Sample(DIRT_MAP_SAMPLER_SMP_s, r1.xy).xyz; + r1.xy = SPECULAR_MAP_SAMPLER_TEX.Sample(SPECULAR_MAP_SAMPLER_SMP_s, r1.zw).xy; + r0.yzw = r0.yzw * r0.yzw; + r1.z = v5.x * v5.x; + r1.w = -v5.x * v5.x + 1.000000000e+000; + r0.yzw = r0.yzw * r1.www + r1.zzz; + r1.z = log2(r0.z); + r1.z = rp_parameter_ps[2].z * r1.z; + r1.z = exp2(r1.z); + r1.x = rp_parameter_ps[0].w * r1.x; + r1.y = rp_parameter_ps[2].y * r1.y; + r2.y = min(r1.y, 9.959999919e-001); + r2.z = r1.x * r1.z; + r1.x = dot(v3.xyz, v3.xyz); + r1.x = rsqrt(r1.x); + r1.xyz = v3.xyz * r1.xxx; + r1.w = dot(v0.xyz, v0.xyz); + r1.w = rsqrt(r1.w); + r3.xyz = v0.xyz * r1.www; + r1.x = dot(r3.xyz, r1.xyz); + o1.xyz = r3.xyz * float3(5.000000e-001,5.000000e-001,5.000000e-001) + float3(5.000000e-001,5.000000e-001,5.000000e-001); + r2.x = saturate(r1.x); + r1.x = -abs(-r1.x) * abs(r1.x) + 1.000000000e+000; + r1.x = max(r1.x, 0.000000000e+000); + r1.x = sqrt(r1.x); + r1.x = 6.666666865e-001 * r1.x; + r1.x = -r1.x * r1.x + 1.000000000e+000; + r1.x = sqrt(r1.x); + r1.x = 1.000000e+000 / r1.x; + r1.x = -1.000000000e+000 + r1.x; + r1.x = r1.x * 5.000000000e-001 + 1.000000000e+000; + r1.yz = g_smp_fresnel_lut_TEX.SampleLevel(g_smp_fresnel_lut_SMP_s, r2.xyz, 0.000000000e+000).xy; + r1.y = r1.y * r1.y; + r1.z = r1.z * r1.z + -r1.y; + r1.y = saturate(rp_parameter_ps[0].x * r1.z + r1.y); + r0.x = r0.x * 2.499999944e-003 + r1.y; + r0.x = min(r0.x, 1.000000000e+000); + r1.y = v4.y * r0.x; + r0.x = -r0.x * v4.y + 1.000000000e+000; + r1.z = max(r2.y, 0.000000000e+000); + o3.x = r2.y; + r1.z = 1.000000000e+000 + -r1.z; + r1.z = r1.z * 7.500000000e-001 + 7.812500000e-003; + r1.z = log2(r1.z); + r1.z = 6.666666508e+000 + r1.z; + r2.xy = v6.xy / ScreenResolution[0].xy; + +// Bo3b: planar reflection in medical area, level 5 +float4 stereo = StereoParams.Load(0); +float C = stereo.y; +// r3.x += stereo.x * (-v3.w * 0.5 - C)/2; +// r3.x += stereo.x * (-v3.w * C /(1.0+0.5 * C) - C)/2; +// r3.x += stereo.x * (-v3.w /(1.0+0.5 * v3.w) - stereo.y)/2; +r2.x += stereo.x * (-v3.w /(1+1.8 * v3.w) - C)*(3.05/(0.5+2.2*C))/2; + + r2.z = 1.000000000e+000 + -r2.x; + r2.xyz = reflectionSamplerReg_TEX.SampleLevel(reflectionSamplerReg_SMP_s, r2.zy, r1.z).xyz; + r2.xyz = HDR_EncodeScale.www * r2.xyz; + r2.xyz = r2.xyz * r1.yyy; + r1.y = sqrt(r1.y); + o3.y = -r1.y * 5.000000000e-001 + 5.000000000e-001; + r1.yzw = rp_parameter_ps[0].yyy * r2.xyz; + r1.yzw = HDR_EncodeScale3.xxx * r1.yzw; + r2.x = max(r1.z, r1.y); + r2.y = max(r1.w, 1.000000047e-003); + r2.x = max(r2.y, r2.x); + r2.x = min(r2.x, 1.000000000e+000); + r2.x = 2.550000000e+002 * r2.x; + r2.x = ceil(r2.x); + r2.x = 3.921568859e-003 * r2.x; + o0.xyz = r1.yzw / r2.xxx; + o3.z = r2.x; + r1.y = 3.921568859e-003 * RadiosityCubeMapIdx.x; + r1.zw = float2(2.559961e+002,2.559961e+002) * v1.zw; + r1.zw = trunc(r1.zw); + r2.xy = v1.zw * float2(2.559961e+002,2.559961e+002) + -r1.zw; + r3.zw = float2(3.921569e-003,3.921569e-003) * r1.zw; + r3.xy = float2(1.003922e+000,1.003922e+000) * r2.xy; + r1.z = 0.000000000e+000 < RadiosityCubeMapIdx.y; + o0.w = r1.z ? r1.y : r3.x; + r1.yzw = r1.zzz ? float3(0.000000e+000,0.000000e+000,0.000000e+000) : r3.yzw; + o1.w = r1.y; + r2.xy = rp_parameter_ps[0].zz * v1.xy; + r2.xyz = DIFFUSE_MAP_SAMPLER_TEX.Sample(DIFFUSE_MAP_SAMPLER_SMP_s, r2.xy).xyz; + r2.xyz = r2.xyz * r2.xyz; + r2.xyz = rp_parameter_ps[1].xyz * r2.xyz; + r2.xyz = v2.xyz * r2.xyz; + r2.xyz = v4.xyz * r2.xyz; + r2.xyz = log2(r2.xyz); + r2.xyz = r2.xyz * r1.xxx; + r2.xyz = exp2(r2.xyz); + r2.xyz = r2.xyz * r0.xxx; + r0.xyz = r2.xyz * r0.yzw + float3(1.000000e-019,1.000000e-019,1.000000e-019); + r0.xyz = saturate(float3(5.000000e-001,5.000000e-001,5.000000e-001) * r0.xyz); + o2.xyz = sqrt(r0.xyz); + o2.w = r1.z; + o3.w = r1.w; + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer cbDefaultPSC +// { +// +// float4x4 AlphaLight_WorldtoClipMatrix;// Offset: 0 Size: 64 [unused] +// float4x4 AlphaLight_CliptoWorldMatrix;// Offset: 64 Size: 64 [unused] +// float4x4 ProjectorMatrix; // Offset: 128 Size: 64 [unused] +// float4x4 MotionBlurCurrInvViewProjection;// Offset: 192 Size: 64 [unused] +// float4x4 MotionBlurPrevViewProjection;// Offset: 256 Size: 64 [unused] +// float4x4 MotionBlurPrevSecViewProjection;// Offset: 320 Size: 64 [unused] +// float4x4 Spotlight0_Transform; // Offset: 384 Size: 64 [unused] +// float4 TextureAnimation; // Offset: 448 Size: 16 [unused] +// float4 AmbientDiffuse; // Offset: 464 Size: 16 [unused] +// float4 EnvironmentDebugParams; // Offset: 480 Size: 16 [unused] +// float4 ShadowFilterESMWeights; // Offset: 496 Size: 16 [unused] +// float4 LegacyDofParams; // Offset: 512 Size: 16 [unused] +// float4 OnePixelStepForS0; // Offset: 528 Size: 16 [unused] +// float4 RenderTargetSize; // Offset: 544 Size: 16 [unused] +// float4 ModelTrackerID; // Offset: 560 Size: 16 [unused] +// float4 Sharpness_Bloom_Controls; // Offset: 576 Size: 16 [unused] +// float4 Blur_Direction; // Offset: 592 Size: 16 [unused] +// float4 LightMeterDebugParams; // Offset: 608 Size: 16 [unused] +// float4 SourceResolution; // Offset: 624 Size: 16 [unused] +// float4 HDR_EncodeScale; // Offset: 640 Size: 16 +// float4 OutputGamma; // Offset: 656 Size: 16 [unused] +// float4 AlphaLight_ScaleParams; // Offset: 672 Size: 16 [unused] +// float4 WrinkleMapWeights[6]; // Offset: 688 Size: 96 [unused] +// float4 RadiosityCubeMapIdx; // Offset: 784 Size: 16 +// float4 HairShadingParams[8]; // Offset: 800 Size: 128 [unused] +// float4 SkinShadingParams; // Offset: 928 Size: 16 [unused] +// float4 HDR_EncodeScale3; // Offset: 944 Size: 16 +// float4 ScreenResolution[4]; // Offset: 960 Size: 64 +// float4 VelocityParams; // Offset: 1024 Size: 16 [unused] +// float4 DeferredConstColor; // Offset: 1040 Size: 16 [unused] +// float4 Spotlight0_Shadow_Params; // Offset: 1056 Size: 16 [unused] +// float4 Spotlight0_ShadowMapDimensions;// Offset: 1072 Size: 16 [unused] +// float4 ShadowFilterType; // Offset: 1088 Size: 16 [unused] +// float4 Spotlight0_ReverseZPerspective;// Offset: 1104 Size: 16 [unused] +// float4 SpacesuitVisorParams; // Offset: 1120 Size: 16 [unused] +// float4 Directional_Light_Colour; // Offset: 1136 Size: 16 [unused] +// float4 Directional_Light_Direction;// Offset: 1152 Size: 16 [unused] +// float4 EnvironmentMap_Params; // Offset: 1168 Size: 16 [unused] +// float4 Spotlight0_Shadow_Bias_GoboScale;// Offset: 1184 Size: 16 [unused] +// float4 ScreenSpaceLightShaftParams1;// Offset: 1200 Size: 16 [unused] +// float4 ScreenSpaceLightShaftParams2;// Offset: 1216 Size: 16 [unused] +// float4 ScreenSpaceLightPosition; // Offset: 1232 Size: 16 [unused] +// float4 LensAndScreenCenter; // Offset: 1248 Size: 16 [unused] +// float4 ScaleAndScaleIn; // Offset: 1264 Size: 16 [unused] +// float4 HmdWarpParam; // Offset: 1280 Size: 16 [unused] +// float4 ChromAbParam; // Offset: 1296 Size: 16 [unused] +// float4 SMAA_SubsampleIndices; // Offset: 1312 Size: 16 [unused] +// +// } +// +// cbuffer cbUbershaderXSC +// { +// +// float4 rp_parameter_vs[32]; // Offset: 0 Size: 512 [unused] +// float4 rp_parameter_ps[32]; // Offset: 512 Size: 512 +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// DIFFUSE_MAP_SAMPLER_SMP sampler NA NA 0 1 +// SPECULAR_MAP_SAMPLER_SMP sampler NA NA 1 1 +// DIRT_MAP_SAMPLER_SMP sampler NA NA 2 1 +// reflectionSamplerReg_SMP sampler NA NA 7 1 +// g_smp_fresnel_lut_SMP sampler NA NA 11 1 +// DIFFUSE_MAP_SAMPLER_TEX texture float4 2d 0 1 +// SPECULAR_MAP_SAMPLER_TEX texture float4 2d 1 1 +// DIRT_MAP_SAMPLER_TEX texture float4 2d 2 1 +// reflectionSamplerReg_TEX texture float4 2d 7 1 +// g_smp_fresnel_lut_TEX texture float4 3d 11 1 +// cbDefaultPSC cbuffer NA NA 2 1 +// cbUbershaderXSC cbuffer NA NA 5 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// TEXCOORD 0 xyzw 0 NONE float xyz +// TEXCOORD 1 xyzw 1 NONE float xyzw +// TEXCOORD 2 xyzw 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyz +// TEXCOORD 4 xyzw 4 NONE float xyz +// COLOR 0 xyzw 5 NONE float x +// SV_Position 0 xyzw 6 POS float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// SV_Target 2 xyzw 2 TARGET float xyzw +// SV_Target 3 xyzw 3 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb2[61], immediateIndexed +dcl_constantbuffer cb5[35], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s7, mode_default +dcl_sampler s11, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_input_ps linear v0.xyz +dcl_input_ps linear v1.xyzw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyz +dcl_input_ps linear v5.x +dcl_input_ps_siv linear noperspective v6.xy, position +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_output o2.xyzw +dcl_output o3.xyzw +dcl_temps 4 +mul r0.xy, v6.xyxx, l(0.001000, 0.001000, 0.000000, 0.000000) +mad r0.zw, v6.xxxy, l(0.000000, 0.000000, 0.001000, 0.001000), -v1.xxxx +dp2 r0.x, r0.zwzz, r0.xyxx +exp r0.x, r0.x +mul r0.x, r0.x, l(10000.000000) +frc r0.x, r0.x +mul r0.x, r0.x, l(1400.000000) +frc r0.x, r0.x +mul r1.xyzw, v1.xyxy, cb5[34].wwxx +sample_indexable(texture2d)(float,float,float,float) r0.yzw, r1.xyxx, t2.wxyz, s2 +sample_indexable(texture2d)(float,float,float,float) r1.xy, r1.zwzz, t1.xyzw, s1 +mul r0.yzw, r0.yyzw, r0.yyzw +mul r1.z, v5.x, v5.x +mad r1.w, -v5.x, v5.x, l(1.000000) +mad r0.yzw, r0.yyzw, r1.wwww, r1.zzzz +log r1.z, r0.z +mul r1.z, r1.z, cb5[34].z +exp r1.z, r1.z +mul r1.x, r1.x, cb5[32].w +mul r1.y, r1.y, cb5[34].y +min r2.y, r1.y, l(0.996000) +mul r2.z, r1.z, r1.x +dp3 r1.x, v3.xyzx, v3.xyzx +rsq r1.x, r1.x +mul r1.xyz, r1.xxxx, v3.xyzx +dp3 r1.w, v0.xyzx, v0.xyzx +rsq r1.w, r1.w +mul r3.xyz, r1.wwww, v0.xyzx +dp3 r1.x, r3.xyzx, r1.xyzx +mad o1.xyz, r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) +mov_sat r2.x, r1.x +mad r1.x, -|r1.x|, |r1.x|, l(1.000000) +max r1.x, r1.x, l(0.000000) +sqrt r1.x, r1.x +mul r1.x, r1.x, l(0.666667) +mad r1.x, -r1.x, r1.x, l(1.000000) +sqrt r1.x, r1.x +div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x +add r1.x, r1.x, l(-1.000000) +mad r1.x, r1.x, l(0.500000), l(1.000000) +sample_l_indexable(texture3d)(float,float,float,float) r1.yz, r2.xyzx, t11.zxyw, s11, l(0.000000) +mul r1.y, r1.y, r1.y +mad r1.z, r1.z, r1.z, -r1.y +mad_sat r1.y, cb5[32].x, r1.z, r1.y +mad r0.x, r0.x, l(0.002500), r1.y +min r0.x, r0.x, l(1.000000) +mul r1.y, r0.x, v4.y +mad r0.x, -r0.x, v4.y, l(1.000000) +max r1.z, r2.y, l(0.000000) +mov o3.x, r2.y +add r1.z, -r1.z, l(1.000000) +mad r1.z, r1.z, l(0.750000), l(0.007813) +log r1.z, r1.z +add r1.z, r1.z, l(6.666667) +div r2.xy, v6.xyxx, cb2[60].xyxx +add r2.z, -r2.x, l(1.000000) +sample_l_indexable(texture2d)(float,float,float,float) r2.xyz, r2.zyzz, t7.xyzw, s7, r1.z +mul r2.xyz, r2.xyzx, cb2[40].wwww +mul r2.xyz, r1.yyyy, r2.xyzx +sqrt r1.y, r1.y +mad o3.y, -r1.y, l(0.500000), l(0.500000) +mul r1.yzw, r2.xxyz, cb5[32].yyyy +mul r1.yzw, r1.yyzw, cb2[59].xxxx +max r2.x, r1.z, r1.y +max r2.y, r1.w, l(0.001000) +max r2.x, r2.y, r2.x +min r2.x, r2.x, l(1.000000) +mul r2.x, r2.x, l(255.000000) +round_pi r2.x, r2.x +mul r2.x, r2.x, l(0.003922) +div o0.xyz, r1.yzwy, r2.xxxx +mov o3.z, r2.x +mul r1.y, cb2[49].x, l(0.003922) +mul r1.zw, v1.zzzw, l(0.000000, 0.000000, 255.996094, 255.996094) +round_z r1.zw, r1.zzzw +mad r2.xy, v1.zwzz, l(255.996094, 255.996094, 0.000000, 0.000000), -r1.zwzz +mul r3.zw, r1.zzzw, l(0.000000, 0.000000, 0.003922, 0.003922) +mul r3.xy, r2.xyxx, l(1.003922, 1.003922, 0.000000, 0.000000) +lt r1.z, l(0.000000), cb2[49].y +movc o0.w, r1.z, r1.y, r3.x +movc r1.yzw, r1.zzzz, l(0,0,0,0), r3.yyzw +mov o1.w, r1.y +mul r2.xy, v1.xyxx, cb5[32].zzzz +sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t0.xyzw, s0 +mul r2.xyz, r2.xyzx, r2.xyzx +mul r2.xyz, r2.xyzx, cb5[33].xyzx +mul r2.xyz, r2.xyzx, v2.xyzx +mul r2.xyz, r2.xyzx, v4.xyzx +log r2.xyz, r2.xyzx +mul r2.xyz, r1.xxxx, r2.xyzx +exp r2.xyz, r2.xyzx +mul r2.xyz, r0.xxxx, r2.xyzx +mad r0.xyz, r2.xyzx, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000) +mul_sat r0.xyz, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) +sqrt o2.xyz, r0.xyzx +mov o2.w, r1.z +mov o3.w, r1.w +ret +// Approximately 98 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Recompiled ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20789 +// +// +// Buffer Definitions: +// +// cbuffer cbDefaultPSC +// { +// +// float4x4 AlphaLight_WorldtoClipMatrix;// Offset: 0 Size: 64 [unused] +// float4x4 AlphaLight_CliptoWorldMatrix;// Offset: 64 Size: 64 [unused] +// float4x4 ProjectorMatrix; // Offset: 128 Size: 64 [unused] +// float4x4 MotionBlurCurrInvViewProjection;// Offset: 192 Size: 64 [unused] +// float4x4 MotionBlurPrevViewProjection;// Offset: 256 Size: 64 [unused] +// float4x4 MotionBlurPrevSecViewProjection;// Offset: 320 Size: 64 [unused] +// float4x4 Spotlight0_Transform; // Offset: 384 Size: 64 [unused] +// float4 TextureAnimation; // Offset: 448 Size: 16 [unused] +// float4 AmbientDiffuse; // Offset: 464 Size: 16 [unused] +// float4 EnvironmentDebugParams; // Offset: 480 Size: 16 [unused] +// float4 ShadowFilterESMWeights; // Offset: 496 Size: 16 [unused] +// float4 LegacyDofParams; // Offset: 512 Size: 16 [unused] +// float4 OnePixelStepForS0; // Offset: 528 Size: 16 [unused] +// float4 RenderTargetSize; // Offset: 544 Size: 16 [unused] +// float4 ModelTrackerID; // Offset: 560 Size: 16 [unused] +// float4 Sharpness_Bloom_Controls; // Offset: 576 Size: 16 [unused] +// float4 Blur_Direction; // Offset: 592 Size: 16 [unused] +// float4 LightMeterDebugParams; // Offset: 608 Size: 16 [unused] +// float4 SourceResolution; // Offset: 624 Size: 16 [unused] +// float4 HDR_EncodeScale; // Offset: 640 Size: 16 +// float4 OutputGamma; // Offset: 656 Size: 16 [unused] +// float4 AlphaLight_ScaleParams; // Offset: 672 Size: 16 [unused] +// float4 WrinkleMapWeights[6]; // Offset: 688 Size: 96 [unused] +// float4 RadiosityCubeMapIdx; // Offset: 784 Size: 16 +// float4 HairShadingParams[8]; // Offset: 800 Size: 128 [unused] +// float4 SkinShadingParams; // Offset: 928 Size: 16 [unused] +// float4 HDR_EncodeScale3; // Offset: 944 Size: 16 +// float4 ScreenResolution[4]; // Offset: 960 Size: 64 +// float4 VelocityParams; // Offset: 1024 Size: 16 [unused] +// float4 DeferredConstColor; // Offset: 1040 Size: 16 [unused] +// float4 Spotlight0_Shadow_Params; // Offset: 1056 Size: 16 [unused] +// float4 Spotlight0_ShadowMapDimensions;// Offset: 1072 Size: 16 [unused] +// float4 ShadowFilterType; // Offset: 1088 Size: 16 [unused] +// float4 Spotlight0_ReverseZPerspective;// Offset: 1104 Size: 16 [unused] +// float4 SpacesuitVisorParams; // Offset: 1120 Size: 16 [unused] +// float4 Directional_Light_Colour; // Offset: 1136 Size: 16 [unused] +// float4 Directional_Light_Direction;// Offset: 1152 Size: 16 [unused] +// float4 EnvironmentMap_Params; // Offset: 1168 Size: 16 [unused] +// float4 Spotlight0_Shadow_Bias_GoboScale;// Offset: 1184 Size: 16 [unused] +// float4 ScreenSpaceLightShaftParams1;// Offset: 1200 Size: 16 [unused] +// float4 ScreenSpaceLightShaftParams2;// Offset: 1216 Size: 16 [unused] +// float4 ScreenSpaceLightPosition; // Offset: 1232 Size: 16 [unused] +// float4 LensAndScreenCenter; // Offset: 1248 Size: 16 [unused] +// float4 ScaleAndScaleIn; // Offset: 1264 Size: 16 [unused] +// float4 HmdWarpParam; // Offset: 1280 Size: 16 [unused] +// float4 ChromAbParam; // Offset: 1296 Size: 16 [unused] +// float4 SMAA_SubsampleIndices; // Offset: 1312 Size: 16 [unused] +// +// } +// +// cbuffer cbUbershaderXSC +// { +// +// float4 rp_parameter_vs[32]; // Offset: 0 Size: 512 [unused] +// float4 rp_parameter_ps[32]; // Offset: 512 Size: 512 +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// DIFFUSE_MAP_SAMPLER_SMP_s sampler NA NA 0 1 +// SPECULAR_MAP_SAMPLER_SMP_s sampler NA NA 1 1 +// DIRT_MAP_SAMPLER_SMP_s sampler NA NA 2 1 +// reflectionSamplerReg_SMP_s sampler NA NA 7 1 +// g_smp_fresnel_lut_SMP_s sampler NA NA 11 1 +// DIFFUSE_MAP_SAMPLER_TEX texture float4 2d 0 1 +// SPECULAR_MAP_SAMPLER_TEX texture float4 2d 1 1 +// DIRT_MAP_SAMPLER_TEX texture float4 2d 2 1 +// reflectionSamplerReg_TEX texture float4 2d 7 1 +// g_smp_fresnel_lut_TEX texture float4 3d 11 1 +// cbDefaultPSC cbuffer NA NA 2 1 +// cbUbershaderXSC cbuffer NA NA 5 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// TEXCOORD 0 xyzw 0 NONE float xyz +// TEXCOORD 1 xyzw 1 NONE float xyzw +// TEXCOORD 2 xyzw 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyz +// TEXCOORD 4 xyzw 4 NONE float xyz +// COLOR 0 xyzw 5 NONE float x +// SV_Position 0 xyzw 6 POS float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// SV_Target 2 xyzw 2 TARGET float xyzw +// SV_Target 3 xyzw 3 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb2[61], immediateIndexed +dcl_constantbuffer cb5[35], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s7, mode_default +dcl_sampler s11, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_input_ps linear v0.xyz +dcl_input_ps linear v1.xyzw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyz +dcl_input_ps linear v5.x +dcl_input_ps_siv linear noperspective v6.xy, position +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_output o2.xyzw +dcl_output o3.xyzw +dcl_temps 4 +mul r0.xy, v6.xyxx, l(0.001000, 0.001000, 0.000000, 0.000000) +mad r0.zw, v6.xxxy, l(0.000000, 0.000000, 0.001000, 0.001000), -v1.xxxx +dp2 r0.x, r0.zwzz, r0.xyxx +exp r0.x, r0.x +mul r0.x, r0.x, l(10000.000000) +frc r0.x, r0.x +mul r0.x, r0.x, l(1400.000000) +frc r0.x, r0.x +mul r1.xyzw, v1.xyxy, cb5[34].wwxx +sample_indexable(texture2d)(float,float,float,float) r0.yzw, r1.xyxx, t2.wxyz, s2 +sample_indexable(texture2d)(float,float,float,float) r1.xy, r1.zwzz, t1.xyzw, s1 +mul r0.yzw, r0.yyzw, r0.yyzw +mul r1.z, v5.x, v5.x +mad r1.w, -v5.x, v5.x, l(1.000000) +mad r0.yzw, r0.yyzw, r1.wwww, r1.zzzz +log r1.z, r0.z +mul r1.yz, r1.yyzy, cb5[34].yyzy +exp r1.z, r1.z +mul r1.x, r1.x, cb5[32].w +min r2.y, r1.y, l(0.996000) +mul r2.z, r1.z, r1.x +dp3 r1.x, v3.xyzx, v3.xyzx +rsq r1.x, r1.x +mul r1.xyz, r1.xxxx, v3.xyzx +dp3 r1.w, v0.xyzx, v0.xyzx +rsq r1.w, r1.w +mul r3.xyz, r1.wwww, v0.xyzx +dp3 r1.x, r3.xyzx, r1.xyzx +mad o1.xyz, r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) +mov_sat r2.x, r1.x +mad r1.x, -|r1.x|, |r1.x|, l(1.000000) +max r1.x, r1.x, l(0.000000) +sqrt r1.x, r1.x +mul r1.x, r1.x, l(0.666667) +mad r1.x, -r1.x, r1.x, l(1.000000) +sqrt r1.x, r1.x +div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x +add r1.x, r1.x, l(-1.000000) +mad r1.x, r1.x, l(0.500000), l(1.000000) +sample_l_indexable(texture3d)(float,float,float,float) r1.yz, r2.xyzx, t11.zxyw, s11, l(0.000000) +mul r1.y, r1.y, r1.y +mad r1.z, r1.z, r1.z, -r1.y +mad_sat r1.y, cb5[32].x, r1.z, r1.y +mad r0.x, r0.x, l(0.002500), r1.y +min r0.x, r0.x, l(1.000000) +mul r1.y, r0.x, v4.y +mad r0.x, -r0.x, v4.y, l(1.000000) +max r1.z, r2.y, l(0.000000) +mov o3.x, r2.y +add r1.z, -r1.z, l(1.000000) +mad r1.z, r1.z, l(0.750000), l(0.007813) +log r1.z, r1.z +add r1.z, r1.z, l(6.666667) +div r2.xy, v6.xyxx, cb2[60].xyxx +add r2.z, -r2.x, l(1.000000) +sample_l_indexable(texture2d)(float,float,float,float) r2.xyz, r2.zyzz, t7.xyzw, s7, r1.z +mul r2.xyz, r2.xyzx, cb2[40].wwww +mul r2.xyz, r1.yyyy, r2.xyzx +sqrt r1.y, r1.y +mad o3.y, r1.y, l(-0.500000), l(0.500000) +mul r1.yzw, r2.xxyz, cb5[32].yyyy +mul r1.yzw, r1.yyzw, cb2[59].xxxx +max r2.x, r1.y, r1.z +max r2.y, r1.w, l(0.001000) +max r2.x, r2.x, r2.y +min r2.x, r2.x, l(1.000000) +mul r2.x, r2.x, l(255.000000) +round_pi r2.x, r2.x +mul r2.x, r2.x, l(0.003922) +div o0.xyz, r1.yzwy, r2.xxxx +mov o3.z, r2.x +mul r1.y, l(0.003922), cb2[49].x +mul r1.zw, v1.zzzw, l(0.000000, 0.000000, 255.996094, 255.996094) +round_z r1.zw, r1.zzzw +mad r2.xy, v1.zwzz, l(255.996094, 255.996094, 0.000000, 0.000000), -r1.zwzz +mul r3.zw, r1.zzzw, l(0.000000, 0.000000, 0.003922, 0.003922) +mul r3.xy, r2.xyxx, l(1.003922, 1.003922, 0.000000, 0.000000) +lt r1.z, l(0.000000), cb2[49].y +movc o0.w, r1.z, r1.y, r3.x +movc r1.yzw, r1.zzzz, l(0,0,0,0), r3.yyzw +mov o1.w, r1.y +mul r2.xy, v1.xyxx, cb5[32].zzzz +sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t0.xyzw, s0 +mul r2.xyz, r2.xyzx, r2.xyzx +mul r2.xyz, r2.xyzx, cb5[33].xyzx +mul r2.xyz, r2.xyzx, v2.xyzx +mul r2.xyz, r2.xyzx, v4.xyzx +log r2.xyz, r2.xyzx +mul r2.xyz, r1.xxxx, r2.xyzx +exp r2.xyz, r2.xyzx +mul r2.xyz, r0.xxxx, r2.xyzx +mad r0.xyz, r2.xyzx, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000) +mul_sat r0.xyz, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) +sqrt o2.xyz, r0.xyzx +mov o2.w, r1.z +mov o3.w, r1.w +ret +// Approximately 97 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/