From d1d2e1547b97c8cf7b9d023fe20583ce21f0b674 Mon Sep 17 00:00:00 2001 From: Ian Munsie Date: Tue, 10 Mar 2015 04:45:28 +1100 Subject: [PATCH] Far Cry 4: Fix more shaders in Shangri-La --- .../493e93970cf32eda-vs_replace.txt | 270 +++++++++ .../5b66725c486ad0cd-vs_replace.txt | 271 +++++++++ .../7b944d487d1fad53-vs_replace.txt | 325 +++++++++++ .../80302defea8a5a8f-vs_replace.txt | 344 +++++++++++ .../ab933d54a995eb32-vs_replace.txt | 551 +++++++++++++++++ .../b9648c2d071a07fc-vs_replace.txt | 336 +++++++++++ .../f60674a810f41b33-vs_replace.txt | 552 ++++++++++++++++++ 7 files changed, 2649 insertions(+) create mode 100755 FC4/ShaderFixes/493e93970cf32eda-vs_replace.txt create mode 100755 FC4/ShaderFixes/5b66725c486ad0cd-vs_replace.txt create mode 100755 FC4/ShaderFixes/7b944d487d1fad53-vs_replace.txt create mode 100755 FC4/ShaderFixes/80302defea8a5a8f-vs_replace.txt create mode 100755 FC4/ShaderFixes/ab933d54a995eb32-vs_replace.txt create mode 100755 FC4/ShaderFixes/b9648c2d071a07fc-vs_replace.txt create mode 100755 FC4/ShaderFixes/f60674a810f41b33-vs_replace.txt diff --git a/FC4/ShaderFixes/493e93970cf32eda-vs_replace.txt b/FC4/ShaderFixes/493e93970cf32eda-vs_replace.txt new file mode 100755 index 000000000..dbf77ea9d --- /dev/null +++ b/FC4/ShaderFixes/493e93970cf32eda-vs_replace.txt @@ -0,0 +1,270 @@ +// Purple in water at end of Shangri-La + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer COceanDampingProvider : register(b1) +{ + float4 _HideOceanDampingTexelOffset : packoffset(c0); + float4 _WorldScaleAndOffset : packoffset(c1); +} + +cbuffer COceanParameterProvider : register(b2) +{ + float4 _CornerPointsWS[4] : packoffset(c0); + float4 _OceanParameters : packoffset(c4); + float4 _SkyParameters : packoffset(c5); + float4 _VertexAdjustments : packoffset(c6); + float4 _WavesAmpHDir_ampVDirOverWL[8] : packoffset(c7); + float4 _WavesDir_oneOverWL_ampHWL[8] : packoffset(c15); + float4 _WavesParameters[8] : packoffset(c23); + float2 _GridSize : packoffset(c31); + float _OneOverWavesFade : packoffset(c31.z); + float _OneOverWavesHiResFade : packoffset(c31.w); + float _WaterLevel : packoffset(c32); + float _WavesCrestWeightsNorm[4] : packoffset(c33); +} +SamplerState DampingTexture__SampObj___s : register(s0); +Texture2D DampingTexture__TexObj__ : register(t0); + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + float4 v0 : position0, + out float4 o0 : SV_Position0, + out float3 o1 : TEXCOORD0, + out float3 o2 : TEXCOORD1, + out float3 o3 : TEXCOORD2, + out float2 o4 : TEXCOORD3) +{ + float4 r0,r1,r2; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = log2(abs(v0.y)); + r0.x = _OceanParameters.x * r0.x; + r0.x = exp2(r0.x); + r0.y = 1.000000000e+000 + -v0.x; + r1.xyz = _CornerPointsWS[2].xyw * r0.yyy; + r0.yzw = _CornerPointsWS[0].xyw * r0.yyy; + r0.yzw = v0.xxx * _CornerPointsWS[1].xyw + r0.yzw; + r1.xyz = v0.xxx * _CornerPointsWS[3].xyw + r1.xyz; + r1.xyz = r1.xyz * r0.xxx; + r0.x = 1.000000000e+000 + -r0.x; + r0.xyz = r0.xxx * r0.yzw + r1.xyz; + r0.xy = r0.xy / r0.zz; + r0.w = 1.000000000e+000; + r0.z = _WaterLevel; + r1.x = dot(r0.xyzw, _ViewProjectionMatrix._m00_m10_m20_m30); + r1.y = dot(r0.xyzw, _ViewProjectionMatrix._m01_m11_m21_m31); + r1.w = dot(r0.xyzw, _ViewProjectionMatrix._m03_m13_m23_m33); + o0.z = dot(r0.xyzw, _ViewProjectionMatrix._m02_m12_m22_m32); + o0.xyw = r1.xyw; + +float4 stereo = StereoParams.Load(0); +r1.x += stereo.x * (r1.w - stereo.y); + + r2.xyzw = _DepthTextureScaleOffset.xyzw * r1.xyww; + o2.z = r1.w; + o2.xy = r2.xy + r2.zw; + r1.xyz = _CameraPosition_DistanceScale.xyz + -r0.xyz; + o3.xyz = r0.xyz; + r0.xy = _WorldScaleAndOffset.zw + r0.xy; + r0.xy = _WorldScaleAndOffset.xy * r0.xy; + r0.xyzw = DampingTexture__TexObj__.SampleLevel(DampingTexture__SampObj___s, r0.xy, 0.000000000e+000).xyzw; + o4.x = r0.y; + r0.x = dot(r1.xyz, r1.xyz); + r0.x = rsqrt(r0.x); + o1.xyz = r1.xyz * r0.xxx; + o4.y = 1.000000000e+000; + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 [unused] +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 [unused] +// float4 _FogSHG; // Offset: 304 Size: 16 [unused] +// float4 _FogSHR; // Offset: 320 Size: 16 [unused] +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer COceanDampingProvider +// { +// +// float4 _HideOceanDampingTexelOffset;// Offset: 0 Size: 16 [unused] +// float4 _WorldScaleAndOffset; // Offset: 16 Size: 16 +// +// } +// +// cbuffer COceanParameterProvider +// { +// +// float4 _CornerPointsWS[4]; // Offset: 0 Size: 64 +// float4 _OceanParameters; // Offset: 64 Size: 16 +// float4 _SkyParameters; // Offset: 80 Size: 16 [unused] +// float4 _VertexAdjustments; // Offset: 96 Size: 16 [unused] +// float4 _WavesAmpHDir_ampVDirOverWL[8];// Offset: 112 Size: 128 [unused] +// float4 _WavesDir_oneOverWL_ampHWL[8];// Offset: 240 Size: 128 [unused] +// float4 _WavesParameters[8]; // Offset: 368 Size: 128 [unused] +// float2 _GridSize; // Offset: 496 Size: 8 [unused] +// float _OneOverWavesFade; // Offset: 504 Size: 4 [unused] +// float _OneOverWavesHiResFade; // Offset: 508 Size: 4 [unused] +// float _WaterLevel; // Offset: 512 Size: 4 +// float _WavesCrestWeightsNorm[4]; // Offset: 528 Size: 52 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// DampingTexture__SampObj__ sampler NA NA 0 1 +// DampingTexture__TexObj__ texture float4 2d 0 1 +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// COceanDampingProvider cbuffer NA NA 1 1 +// COceanParameterProvider cbuffer NA NA 2 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// TEXCOORD 0 xyz 1 NONE float xyz +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xy 4 NONE float xy +// +vs_4_0 +dcl_constantbuffer cb0[44], immediateIndexed +dcl_constantbuffer cb1[2], immediateIndexed +dcl_constantbuffer cb2[33], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xyz +dcl_output o2.xyz +dcl_output o3.xyz +dcl_output o4.xy +dcl_temps 3 +log r0.x, |v0.y| +mul r0.x, r0.x, cb2[4].x +exp r0.x, r0.x +add r0.y, -v0.x, l(1.000000) +mul r1.xyz, r0.yyyy, cb2[2].xywx +mul r0.yzw, r0.yyyy, cb2[0].xxyw +mad r0.yzw, v0.xxxx, cb2[1].xxyw, r0.yyzw +mad r1.xyz, v0.xxxx, cb2[3].xywx, r1.xyzx +mul r1.xyz, r0.xxxx, r1.xyzx +add r0.x, -r0.x, l(1.000000) +mad r0.xyz, r0.xxxx, r0.yzwy, r1.xyzx +div r0.xy, r0.xyxx, r0.zzzz +mov r0.w, l(1.000000) +mov r0.z, cb2[32].x +dp4 r1.x, r0.xyzw, cb0[40].xyzw +dp4 r1.y, r0.xyzw, cb0[41].xyzw +dp4 r1.w, r0.xyzw, cb0[43].xyzw +dp4 o0.z, r0.xyzw, cb0[42].xyzw +mov o0.xyw, r1.xyxw +mul r2.xyzw, r1.xyww, cb0[16].xyzw +mov o2.z, r1.w +add o2.xy, r2.zwzz, r2.xyxx +add r1.xyz, -r0.xyzx, cb0[8].xyzx +mov o3.xyz, r0.xyzx +add r0.xy, r0.xyxx, cb1[1].zwzz +mul r0.xy, r0.xyxx, cb1[1].xyxx +sample_l r0.xyzw, r0.xyxx, t0.xyzw, s0, l(0.000000) +mov o4.x, r0.y +dp3 r0.x, r1.xyzx, r1.xyzx +rsq r0.x, r0.x +mul o1.xyz, r0.xxxx, r1.xyzx +mov o4.y, l(1.000000) +ret +// Approximately 33 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/FC4/ShaderFixes/5b66725c486ad0cd-vs_replace.txt b/FC4/ShaderFixes/5b66725c486ad0cd-vs_replace.txt new file mode 100755 index 000000000..9fb2c8d1c --- /dev/null +++ b/FC4/ShaderFixes/5b66725c486ad0cd-vs_replace.txt @@ -0,0 +1,271 @@ +// purple in water at end of Shangri-La (MSAA2) + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer COceanDampingProvider : register(b1) +{ + float4 _HideOceanDampingTexelOffset : packoffset(c0); + float4 _WorldScaleAndOffset : packoffset(c1); +} + +cbuffer COceanParameterProvider : register(b2) +{ + float4 _CornerPointsWS[4] : packoffset(c0); + float4 _OceanParameters : packoffset(c4); + float4 _SkyParameters : packoffset(c5); + float4 _VertexAdjustments : packoffset(c6); + float4 _WavesAmpHDir_ampVDirOverWL[8] : packoffset(c7); + float4 _WavesDir_oneOverWL_ampHWL[8] : packoffset(c15); + float4 _WavesParameters[8] : packoffset(c23); + float2 _GridSize : packoffset(c31); + float _OneOverWavesFade : packoffset(c31.z); + float _OneOverWavesHiResFade : packoffset(c31.w); + float _WaterLevel : packoffset(c32); + float _WavesCrestWeightsNorm[4] : packoffset(c33); +} +SamplerState DampingTexture__SampObj___s : register(s0); +Texture2D DampingTexture__TexObj__ : register(t0); + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + float4 v0 : position0, + out float4 o0 : SV_Position0, + out float3 o1 : TEXCOORD0, + out float3 o2 : TEXCOORD1, + out float3 o3 : TEXCOORD2, + out float2 o4 : TEXCOORD3) +{ + float4 r0,r1,r2; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = log2(abs(v0.y)); + r0.x = _OceanParameters.x * r0.x; + r0.x = exp2(r0.x); + r0.y = 1.000000000e+000 + -v0.x; + r1.xyz = _CornerPointsWS[2].xyw * r0.yyy; + r0.yzw = _CornerPointsWS[0].xyw * r0.yyy; + r0.yzw = v0.xxx * _CornerPointsWS[1].xyw + r0.yzw; + r1.xyz = v0.xxx * _CornerPointsWS[3].xyw + r1.xyz; + r1.xyz = r1.xyz * r0.xxx; + r0.x = 1.000000000e+000 + -r0.x; + r0.xyz = r0.xxx * r0.yzw + r1.xyz; + r0.xy = r0.xy / r0.zz; + r0.w = 1.000000000e+000; + r0.z = _WaterLevel; + r1.x = dot(r0.xyzw, _ViewProjectionMatrix._m00_m10_m20_m30); + r1.y = dot(r0.xyzw, _ViewProjectionMatrix._m01_m11_m21_m31); + r1.w = dot(r0.xyzw, _ViewProjectionMatrix._m03_m13_m23_m33); + o0.z = dot(r0.xyzw, _ViewProjectionMatrix._m02_m12_m22_m32); + o0.xyw = r1.xyw; + +float4 stereo = StereoParams.Load(0); +r1.x += stereo.x * (r1.w - stereo.y); + + r2.xyzw = _DepthTextureScaleOffset.xyzw * r1.xyww; + o2.z = r1.w; + o2.xy = r2.xy + r2.zw; + r1.xyz = _CameraPosition_DistanceScale.xyz + -r0.xyz; + o3.xyz = r0.xyz; + r0.xy = _WorldScaleAndOffset.zw + r0.xy; + r0.xy = _WorldScaleAndOffset.xy * r0.xy; + r0.x = DampingTexture__TexObj__.SampleLevel(DampingTexture__SampObj___s, r0.xy, 0.000000000e+000).y; + o4.x = r0.x; + r0.x = dot(r1.xyz, r1.xyz); + r0.x = rsqrt(r0.x); + o1.xyz = r1.xyz * r0.xxx; + o4.y = 1.000000000e+000; + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 [unused] +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 [unused] +// float4 _FogSHG; // Offset: 304 Size: 16 [unused] +// float4 _FogSHR; // Offset: 320 Size: 16 [unused] +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer COceanDampingProvider +// { +// +// float4 _HideOceanDampingTexelOffset;// Offset: 0 Size: 16 [unused] +// float4 _WorldScaleAndOffset; // Offset: 16 Size: 16 +// +// } +// +// cbuffer COceanParameterProvider +// { +// +// float4 _CornerPointsWS[4]; // Offset: 0 Size: 64 +// float4 _OceanParameters; // Offset: 64 Size: 16 +// float4 _SkyParameters; // Offset: 80 Size: 16 [unused] +// float4 _VertexAdjustments; // Offset: 96 Size: 16 [unused] +// float4 _WavesAmpHDir_ampVDirOverWL[8];// Offset: 112 Size: 128 [unused] +// float4 _WavesDir_oneOverWL_ampHWL[8];// Offset: 240 Size: 128 [unused] +// float4 _WavesParameters[8]; // Offset: 368 Size: 128 [unused] +// float2 _GridSize; // Offset: 496 Size: 8 [unused] +// float _OneOverWavesFade; // Offset: 504 Size: 4 [unused] +// float _OneOverWavesHiResFade; // Offset: 508 Size: 4 [unused] +// float _WaterLevel; // Offset: 512 Size: 4 +// float _WavesCrestWeightsNorm[4]; // Offset: 528 Size: 52 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// DampingTexture__SampObj__ sampler NA NA 0 1 +// DampingTexture__TexObj__ texture float4 2d 0 1 +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// COceanDampingProvider cbuffer NA NA 1 1 +// COceanParameterProvider cbuffer NA NA 2 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// TEXCOORD 0 xyz 1 NONE float xyz +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xy 4 NONE float xy +// +vs_4_1 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb0[44], immediateIndexed +dcl_constantbuffer cb1[2], immediateIndexed +dcl_constantbuffer cb2[33], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xyz +dcl_output o2.xyz +dcl_output o3.xyz +dcl_output o4.xy +dcl_temps 3 +log r0.x, |v0.y| +mul r0.x, r0.x, cb2[4].x +exp r0.x, r0.x +add r0.y, -v0.x, l(1.000000) +mul r1.xyz, r0.yyyy, cb2[2].xywx +mul r0.yzw, r0.yyyy, cb2[0].xxyw +mad r0.yzw, v0.xxxx, cb2[1].xxyw, r0.yyzw +mad r1.xyz, v0.xxxx, cb2[3].xywx, r1.xyzx +mul r1.xyz, r0.xxxx, r1.xyzx +add r0.x, -r0.x, l(1.000000) +mad r0.xyz, r0.xxxx, r0.yzwy, r1.xyzx +div r0.xy, r0.xyxx, r0.zzzz +mov r0.w, l(1.000000) +mov r0.z, cb2[32].x +dp4 r1.x, r0.xyzw, cb0[40].xyzw +dp4 r1.y, r0.xyzw, cb0[41].xyzw +dp4 r1.w, r0.xyzw, cb0[43].xyzw +dp4 o0.z, r0.xyzw, cb0[42].xyzw +mov o0.xyw, r1.xyxw +mul r2.xyzw, r1.xyww, cb0[16].xyzw +mov o2.z, r1.w +add o2.xy, r2.zwzz, r2.xyxx +add r1.xyz, -r0.xyzx, cb0[8].xyzx +mov o3.xyz, r0.xyzx +add r0.xy, r0.xyxx, cb1[1].zwzz +mul r0.xy, r0.xyxx, cb1[1].xyxx +sample_l r0.x, r0.xyxx, t0.yxzw, s0, l(0.000000) +mov o4.x, r0.x +dp3 r0.x, r1.xyzx, r1.xyzx +rsq r0.x, r0.x +mul o1.xyz, r0.xxxx, r1.xyzx +mov o4.y, l(1.000000) +ret +// Approximately 33 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/FC4/ShaderFixes/7b944d487d1fad53-vs_replace.txt b/FC4/ShaderFixes/7b944d487d1fad53-vs_replace.txt new file mode 100755 index 000000000..b876f7eb5 --- /dev/null +++ b/FC4/ShaderFixes/7b944d487d1fad53-vs_replace.txt @@ -0,0 +1,325 @@ +// Reflected object shader - Shangri-La + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer SUserClipPlaneParameterProvider : register(b1) +{ + float4 _UserClipPlane : packoffset(c0); +} + +cbuffer CSceneGeometry : register(b2) +{ + float4 _GeometryPickingID : packoffset(c0); + float4 _MeshDecompression : packoffset(c1); + float4 _NormalizedXYBBox : packoffset(c2); +} + +cbuffer CVertexConstantInstancingTransformParameterProvider : register(b3) +{ + float4x4 _VertexCstInstancingWorldMatrices[5] : packoffset(c0); +} + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + int4 v0 : position0, + int2 v1 : texcoord0, + int2 v2 : texcoord1, + float4 v3 : normal0, + float4 v4 : color0, + float4 v5 : fog0, + float4 v6 : psize0, + out float4 o0 : SV_Position0, + out float o1 : SV_ClipDistance0, + out float4 o2 : TEXCOORD0, + out float4 o3 : TEXCOORD1, + out float3 o4 : TEXCOORD2, + out float3 o5 : TEXCOORD3, + out float3 o6 : TEXCOORD4, + out float3 o7 : TEXCOORD5, + out float3 o8 : TEXCOORD6) +{ + float4 r0,r1,r2; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xyz = v0.xyz; + r0.xyz = r0.xyz * _MeshDecompression.yyy + _MeshDecompression.xxx; + r0.w = 1.000000000e+000; + r1.x = (uint)v0.w << 2; + r2.x = dot(r0.xyzw, _VertexCstInstancingWorldMatrices[r1.x/4]._m00_m10_m20_m30); + r2.y = dot(r0.xyzw, _VertexCstInstancingWorldMatrices[r1.x/4]._m01_m11_m21_m31); + r2.z = dot(r0.xyzw, _VertexCstInstancingWorldMatrices[r1.x/4]._m02_m12_m22_m32); + r0.xyz = -_CameraPosition_DistanceScale.xyz + r2.xyz; + r0.w = dot(r0.xyz, r0.xyz); + r0.w = rsqrt(r0.w); + r0.xyz = r0.xyz * r0.www; + r0.xyz = r0.xyz * _CameraPositionFractions_ZOffsetWS.www + r2.xyz; + r2.xyz = -_CameraPosition_DistanceScale.xyz + r0.xyz; + r2.w = 1.000000000e+000; + o0.x = dot(r2.xyzw, _ViewRotProjectionMatrix._m00_m10_m20_m30); + o0.y = dot(r2.xyzw, _ViewRotProjectionMatrix._m01_m11_m21_m31); + o0.z = dot(r2.xyzw, _ViewRotProjectionMatrix._m02_m12_m22_m32); + o0.w = dot(r2.xyzw, _ViewRotProjectionMatrix._m03_m13_m23_m33); + +float4 stereo = StereoParams.Load(0); +o0.x -= stereo.x * (o0.w - stereo.y) * 2; + + r0.w = 1.000000000e+000; + o1.x = dot(_UserClipPlane.xyzw, r0.xyzw); + o5.xyz = r0.xyz; + r0.xy = v1.xy; + o2.xy = r0.xy * _MeshDecompression.ww + _MeshDecompression.zz; + r0.xy = v2.xy; + o2.zw = r0.xy * _MeshDecompression.ww + _MeshDecompression.zz; + r0.x = max(v4.w, _AmbientOcclusionRanges_SunOcclusionFactor.x); + r0.x = min(r0.x, _AmbientOcclusionRanges_SunOcclusionFactor.y); + r0.x = -_AmbientOcclusionRanges_SunOcclusionFactor.x + r0.x; + o3.w = saturate(_AmbientOcclusionRanges_SunOcclusionFactor.z * r0.x); + o3.xyz = saturate(v4.xyz); + r0.x = dot(r2.xyz, r2.xyz); + r0.x = rsqrt(r0.x); + r0.yzw = r2.yzx * r0.xxx; + r0.x = 1.000000000e+000; + r2.x = dot(_FogSHR.xyzw, r0.xyzw); + r2.y = dot(_FogSHG.xyzw, r0.xyzw); + r2.z = dot(_FogSHB.xyzw, r0.xyzw); + o4.xyz = max(r2.xyz, float3(0.000000e+000,0.000000e+000,0.000000e+000)); + r0.xyz = v3.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o6.x = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m00_m10_m20); + o6.y = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m01_m11_m21); + o6.z = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m02_m12_m22); + r0.xyz = v6.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o7.x = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m00_m10_m20); + o7.y = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m01_m11_m21); + o7.z = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m02_m12_m22); + r0.xyz = v5.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o8.x = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m00_m10_m20); + o8.y = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m01_m11_m21); + o8.z = dot(r0.xyz, _VertexCstInstancingWorldMatrices[r1.x/4]._m02_m12_m22); + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 [unused] +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 +// float4 _FogSHG; // Offset: 304 Size: 16 +// float4 _FogSHR; // Offset: 320 Size: 16 +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer SUserClipPlaneParameterProvider +// { +// +// float4 _UserClipPlane; // Offset: 0 Size: 16 +// +// } +// +// cbuffer CSceneGeometry +// { +// +// float4 _GeometryPickingID; // Offset: 0 Size: 16 [unused] +// float4 _MeshDecompression; // Offset: 16 Size: 16 +// float4 _NormalizedXYBBox; // Offset: 32 Size: 16 [unused] +// +// } +// +// cbuffer CVertexConstantInstancingTransformParameterProvider +// { +// +// float4x4 _VertexCstInstancingWorldMatrices[5];// Offset: 0 Size: 320 +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// SUserClipPlaneParameterProvider cbuffer NA NA 1 1 +// CSceneGeometry cbuffer NA NA 2 1 +// CVertexConstantInstancingTransformParameterProvider cbuffer NA NA 3 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE int xyzw +// texcoord 0 xy 1 NONE int xy +// texcoord 1 xy 2 NONE int xy +// normal 0 xyzw 3 NONE float xyz +// color 0 xyzw 4 NONE float xyzw +// fog 0 xyzw 5 NONE float xyz +// psize 0 xyzw 6 NONE float xyz +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// SV_ClipDistance 0 x 1 CLIPDST float x +// TEXCOORD 0 xyzw 2 NONE float xyzw +// TEXCOORD 1 xyzw 3 NONE float xyzw +// TEXCOORD 2 xyz 4 NONE float xyz +// TEXCOORD 3 xyz 5 NONE float xyz +// TEXCOORD 4 xyz 6 NONE float xyz +// TEXCOORD 5 xyz 7 NONE float xyz +// TEXCOORD 6 xyz 8 NONE float xyz +// +vs_5_0 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb0[48], immediateIndexed +dcl_constantbuffer cb1[1], immediateIndexed +dcl_constantbuffer cb2[2], immediateIndexed +dcl_constantbuffer cb3[19], dynamicIndexed +dcl_input v0.xyzw +dcl_input v1.xy +dcl_input v2.xy +dcl_input v3.xyz +dcl_input v4.xyzw +dcl_input v5.xyz +dcl_input v6.xyz +dcl_output_siv o0.xyzw, position +dcl_output_siv o1.x, clip_distance +dcl_output o2.xyzw +dcl_output o3.xyzw +dcl_output o4.xyz +dcl_output o5.xyz +dcl_output o6.xyz +dcl_output o7.xyz +dcl_output o8.xyz +dcl_temps 3 +itof r0.xyz, v0.xyzx +mad r0.xyz, r0.xyzx, cb2[1].yyyy, cb2[1].xxxx +mov r0.w, l(1.000000) +ishl r1.x, v0.w, l(2) +dp4 r2.x, r0.xyzw, cb3[r1.x + 0].xyzw +dp4 r2.y, r0.xyzw, cb3[r1.x + 1].xyzw +dp4 r2.z, r0.xyzw, cb3[r1.x + 2].xyzw +add r0.xyz, r2.xyzx, -cb0[8].xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +rsq r0.w, r0.w +mul r0.xyz, r0.wwww, r0.xyzx +mad r0.xyz, r0.xyzx, cb0[6].wwww, r2.xyzx +add r2.xyz, r0.xyzx, -cb0[8].xyzx +mov r2.w, l(1.000000) +dp4 o0.x, r2.xyzw, cb0[44].xyzw +dp4 o0.y, r2.xyzw, cb0[45].xyzw +dp4 o0.z, r2.xyzw, cb0[46].xyzw +dp4 o0.w, r2.xyzw, cb0[47].xyzw +mov r0.w, l(1.000000) +dp4 o1.x, cb1[0].xyzw, r0.xyzw +mov o5.xyz, r0.xyzx +itof r0.xy, v1.xyxx +mad o2.xy, r0.xyxx, cb2[1].wwww, cb2[1].zzzz +itof r0.xy, v2.xyxx +mad o2.zw, r0.xxxy, cb2[1].wwww, cb2[1].zzzz +max r0.x, v4.w, cb0[1].x +min r0.x, r0.x, cb0[1].y +add r0.x, r0.x, -cb0[1].x +mul_sat o3.w, r0.x, cb0[1].z +mov_sat o3.xyz, v4.xyzx +dp3 r0.x, r2.xyzx, r2.xyzx +rsq r0.x, r0.x +mul r0.yzw, r0.xxxx, r2.yyzx +mov r0.x, l(1.000000) +dp4 r2.x, cb0[20].xyzw, r0.xyzw +dp4 r2.y, cb0[19].xyzw, r0.xyzw +dp4 r2.z, cb0[18].xyzw, r0.xyzw +max o4.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mad r0.xyz, v3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o6.x, r0.xyzx, cb3[r1.x + 0].xyzx +dp3 o6.y, r0.xyzx, cb3[r1.x + 1].xyzx +dp3 o6.z, r0.xyzx, cb3[r1.x + 2].xyzx +mad r0.xyz, v6.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o7.x, r0.xyzx, cb3[r1.x + 0].xyzx +dp3 o7.y, r0.xyzx, cb3[r1.x + 1].xyzx +dp3 o7.z, r0.xyzx, cb3[r1.x + 2].xyzx +mad r0.xyz, v5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o8.x, r0.xyzx, cb3[r1.x + 0].xyzx +dp3 o8.y, r0.xyzx, cb3[r1.x + 1].xyzx +dp3 o8.z, r0.xyzx, cb3[r1.x + 2].xyzx +ret +// Approximately 51 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/FC4/ShaderFixes/80302defea8a5a8f-vs_replace.txt b/FC4/ShaderFixes/80302defea8a5a8f-vs_replace.txt new file mode 100755 index 000000000..35a669b68 --- /dev/null +++ b/FC4/ShaderFixes/80302defea8a5a8f-vs_replace.txt @@ -0,0 +1,344 @@ +// Reflected object shader - dead animals in Shangri-La + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer SUserClipPlaneParameterProvider : register(b1) +{ + float4 _UserClipPlane : packoffset(c0); +} + +cbuffer CSceneTransformParameterProvider : register(b2) +{ + float4x4 _WorldMatrix : packoffset(c0); + float3 _WorldPositionFractions : packoffset(c4); +} + +cbuffer CSceneGeometry : register(b3) +{ + float4 _GeometryPickingID : packoffset(c0); + float4 _MeshDecompression : packoffset(c1); + float4 _NormalizedXYBBox : packoffset(c2); +} + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + int4 v0 : position0, + int2 v1 : texcoord0, + int2 v2 : texcoord1, + float4 v3 : normal0, + float4 v4 : color0, + float4 v5 : fog0, + float4 v6 : psize0, + out float4 o0 : SV_Position0, + out float o1 : SV_ClipDistance0, + out float4 o2 : TEXCOORD0, + out float4 o3 : TEXCOORD1, + out float3 o4 : TEXCOORD2, + out float3 o5 : TEXCOORD3, + out float3 o6 : TEXCOORD4, + out float3 o7 : TEXCOORD5, + out float3 o8 : TEXCOORD6) +{ + float4 r0,r1,r2,r3,r4; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xyz = _WorldPositionFractions.xyz + -_CameraPositionFractions_ZOffsetWS.xyz; + r1.x = _WorldMatrix._m30; + r1.y = _WorldMatrix._m31; + r1.z = _WorldMatrix._m32; + r2.xyz = -_CameraPosition_DistanceScale.xyz + r1.xyz; + r3.xyz = v0.xyz; + r3.xyz = r3.xyz * _MeshDecompression.yyy + _MeshDecompression.xxx; + r4.x = dot(r3.xyz, _WorldMatrix._m00_m10_m20); + r4.y = dot(r3.xyz, _WorldMatrix._m01_m11_m21); + r4.z = dot(r3.xyz, _WorldMatrix._m02_m12_m22); + r2.xyz = r4.xyz + r2.xyz; + r1.xyz = r4.xyz + r1.xyz; + r0.xyz = r2.xyz + r0.xyz; + r0.w = dot(r0.xyz, r0.xyz); + r0.w = rsqrt(r0.w); + r2.xyz = r0.xyz * r0.www; + r0.xyz = r2.xyz * _CameraPositionFractions_ZOffsetWS.www + r0.xyz; + r0.w = 1.000000000e+000; + o0.x = dot(r0.xyzw, _ViewRotProjectionMatrix._m00_m10_m20_m30); + o0.y = dot(r0.xyzw, _ViewRotProjectionMatrix._m01_m11_m21_m31); + o0.z = dot(r0.xyzw, _ViewRotProjectionMatrix._m02_m12_m22_m32); + o0.w = dot(r0.xyzw, _ViewRotProjectionMatrix._m03_m13_m23_m33); + +float4 stereo = StereoParams.Load(0); +o0.x -= stereo.x * (o0.w - stereo.y) * 2; + + r0.xyz = -_CameraPosition_DistanceScale.xyz + r1.xyz; + r0.w = dot(r0.xyz, r0.xyz); + r0.w = rsqrt(r0.w); + r0.xyz = r0.xyz * r0.www; + r0.xyz = r0.xyz * _CameraPositionFractions_ZOffsetWS.www + r1.xyz; + r0.w = 1.000000000e+000; + o1.x = dot(_UserClipPlane.xyzw, r0.xyzw); + r1.xy = v1.xy; + o2.xy = r1.xy * _MeshDecompression.ww + _MeshDecompression.zz; + o2.zw = float2(0.000000e+000,0.000000e+000); + r0.w = max(v4.w, _AmbientOcclusionRanges_SunOcclusionFactor.x); + r0.w = min(r0.w, _AmbientOcclusionRanges_SunOcclusionFactor.y); + r0.w = -_AmbientOcclusionRanges_SunOcclusionFactor.x + r0.w; + o3.w = _AmbientOcclusionRanges_SunOcclusionFactor.z * r0.w; + o3.xyz = v4.xyz; + r1.xyz = -_CameraPosition_DistanceScale.yzx + r0.yzx; + o5.xyz = r0.xyz; + r0.x = dot(r1.xyz, r1.xyz); + r0.x = rsqrt(r0.x); + r0.yzw = r1.xyz * r0.xxx; + r0.x = 1.000000000e+000; + r1.x = dot(_FogSHR.xyzw, r0.xyzw); + r1.y = dot(_FogSHG.xyzw, r0.xyzw); + r1.z = dot(_FogSHB.xyzw, r0.xyzw); + o4.xyz = max(r1.xyz, float3(0.000000e+000,0.000000e+000,0.000000e+000)); + r0.xyz = v3.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o6.x = dot(r0.xyz, _WorldMatrix._m00_m10_m20); + o6.y = dot(r0.xyz, _WorldMatrix._m01_m11_m21); + o6.z = dot(r0.xyz, _WorldMatrix._m02_m12_m22); + r0.xyz = v6.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o7.x = dot(r0.xyz, _WorldMatrix._m00_m10_m20); + o7.y = dot(r0.xyz, _WorldMatrix._m01_m11_m21); + o7.z = dot(r0.xyz, _WorldMatrix._m02_m12_m22); + r0.xyz = v5.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o8.x = dot(r0.xyz, _WorldMatrix._m00_m10_m20); + o8.y = dot(r0.xyz, _WorldMatrix._m01_m11_m21); + o8.z = dot(r0.xyz, _WorldMatrix._m02_m12_m22); + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 [unused] +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 +// float4 _FogSHG; // Offset: 304 Size: 16 +// float4 _FogSHR; // Offset: 320 Size: 16 +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer SUserClipPlaneParameterProvider +// { +// +// float4 _UserClipPlane; // Offset: 0 Size: 16 +// +// } +// +// cbuffer CSceneTransformParameterProvider +// { +// +// float4x4 _WorldMatrix; // Offset: 0 Size: 64 +// float3 _WorldPositionFractions; // Offset: 64 Size: 12 +// +// } +// +// cbuffer CSceneGeometry +// { +// +// float4 _GeometryPickingID; // Offset: 0 Size: 16 [unused] +// float4 _MeshDecompression; // Offset: 16 Size: 16 +// float4 _NormalizedXYBBox; // Offset: 32 Size: 16 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// SUserClipPlaneParameterProvider cbuffer NA NA 1 1 +// CSceneTransformParameterProvider cbuffer NA NA 2 1 +// CSceneGeometry cbuffer NA NA 3 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE int xyz +// texcoord 0 xy 1 NONE int xy +// texcoord 1 xy 2 NONE int +// normal 0 xyzw 3 NONE float xyz +// color 0 xyzw 4 NONE float xyzw +// fog 0 xyzw 5 NONE float xyz +// psize 0 xyzw 6 NONE float xyz +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// SV_ClipDistance 0 x 1 CLIPDST float x +// TEXCOORD 0 xyzw 2 NONE float xyzw +// TEXCOORD 1 xyzw 3 NONE float xyzw +// TEXCOORD 2 xyz 4 NONE float xyz +// TEXCOORD 3 xyz 5 NONE float xyz +// TEXCOORD 4 xyz 6 NONE float xyz +// TEXCOORD 5 xyz 7 NONE float xyz +// TEXCOORD 6 xyz 8 NONE float xyz +// +vs_5_0 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb0[48], immediateIndexed +dcl_constantbuffer cb1[1], immediateIndexed +dcl_constantbuffer cb2[5], immediateIndexed +dcl_constantbuffer cb3[2], immediateIndexed +dcl_input v0.xyz +dcl_input v1.xy +dcl_input v3.xyz +dcl_input v4.xyzw +dcl_input v5.xyz +dcl_input v6.xyz +dcl_output_siv o0.xyzw, position +dcl_output_siv o1.x, clip_distance +dcl_output o2.xyzw +dcl_output o3.xyzw +dcl_output o4.xyz +dcl_output o5.xyz +dcl_output o6.xyz +dcl_output o7.xyz +dcl_output o8.xyz +dcl_temps 5 +add r0.xyz, -cb0[6].xyzx, cb2[4].xyzx +mov r1.x, cb2[0].w +mov r1.y, cb2[1].w +mov r1.z, cb2[2].w +add r2.xyz, r1.xyzx, -cb0[8].xyzx +itof r3.xyz, v0.xyzx +mad r3.xyz, r3.xyzx, cb3[1].yyyy, cb3[1].xxxx +dp3 r4.x, r3.xyzx, cb2[0].xyzx +dp3 r4.y, r3.xyzx, cb2[1].xyzx +dp3 r4.z, r3.xyzx, cb2[2].xyzx +add r2.xyz, r2.xyzx, r4.xyzx +add r1.xyz, r1.xyzx, r4.xyzx +add r0.xyz, r0.xyzx, r2.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +rsq r0.w, r0.w +mul r2.xyz, r0.wwww, r0.xyzx +mad r0.xyz, r2.xyzx, cb0[6].wwww, r0.xyzx +mov r0.w, l(1.000000) +dp4 o0.x, r0.xyzw, cb0[44].xyzw +dp4 o0.y, r0.xyzw, cb0[45].xyzw +dp4 o0.z, r0.xyzw, cb0[46].xyzw +dp4 o0.w, r0.xyzw, cb0[47].xyzw +add r0.xyz, r1.xyzx, -cb0[8].xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +rsq r0.w, r0.w +mul r0.xyz, r0.wwww, r0.xyzx +mad r0.xyz, r0.xyzx, cb0[6].wwww, r1.xyzx +mov r0.w, l(1.000000) +dp4 o1.x, cb1[0].xyzw, r0.xyzw +itof r1.xy, v1.xyxx +mad o2.xy, r1.xyxx, cb3[1].wwww, cb3[1].zzzz +mov o2.zw, l(0,0,0,0) +max r0.w, v4.w, cb0[1].x +min r0.w, r0.w, cb0[1].y +add r0.w, r0.w, -cb0[1].x +mul o3.w, r0.w, cb0[1].z +mov o3.xyz, v4.xyzx +add r1.xyz, r0.yzxy, -cb0[8].yzxy +mov o5.xyz, r0.xyzx +dp3 r0.x, r1.xyzx, r1.xyzx +rsq r0.x, r0.x +mul r0.yzw, r0.xxxx, r1.xxyz +mov r0.x, l(1.000000) +dp4 r1.x, cb0[20].xyzw, r0.xyzw +dp4 r1.y, cb0[19].xyzw, r0.xyzw +dp4 r1.z, cb0[18].xyzw, r0.xyzw +max o4.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mad r0.xyz, v3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o6.x, r0.xyzx, cb2[0].xyzx +dp3 o6.y, r0.xyzx, cb2[1].xyzx +dp3 o6.z, r0.xyzx, cb2[2].xyzx +mad r0.xyz, v6.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o7.x, r0.xyzx, cb2[0].xyzx +dp3 o7.y, r0.xyzx, cb2[1].xyzx +dp3 o7.z, r0.xyzx, cb2[2].xyzx +mad r0.xyz, v5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o8.x, r0.xyzx, cb2[0].xyzx +dp3 o8.y, r0.xyzx, cb2[1].xyzx +dp3 o8.z, r0.xyzx, cb2[2].xyzx +ret +// Approximately 60 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/FC4/ShaderFixes/ab933d54a995eb32-vs_replace.txt b/FC4/ShaderFixes/ab933d54a995eb32-vs_replace.txt new file mode 100755 index 000000000..4a3834f43 --- /dev/null +++ b/FC4/ShaderFixes/ab933d54a995eb32-vs_replace.txt @@ -0,0 +1,551 @@ +// Water at end of Shangri-La (No AA) + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer CGlobalShaderParameterProvider : register(b1) +{ + float4 _BurnColor : packoffset(c0); + float4 _BurnParams : packoffset(c1); + float4 _BurnParams2 : packoffset(c2); + float4 _BurnParams3 : packoffset(c3); + float4 _CascadedShadowScaleOffsetTile0 : packoffset(c4); + float4 _CascadedShadowScaleOffsetTile1 : packoffset(c5); + float4 _GlobalScalars : packoffset(c6); + float4 _SSS_MiscParams : packoffset(c7); + float4 _WindSimParamsX : packoffset(c8); + float4 _WindSimParamsY : packoffset(c9); + float2 _RangeDepthCompression : packoffset(c10); + float3 _SSS_Color : packoffset(c11); + int _BRDFHighQuality : packoffset(c11.w); +} + +cbuffer ShangrilaOcean : register(b2) +{ + float3 _NormalIncidenceReflectance : packoffset(c0); + float3 _ConstantReflectanceFactor : packoffset(c1); + float _TexGeoWavesBlendCff : packoffset(c1.w); + float4 _NormalMapParams1 : packoffset(c2); + float4 _NormalMapParams2 : packoffset(c3); + float4 _NormalMapParams3 : packoffset(c4); + float4 _NormalMapParams4 : packoffset(c5); + float _NormalsScale : packoffset(c6); + float _HighNormalsScale : packoffset(c6.y); + float2 _WavesFade : packoffset(c6.z); + float2 _WavesHiResFade : packoffset(c7); + float4 _Octave1Params : packoffset(c8); + float2 _Octave1Dir : packoffset(c9); + float4 _Octave2Params : packoffset(c10); + float2 _Octave2Dir : packoffset(c11); + float4 _Octave3Params : packoffset(c12); + float2 _Octave3Dir : packoffset(c13); + float4 _Octave4Params : packoffset(c14); + float2 _Octave4Dir : packoffset(c15); + float4 _Octave5Params : packoffset(c16); + float2 _Octave5Dir : packoffset(c17); + float4 _Octave6Params : packoffset(c18); + float2 _Octave6Dir : packoffset(c19); + float4 _Octave7Params : packoffset(c20); + float2 _Octave7Dir : packoffset(c21); + float4 _Octave8Params : packoffset(c22); + float2 _Octave8Dir : packoffset(c23); + float _DepthDistanceCff : packoffset(c23.z); + float2 _Smoothness : packoffset(c24); + float2 _CausticsParams : packoffset(c24.z); + float2 _CausticsDepthFade : packoffset(c25); + float2 _CausticsRcpDepthFade : packoffset(c25.z); + float4 _FoamLayer1Params : packoffset(c26); + float4 _FoamLayer2Params : packoffset(c27); + float4 _FoamSettings : packoffset(c28); + float4 _FoamParams : packoffset(c29); + float4 _NormalsMaskParams : packoffset(c30); + float3 _OceanColorShallow : packoffset(c31); + float3 _OceanColorDeep : packoffset(c32); + float _DampingFadeOut : packoffset(c32.w); + float _ShallowWaterDepth : packoffset(c33); + float4 _WavesCrestWeights : packoffset(c34); + float _RimLightWidth : packoffset(c35); + float _RimLightIntensity : packoffset(c35.y); + float3 _DisplacementParams : packoffset(c36); + float4 _MaterialPickingID : packoffset(c37); +} + +cbuffer COceanDampingProvider : register(b3) +{ + float4 _HideOceanDampingTexelOffset : packoffset(c0); + float4 _WorldScaleAndOffset : packoffset(c1); +} + +cbuffer COceanParameterProvider : register(b4) +{ + float4 _CornerPointsWS[4] : packoffset(c0); + float4 _OceanParameters : packoffset(c4); + float4 _SkyParameters : packoffset(c5); + float4 _VertexAdjustments : packoffset(c6); + float4 _WavesAmpHDir_ampVDirOverWL[8] : packoffset(c7); + float4 _WavesDir_oneOverWL_ampHWL[8] : packoffset(c15); + float4 _WavesParameters[8] : packoffset(c23); + float2 _GridSize : packoffset(c31); + float _OneOverWavesFade : packoffset(c31.z); + float _OneOverWavesHiResFade : packoffset(c31.w); + float _WaterLevel : packoffset(c32); + float _WavesCrestWeightsNorm[4] : packoffset(c33); +} +SamplerState DisplacementTexture__SampObj___s : register(s0); +SamplerState DampingTexture__SampObj___s : register(s1); +Texture2D DisplacementTexture__TexObj__ : register(t0); +Texture2D DampingTexture__TexObj__ : register(t1); + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + float4 v0 : position0, + out float4 o0 : SV_Position0, + out float3 o1 : TEXCOORD0, + out float3 o2 : TEXCOORD1, + out float3 o3 : TEXCOORD2, + out float3 o4 : TEXCOORD3, + out float3 o5 : TEXCOORD4, + out float3 o6 : TEXCOORD5, + out float3 o7 : TEXCOORD6, + out float4 o8 : TEXCOORD7, + out float4 o9 : TEXCOORD8, + out float4 o10 : TEXCOORD9, + out float2 o11 : TEXCOORD10) +{ + float4 r0,r1,r2,r3,r4; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = _DisplacementParams.z * _GlobalScalars.y; + r0.xyz = float3(5.000000e-002,-5.000000e-003,2.500000e-002) * r0.xxx; + r0.w = log2(abs(v0.y)); + r0.w = _OceanParameters.x * r0.w; + r0.w = exp2(r0.w); + r1.x = 1.000000000e+000 + -v0.x; + r1.yzw = _CornerPointsWS[2].xyw * r1.xxx; + r2.xyz = _CornerPointsWS[0].xyw * r1.xxx; + r2.xyz = v0.xxx * _CornerPointsWS[1].xyw + r2.xyz; + r1.xyz = v0.xxx * _CornerPointsWS[3].xyw + r1.yzw; + r1.xyz = r1.xyz * r0.www; + r0.w = 1.000000000e+000 + -r0.w; + r1.xyz = r0.www * r2.xyz + r1.xyz; + r1.xy = r1.xy / r1.zz; + r2.xyzw = float4(2.000000e-001,2.000000e-001,4.000000e-001,2.000000e-001) + r1.xyxy; + r3.xyzw = float4(6.000000e+000,1.953125e-003,9.765625e-004,3.906250e-003) * _DisplacementParams.yxxx; + r2.xyzw = r2.xyzw * r3.zzyy + r0.xyyx; + r4.xyzw = DisplacementTexture__TexObj__.SampleLevel(DisplacementTexture__SampObj___s, r2.xy, 0.000000000e+000).xyzw; + r2.xyzw = DisplacementTexture__TexObj__.SampleLevel(DisplacementTexture__SampObj___s, r2.zw, 0.000000000e+000).xyzw; + r0.x = dot(r2.xzy, float3(1.000000e+000,1.000000e+000,-1.000000e+000)); + r0.y = dot(r4.yzx, float3(1.000000e+000,1.000000e+000,-1.000000e+000)); + r0.x = r0.y + r0.x; + r0.yw = float2(2.000000e-001,4.000000e-001) + r1.xy; + r0.yz = r0.yw * r3.ww + r0.zz; + r2.xyzw = DisplacementTexture__TexObj__.SampleLevel(DisplacementTexture__SampObj___s, r0.yz, 0.000000000e+000).xyzw; + r0.y = dot(r2.xyz, float3(1.000000e+000,1.000000e+000,-1.000000e+000)); + r0.x = r0.x + r0.y; + r0.x = r0.x * r3.x; + r0.x = r0.x * 1.000000015e-001 + -_DisplacementParams.y; + r1.z = _WaterLevel; + r0.yzw = -_CameraPosition_DistanceScale.xyz + r1.xyz; + r0.y = dot(r0.yzw, r0.yzw); + r0.y = sqrt(r0.y); + r0.y = 1.249999972e-003 * r0.y; + r0.y = min(r0.y, 1.000000000e+000); + r0.y = 1.000000000e+000 + -r0.y; + r2.xyz = r0.xxx * r0.yyy + r1.xyz; + r0.x = r0.x * r0.y; + o10.w = r0.y; + o10.z = 2.500000000e-001 * abs(r0.x); + o7.xyz = r1.xyz; + r2.w = 1.000000000e+000; + o0.z = dot(r2.xyzw, _ViewProjectionMatrix._m02_m12_m22_m32); + r0.y = dot(r2.xyzw, _ViewProjectionMatrix._m01_m11_m21_m31); + r0.x = dot(r2.xyzw, _ViewProjectionMatrix._m00_m10_m20_m30); + r0.w = dot(r2.xyzw, _ViewProjectionMatrix._m03_m13_m23_m33); + o0.xyw = r0.xyw; + +float4 stereo = StereoParams.Load(0); +r0.x += stereo.x * (r0.w - stereo.y); + + r3.xyz = -_CameraPosition_DistanceScale.yzx + r2.yzx; + o3.xyz = _CameraPosition_DistanceScale.xyz + -r2.xyz; + r1.z = dot(r3.xyz, r3.xyz); + r1.z = rsqrt(r1.z); + r2.yzw = r3.xyz * r1.zzz; + r2.x = 1.000000000e+000; + r3.x = dot(_FogSHR.xyzw, r2.xyzw); + r3.y = dot(_FogSHG.xyzw, r2.xyzw); + r3.z = dot(_FogSHB.xyzw, r2.xyzw); + o1.xyz = max(r3.xyz, float3(0.000000e+000,0.000000e+000,0.000000e+000)); + o2.z = 1.000000e+000 / _TexGeoWavesBlendCff; + o2.xy = float2(0.000000e+000,0.000000e+000); + r2.xyzw = _DepthTextureScaleOffset.xyzw * r0.xyww; + r1.zw = r0.ww + -r0.xy; + r3.x = r0.w + r0.x; + r0.x = 5.000000000e-001 * r3.x; + r0.yz = float2(5.000000e-001,5.000000e-001) * r1.zw; + o4.xy = r2.xy + r2.zw; + o4.z = r0.w; + o5.xyz = r0.yzw; + o6.xyz = r0.xzw; + r0.x = _NormalMapParams1.y * _GlobalScalars.y; + r0.xy = _NormalMapParams1.zw * r0.xx; + o8.xy = r1.xy * _NormalMapParams1.xx + r0.xy; + r0.x = _NormalMapParams2.y * _GlobalScalars.y; + r0.xy = _NormalMapParams2.zw * r0.xx; + o8.zw = r1.xy * _NormalMapParams2.xx + r0.xy; + r0.x = _NormalMapParams3.y * _GlobalScalars.y; + r0.xy = _NormalMapParams3.zw * r0.xx; + o9.xy = r1.xy * _NormalMapParams3.xx + r0.xy; + r0.x = _NormalMapParams4.y * _GlobalScalars.y; + r0.xy = _NormalMapParams4.zw * r0.xx; + o9.zw = r1.xy * _NormalMapParams4.xx + r0.xy; + r0.x = _NormalsMaskParams.y * _GlobalScalars.y; + r0.xy = _NormalsMaskParams.zw * r0.xx; + o10.xy = r1.xy * _NormalsMaskParams.xx + r0.xy; + r0.xy = _WorldScaleAndOffset.zw + r1.xy; + r0.xy = _WorldScaleAndOffset.xy * r0.xy; + r0.xyzw = DampingTexture__TexObj__.SampleLevel(DampingTexture__SampObj___s, r0.xy, 0.000000000e+000).xyzw; + o11.x = r0.y; + o11.y = 1.000000000e+000; + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 [unused] +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 +// float4 _FogSHG; // Offset: 304 Size: 16 +// float4 _FogSHR; // Offset: 320 Size: 16 +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer CGlobalShaderParameterProvider +// { +// +// float4 _BurnColor; // Offset: 0 Size: 16 [unused] +// float4 _BurnParams; // Offset: 16 Size: 16 [unused] +// float4 _BurnParams2; // Offset: 32 Size: 16 [unused] +// float4 _BurnParams3; // Offset: 48 Size: 16 [unused] +// float4 _CascadedShadowScaleOffsetTile0;// Offset: 64 Size: 16 [unused] +// float4 _CascadedShadowScaleOffsetTile1;// Offset: 80 Size: 16 [unused] +// float4 _GlobalScalars; // Offset: 96 Size: 16 +// float4 _SSS_MiscParams; // Offset: 112 Size: 16 [unused] +// float4 _WindSimParamsX; // Offset: 128 Size: 16 [unused] +// float4 _WindSimParamsY; // Offset: 144 Size: 16 [unused] +// float2 _RangeDepthCompression; // Offset: 160 Size: 8 [unused] +// float3 _SSS_Color; // Offset: 176 Size: 12 [unused] +// int _BRDFHighQuality; // Offset: 188 Size: 4 [unused] +// +// } +// +// cbuffer ShangrilaOcean +// { +// +// float3 _NormalIncidenceReflectance;// Offset: 0 Size: 12 [unused] +// float3 _ConstantReflectanceFactor; // Offset: 16 Size: 12 [unused] +// float _TexGeoWavesBlendCff; // Offset: 28 Size: 4 +// float4 _NormalMapParams1; // Offset: 32 Size: 16 +// float4 _NormalMapParams2; // Offset: 48 Size: 16 +// float4 _NormalMapParams3; // Offset: 64 Size: 16 +// float4 _NormalMapParams4; // Offset: 80 Size: 16 +// float _NormalsScale; // Offset: 96 Size: 4 [unused] +// float _HighNormalsScale; // Offset: 100 Size: 4 [unused] +// float2 _WavesFade; // Offset: 104 Size: 8 [unused] +// float2 _WavesHiResFade; // Offset: 112 Size: 8 [unused] +// float4 _Octave1Params; // Offset: 128 Size: 16 [unused] +// float2 _Octave1Dir; // Offset: 144 Size: 8 [unused] +// float4 _Octave2Params; // Offset: 160 Size: 16 [unused] +// float2 _Octave2Dir; // Offset: 176 Size: 8 [unused] +// float4 _Octave3Params; // Offset: 192 Size: 16 [unused] +// float2 _Octave3Dir; // Offset: 208 Size: 8 [unused] +// float4 _Octave4Params; // Offset: 224 Size: 16 [unused] +// float2 _Octave4Dir; // Offset: 240 Size: 8 [unused] +// float4 _Octave5Params; // Offset: 256 Size: 16 [unused] +// float2 _Octave5Dir; // Offset: 272 Size: 8 [unused] +// float4 _Octave6Params; // Offset: 288 Size: 16 [unused] +// float2 _Octave6Dir; // Offset: 304 Size: 8 [unused] +// float4 _Octave7Params; // Offset: 320 Size: 16 [unused] +// float2 _Octave7Dir; // Offset: 336 Size: 8 [unused] +// float4 _Octave8Params; // Offset: 352 Size: 16 [unused] +// float2 _Octave8Dir; // Offset: 368 Size: 8 [unused] +// float _DepthDistanceCff; // Offset: 376 Size: 4 [unused] +// float2 _Smoothness; // Offset: 384 Size: 8 [unused] +// float2 _CausticsParams; // Offset: 392 Size: 8 [unused] +// float2 _CausticsDepthFade; // Offset: 400 Size: 8 [unused] +// float2 _CausticsRcpDepthFade; // Offset: 408 Size: 8 [unused] +// float4 _FoamLayer1Params; // Offset: 416 Size: 16 [unused] +// float4 _FoamLayer2Params; // Offset: 432 Size: 16 [unused] +// float4 _FoamSettings; // Offset: 448 Size: 16 [unused] +// float4 _FoamParams; // Offset: 464 Size: 16 [unused] +// float4 _NormalsMaskParams; // Offset: 480 Size: 16 +// float3 _OceanColorShallow; // Offset: 496 Size: 12 [unused] +// float3 _OceanColorDeep; // Offset: 512 Size: 12 [unused] +// float _DampingFadeOut; // Offset: 524 Size: 4 [unused] +// float _ShallowWaterDepth; // Offset: 528 Size: 4 [unused] +// float4 _WavesCrestWeights; // Offset: 544 Size: 16 [unused] +// float _RimLightWidth; // Offset: 560 Size: 4 [unused] +// float _RimLightIntensity; // Offset: 564 Size: 4 [unused] +// float3 _DisplacementParams; // Offset: 576 Size: 12 +// float4 _MaterialPickingID; // Offset: 592 Size: 16 [unused] +// +// } +// +// cbuffer COceanDampingProvider +// { +// +// float4 _HideOceanDampingTexelOffset;// Offset: 0 Size: 16 [unused] +// float4 _WorldScaleAndOffset; // Offset: 16 Size: 16 +// +// } +// +// cbuffer COceanParameterProvider +// { +// +// float4 _CornerPointsWS[4]; // Offset: 0 Size: 64 +// float4 _OceanParameters; // Offset: 64 Size: 16 +// float4 _SkyParameters; // Offset: 80 Size: 16 [unused] +// float4 _VertexAdjustments; // Offset: 96 Size: 16 [unused] +// float4 _WavesAmpHDir_ampVDirOverWL[8];// Offset: 112 Size: 128 [unused] +// float4 _WavesDir_oneOverWL_ampHWL[8];// Offset: 240 Size: 128 [unused] +// float4 _WavesParameters[8]; // Offset: 368 Size: 128 [unused] +// float2 _GridSize; // Offset: 496 Size: 8 [unused] +// float _OneOverWavesFade; // Offset: 504 Size: 4 [unused] +// float _OneOverWavesHiResFade; // Offset: 508 Size: 4 [unused] +// float _WaterLevel; // Offset: 512 Size: 4 +// float _WavesCrestWeightsNorm[4]; // Offset: 528 Size: 52 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// DisplacementTexture__SampObj__ sampler NA NA 0 1 +// DampingTexture__SampObj__ sampler NA NA 1 1 +// DisplacementTexture__TexObj__ texture float4 2d 0 1 +// DampingTexture__TexObj__ texture float4 2d 1 1 +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// CGlobalShaderParameterProvider cbuffer NA NA 1 1 +// ShangrilaOcean cbuffer NA NA 2 1 +// COceanDampingProvider cbuffer NA NA 3 1 +// COceanParameterProvider cbuffer NA NA 4 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// TEXCOORD 0 xyz 1 NONE float xyz +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyz 4 NONE float xyz +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyzw 8 NONE float xyzw +// TEXCOORD 8 xyzw 9 NONE float xyzw +// TEXCOORD 9 xyzw 10 NONE float xyzw +// TEXCOORD 10 xy 11 NONE float xy +// +vs_4_0 +dcl_constantbuffer cb0[44], immediateIndexed +dcl_constantbuffer cb1[7], immediateIndexed +dcl_constantbuffer cb2[37], immediateIndexed +dcl_constantbuffer cb3[2], immediateIndexed +dcl_constantbuffer cb4[33], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xyz +dcl_output o2.xyz +dcl_output o3.xyz +dcl_output o4.xyz +dcl_output o5.xyz +dcl_output o6.xyz +dcl_output o7.xyz +dcl_output o8.xyzw +dcl_output o9.xyzw +dcl_output o10.xyzw +dcl_output o11.xy +dcl_temps 5 +mul r0.x, cb1[6].y, cb2[36].z +mul r0.xyz, r0.xxxx, l(0.050000, -0.005000, 0.025000, 0.000000) +log r0.w, |v0.y| +mul r0.w, r0.w, cb4[4].x +exp r0.w, r0.w +add r1.x, -v0.x, l(1.000000) +mul r1.yzw, r1.xxxx, cb4[2].xxyw +mul r2.xyz, r1.xxxx, cb4[0].xywx +mad r2.xyz, v0.xxxx, cb4[1].xywx, r2.xyzx +mad r1.xyz, v0.xxxx, cb4[3].xywx, r1.yzwy +mul r1.xyz, r0.wwww, r1.xyzx +add r0.w, -r0.w, l(1.000000) +mad r1.xyz, r0.wwww, r2.xyzx, r1.xyzx +div r1.xy, r1.xyxx, r1.zzzz +add r2.xyzw, r1.xyxy, l(0.200000, 0.200000, 0.400000, 0.200000) +mul r3.xyzw, cb2[36].yxxx, l(6.000000, 0.001953, 0.000977, 0.003906) +mad r2.xyzw, r2.xyzw, r3.zzyy, r0.xyyx +sample_l r4.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) +sample_l r2.xyzw, r2.zwzz, t0.xyzw, s0, l(0.000000) +dp3 r0.x, r2.xzyx, l(1.000000, 1.000000, -1.000000, 0.000000) +dp3 r0.y, r4.yzxy, l(1.000000, 1.000000, -1.000000, 0.000000) +add r0.x, r0.x, r0.y +add r0.yw, r1.xxxy, l(0.000000, 0.200000, 0.000000, 0.400000) +mad r0.yz, r0.yywy, r3.wwww, r0.zzzz +sample_l r2.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000) +dp3 r0.y, r2.xyzx, l(1.000000, 1.000000, -1.000000, 0.000000) +add r0.x, r0.y, r0.x +mul r0.x, r3.x, r0.x +mad r0.x, r0.x, l(0.100000), -cb2[36].y +mov r1.z, cb4[32].x +add r0.yzw, r1.xxyz, -cb0[8].xxyz +dp3 r0.y, r0.yzwy, r0.yzwy +sqrt r0.y, r0.y +mul r0.y, r0.y, l(0.001250) +min r0.y, r0.y, l(1.000000) +add r0.y, -r0.y, l(1.000000) +mad r2.xyz, r0.xxxx, r0.yyyy, r1.xyzx +mul r0.x, r0.y, r0.x +mov o10.w, r0.y +mul o10.z, |r0.x|, l(0.250000) +mov o7.xyz, r1.xyzx +mov r2.w, l(1.000000) +dp4 o0.z, r2.xyzw, cb0[42].xyzw +dp4 r0.y, r2.xyzw, cb0[41].xyzw +dp4 r0.x, r2.xyzw, cb0[40].xyzw +dp4 r0.w, r2.xyzw, cb0[43].xyzw +mov o0.xyw, r0.xyxw +add r3.xyz, r2.yzxy, -cb0[8].yzxy +add o3.xyz, -r2.xyzx, cb0[8].xyzx +dp3 r1.z, r3.xyzx, r3.xyzx +rsq r1.z, r1.z +mul r2.yzw, r1.zzzz, r3.xxyz +mov r2.x, l(1.000000) +dp4 r3.x, cb0[20].xyzw, r2.xyzw +dp4 r3.y, cb0[19].xyzw, r2.xyzw +dp4 r3.z, cb0[18].xyzw, r2.xyzw +max o1.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +div o2.z, l(1.000000, 1.000000, 1.000000, 1.000000), cb2[1].w +mov o2.xy, l(0,0,0,0) +mul r2.xyzw, r0.xyww, cb0[16].xyzw +add r1.zw, -r0.xxxy, r0.wwww +add r3.x, r0.x, r0.w +mul r0.x, r3.x, l(0.500000) +mul r0.yz, r1.zzwz, l(0.000000, 0.500000, 0.500000, 0.000000) +add o4.xy, r2.zwzz, r2.xyxx +mov o4.z, r0.w +mov o5.xyz, r0.yzwy +mov o6.xyz, r0.xzwx +mul r0.x, cb1[6].y, cb2[2].y +mul r0.xy, r0.xxxx, cb2[2].zwzz +mad o8.xy, r1.xyxx, cb2[2].xxxx, r0.xyxx +mul r0.x, cb1[6].y, cb2[3].y +mul r0.xy, r0.xxxx, cb2[3].zwzz +mad o8.zw, r1.xxxy, cb2[3].xxxx, r0.xxxy +mul r0.x, cb1[6].y, cb2[4].y +mul r0.xy, r0.xxxx, cb2[4].zwzz +mad o9.xy, r1.xyxx, cb2[4].xxxx, r0.xyxx +mul r0.x, cb1[6].y, cb2[5].y +mul r0.xy, r0.xxxx, cb2[5].zwzz +mad o9.zw, r1.xxxy, cb2[5].xxxx, r0.xxxy +mul r0.x, cb1[6].y, cb2[30].y +mul r0.xy, r0.xxxx, cb2[30].zwzz +mad o10.xy, r1.xyxx, cb2[30].xxxx, r0.xyxx +add r0.xy, r1.xyxx, cb3[1].zwzz +mul r0.xy, r0.xyxx, cb3[1].xyxx +sample_l r0.xyzw, r0.xyxx, t1.xyzw, s1, l(0.000000) +mov o11.x, r0.y +mov o11.y, l(1.000000) +ret +// Approximately 89 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/FC4/ShaderFixes/b9648c2d071a07fc-vs_replace.txt b/FC4/ShaderFixes/b9648c2d071a07fc-vs_replace.txt new file mode 100755 index 000000000..26e30d68e --- /dev/null +++ b/FC4/ShaderFixes/b9648c2d071a07fc-vs_replace.txt @@ -0,0 +1,336 @@ +// Reflected object shader - Candles in Shangri-La + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer SUserClipPlaneParameterProvider : register(b1) +{ + float4 _UserClipPlane : packoffset(c0); +} + +cbuffer CSceneTransformParameterProvider : register(b2) +{ + float4x4 _WorldMatrix : packoffset(c0); + float3 _WorldPositionFractions : packoffset(c4); +} + +cbuffer CSceneGeometry : register(b3) +{ + float4 _GeometryPickingID : packoffset(c0); + float4 _MeshDecompression : packoffset(c1); + float4 _NormalizedXYBBox : packoffset(c2); +} + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + int4 v0 : position0, + int2 v1 : texcoord0, + int2 v2 : texcoord1, + float4 v3 : normal0, + float4 v4 : color0, + float4 v5 : fog0, + float4 v6 : psize0, + out float4 o0 : SV_Position0, + out float o1 : SV_ClipDistance0, + out float4 o2 : TEXCOORD0, + out float4 o3 : TEXCOORD1, + out float4 o4 : TEXCOORD2, + out float3 o5 : TEXCOORD3, + out float3 o6 : TEXCOORD4, + out float3 o7 : TEXCOORD5) +{ + float4 r0,r1,r2,r3,r4; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xyz = _WorldPositionFractions.xyz + -_CameraPositionFractions_ZOffsetWS.xyz; + r1.x = _WorldMatrix._m30; + r1.y = _WorldMatrix._m31; + r1.z = _WorldMatrix._m32; + r2.xyz = -_CameraPosition_DistanceScale.xyz + r1.xyz; + r3.xyz = v0.xyz; + r3.xyz = r3.xyz * _MeshDecompression.yyy + _MeshDecompression.xxx; + r4.x = dot(r3.xyz, _WorldMatrix._m00_m10_m20); + r4.y = dot(r3.xyz, _WorldMatrix._m01_m11_m21); + r4.z = dot(r3.xyz, _WorldMatrix._m02_m12_m22); + r2.xyz = r4.xyz + r2.xyz; + r1.xyz = r4.xyz + r1.xyz; + r0.xyz = r2.xyz + r0.xyz; + r0.w = dot(r0.xyz, r0.xyz); + r0.w = rsqrt(r0.w); + r2.xyz = r0.xyz * r0.www; + r0.xyz = r2.xyz * _CameraPositionFractions_ZOffsetWS.www + r0.xyz; + r0.w = 1.000000000e+000; + o0.x = dot(r0.xyzw, _ViewRotProjectionMatrix._m00_m10_m20_m30); + o0.y = dot(r0.xyzw, _ViewRotProjectionMatrix._m01_m11_m21_m31); + o0.z = dot(r0.xyzw, _ViewRotProjectionMatrix._m02_m12_m22_m32); + o0.w = dot(r0.xyzw, _ViewRotProjectionMatrix._m03_m13_m23_m33); + +float4 stereo = StereoParams.Load(0); +o0.x -= stereo.x * (o0.w - stereo.y) * 2; + + r0.xyz = -_CameraPosition_DistanceScale.xyz + r1.xyz; + r0.w = dot(r0.xyz, r0.xyz); + r0.w = rsqrt(r0.w); + r0.xyz = r0.xyz * r0.www; + r0.xyz = r0.xyz * _CameraPositionFractions_ZOffsetWS.www + r1.xyz; + r0.w = 1.000000000e+000; + o1.x = dot(_UserClipPlane.xyzw, r0.xyzw); + r1.xy = v1.xy; + o2.xy = r1.xy * _MeshDecompression.ww + _MeshDecompression.zz; + r1.xy = v2.xy; + o2.zw = r1.xy * _MeshDecompression.ww + _MeshDecompression.zz; + r0.w = max(v4.w, _AmbientOcclusionRanges_SunOcclusionFactor.x); + r0.w = min(r0.w, _AmbientOcclusionRanges_SunOcclusionFactor.y); + r0.w = -_AmbientOcclusionRanges_SunOcclusionFactor.x + r0.w; + o3.w = _AmbientOcclusionRanges_SunOcclusionFactor.z * r0.w; + o3.xyz = v4.xyz; + r1.xyz = -_CameraPosition_DistanceScale.xyz + r0.xyz; + o4.xyz = r0.xyz; + r0.x = dot(r1.xyz, r1.xyz); + r0.x = sqrt(r0.x); + r0.x = min(r0.x, 6.000000000e+000); + o4.w = -r0.x * 1.666666716e-001 + 1.000000000e+000; + r0.xyz = v3.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o5.x = dot(r0.xyz, _WorldMatrix._m00_m10_m20); + o5.y = dot(r0.xyz, _WorldMatrix._m01_m11_m21); + o5.z = dot(r0.xyz, _WorldMatrix._m02_m12_m22); + r0.xyz = v6.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o6.x = dot(r0.xyz, _WorldMatrix._m00_m10_m20); + o6.y = dot(r0.xyz, _WorldMatrix._m01_m11_m21); + o6.z = dot(r0.xyz, _WorldMatrix._m02_m12_m22); + r0.xyz = v5.xyz * float3(2.000000e+000,2.000000e+000,2.000000e+000) + float3(-1.000000e+000,-1.000000e+000,-1.000000e+000); + o7.x = dot(r0.xyz, _WorldMatrix._m00_m10_m20); + o7.y = dot(r0.xyz, _WorldMatrix._m01_m11_m21); + o7.z = dot(r0.xyz, _WorldMatrix._m02_m12_m22); + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 [unused] +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 [unused] +// float4 _FogSHG; // Offset: 304 Size: 16 [unused] +// float4 _FogSHR; // Offset: 320 Size: 16 [unused] +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer SUserClipPlaneParameterProvider +// { +// +// float4 _UserClipPlane; // Offset: 0 Size: 16 +// +// } +// +// cbuffer CSceneTransformParameterProvider +// { +// +// float4x4 _WorldMatrix; // Offset: 0 Size: 64 +// float3 _WorldPositionFractions; // Offset: 64 Size: 12 +// +// } +// +// cbuffer CSceneGeometry +// { +// +// float4 _GeometryPickingID; // Offset: 0 Size: 16 [unused] +// float4 _MeshDecompression; // Offset: 16 Size: 16 +// float4 _NormalizedXYBBox; // Offset: 32 Size: 16 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// SUserClipPlaneParameterProvider cbuffer NA NA 1 1 +// CSceneTransformParameterProvider cbuffer NA NA 2 1 +// CSceneGeometry cbuffer NA NA 3 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE int xyz +// texcoord 0 xy 1 NONE int xy +// texcoord 1 xy 2 NONE int xy +// normal 0 xyzw 3 NONE float xyz +// color 0 xyzw 4 NONE float xyzw +// fog 0 xyzw 5 NONE float xyz +// psize 0 xyzw 6 NONE float xyz +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// SV_ClipDistance 0 x 1 CLIPDST float x +// TEXCOORD 0 xyzw 2 NONE float xyzw +// TEXCOORD 1 xyzw 3 NONE float xyzw +// TEXCOORD 2 xyzw 4 NONE float xyzw +// TEXCOORD 3 xyz 5 NONE float xyz +// TEXCOORD 4 xyz 6 NONE float xyz +// TEXCOORD 5 xyz 7 NONE float xyz +// +vs_5_0 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb0[48], immediateIndexed +dcl_constantbuffer cb1[1], immediateIndexed +dcl_constantbuffer cb2[5], immediateIndexed +dcl_constantbuffer cb3[2], immediateIndexed +dcl_input v0.xyz +dcl_input v1.xy +dcl_input v2.xy +dcl_input v3.xyz +dcl_input v4.xyzw +dcl_input v5.xyz +dcl_input v6.xyz +dcl_output_siv o0.xyzw, position +dcl_output_siv o1.x, clip_distance +dcl_output o2.xyzw +dcl_output o3.xyzw +dcl_output o4.xyzw +dcl_output o5.xyz +dcl_output o6.xyz +dcl_output o7.xyz +dcl_temps 5 +add r0.xyz, -cb0[6].xyzx, cb2[4].xyzx +mov r1.x, cb2[0].w +mov r1.y, cb2[1].w +mov r1.z, cb2[2].w +add r2.xyz, r1.xyzx, -cb0[8].xyzx +itof r3.xyz, v0.xyzx +mad r3.xyz, r3.xyzx, cb3[1].yyyy, cb3[1].xxxx +dp3 r4.x, r3.xyzx, cb2[0].xyzx +dp3 r4.y, r3.xyzx, cb2[1].xyzx +dp3 r4.z, r3.xyzx, cb2[2].xyzx +add r2.xyz, r2.xyzx, r4.xyzx +add r1.xyz, r1.xyzx, r4.xyzx +add r0.xyz, r0.xyzx, r2.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +rsq r0.w, r0.w +mul r2.xyz, r0.wwww, r0.xyzx +mad r0.xyz, r2.xyzx, cb0[6].wwww, r0.xyzx +mov r0.w, l(1.000000) +dp4 o0.x, r0.xyzw, cb0[44].xyzw +dp4 o0.y, r0.xyzw, cb0[45].xyzw +dp4 o0.z, r0.xyzw, cb0[46].xyzw +dp4 o0.w, r0.xyzw, cb0[47].xyzw +add r0.xyz, r1.xyzx, -cb0[8].xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +rsq r0.w, r0.w +mul r0.xyz, r0.wwww, r0.xyzx +mad r0.xyz, r0.xyzx, cb0[6].wwww, r1.xyzx +mov r0.w, l(1.000000) +dp4 o1.x, cb1[0].xyzw, r0.xyzw +itof r1.xy, v1.xyxx +mad o2.xy, r1.xyxx, cb3[1].wwww, cb3[1].zzzz +itof r1.xy, v2.xyxx +mad o2.zw, r1.xxxy, cb3[1].wwww, cb3[1].zzzz +max r0.w, v4.w, cb0[1].x +min r0.w, r0.w, cb0[1].y +add r0.w, r0.w, -cb0[1].x +mul o3.w, r0.w, cb0[1].z +mov o3.xyz, v4.xyzx +add r1.xyz, r0.xyzx, -cb0[8].xyzx +mov o4.xyz, r0.xyzx +dp3 r0.x, r1.xyzx, r1.xyzx +sqrt r0.x, r0.x +min r0.x, r0.x, l(6.000000) +mad o4.w, -r0.x, l(0.166667), l(1.000000) +mad r0.xyz, v3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o5.x, r0.xyzx, cb2[0].xyzx +dp3 o5.y, r0.xyzx, cb2[1].xyzx +dp3 o5.z, r0.xyzx, cb2[2].xyzx +mad r0.xyz, v6.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o6.x, r0.xyzx, cb2[0].xyzx +dp3 o6.y, r0.xyzx, cb2[1].xyzx +dp3 o6.z, r0.xyzx, cb2[2].xyzx +mad r0.xyz, v5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +dp3 o7.x, r0.xyzx, cb2[0].xyzx +dp3 o7.y, r0.xyzx, cb2[1].xyzx +dp3 o7.z, r0.xyzx, cb2[2].xyzx +ret +// Approximately 57 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/FC4/ShaderFixes/f60674a810f41b33-vs_replace.txt b/FC4/ShaderFixes/f60674a810f41b33-vs_replace.txt new file mode 100755 index 000000000..6592acb6e --- /dev/null +++ b/FC4/ShaderFixes/f60674a810f41b33-vs_replace.txt @@ -0,0 +1,552 @@ +// Water at end of Shangri-La (MSAA2, distant) + +cbuffer CViewportShaderParameterProvider : register(b0) +{ + float4 _AmbientColorMultiplier : packoffset(c0); + float4 _AmbientOcclusionRanges_SunOcclusionFactor : packoffset(c1); + float4 _BloomAdaptationFactor : packoffset(c2); + float4 _CameraDirection_FOVDeg : packoffset(c3); + float4 _CameraDistances : packoffset(c4); + float4 _CameraNearPlaneSize : packoffset(c5); + float4 _CameraPositionFractions_ZOffsetWS : packoffset(c6); + float4 _CameraPositionFractions_ZOffsetWS_Previous : packoffset(c7); + float4 _CameraPosition_DistanceScale : packoffset(c8); + float4 _CameraPosition_DistanceScale_Previous : packoffset(c9); + float4x4 _CullingViewProjectionMatrix : packoffset(c10); + float4 _DepthScale : packoffset(c14); + float4 _DepthTextureRcpSize : packoffset(c15); + float4 _DepthTextureScaleOffset : packoffset(c16); + float4 _FogParams : packoffset(c17); + float4 _FogSHB : packoffset(c18); + float4 _FogSHG : packoffset(c19); + float4 _FogSHR : packoffset(c20); + float4 _HeightFogParams : packoffset(c21); + float4x4 _InvProjectionMatrix : packoffset(c22); + float4x4 _InvViewMatrix : packoffset(c26); + float4x4 _ProjectionMatrix : packoffset(c30); + float4 _TempSunDirection : packoffset(c34); + float4x4 _ViewMatrix : packoffset(c35); + float4 _ViewPoint_ShadowProjDepthMin : packoffset(c39); + float4x4 _ViewProjectionMatrix : packoffset(c40); + float4x4 _ViewRotProjectionMatrix : packoffset(c44); + float4x4 _ViewRotProjectionMatrix_Previous : packoffset(c48); + float4 _ViewportSize : packoffset(c52); + float2 _MotionVectorOffsets : packoffset(c53); + float3 _CameraRight : packoffset(c54); + float3 _CameraUp : packoffset(c55); + float3 _EnvironmentMapColorOffset : packoffset(c56); + float3 _EnvironmentMapColorScale : packoffset(c57); +} + +cbuffer CGlobalShaderParameterProvider : register(b1) +{ + float4 _BurnColor : packoffset(c0); + float4 _BurnParams : packoffset(c1); + float4 _BurnParams2 : packoffset(c2); + float4 _BurnParams3 : packoffset(c3); + float4 _CascadedShadowScaleOffsetTile0 : packoffset(c4); + float4 _CascadedShadowScaleOffsetTile1 : packoffset(c5); + float4 _GlobalScalars : packoffset(c6); + float4 _SSS_MiscParams : packoffset(c7); + float4 _WindSimParamsX : packoffset(c8); + float4 _WindSimParamsY : packoffset(c9); + float2 _RangeDepthCompression : packoffset(c10); + float3 _SSS_Color : packoffset(c11); + int _BRDFHighQuality : packoffset(c11.w); +} + +cbuffer ShangrilaOcean : register(b2) +{ + float3 _NormalIncidenceReflectance : packoffset(c0); + float3 _ConstantReflectanceFactor : packoffset(c1); + float _TexGeoWavesBlendCff : packoffset(c1.w); + float4 _NormalMapParams1 : packoffset(c2); + float4 _NormalMapParams2 : packoffset(c3); + float4 _NormalMapParams3 : packoffset(c4); + float4 _NormalMapParams4 : packoffset(c5); + float _NormalsScale : packoffset(c6); + float _HighNormalsScale : packoffset(c6.y); + float2 _WavesFade : packoffset(c6.z); + float2 _WavesHiResFade : packoffset(c7); + float4 _Octave1Params : packoffset(c8); + float2 _Octave1Dir : packoffset(c9); + float4 _Octave2Params : packoffset(c10); + float2 _Octave2Dir : packoffset(c11); + float4 _Octave3Params : packoffset(c12); + float2 _Octave3Dir : packoffset(c13); + float4 _Octave4Params : packoffset(c14); + float2 _Octave4Dir : packoffset(c15); + float4 _Octave5Params : packoffset(c16); + float2 _Octave5Dir : packoffset(c17); + float4 _Octave6Params : packoffset(c18); + float2 _Octave6Dir : packoffset(c19); + float4 _Octave7Params : packoffset(c20); + float2 _Octave7Dir : packoffset(c21); + float4 _Octave8Params : packoffset(c22); + float2 _Octave8Dir : packoffset(c23); + float _DepthDistanceCff : packoffset(c23.z); + float2 _Smoothness : packoffset(c24); + float2 _CausticsParams : packoffset(c24.z); + float2 _CausticsDepthFade : packoffset(c25); + float2 _CausticsRcpDepthFade : packoffset(c25.z); + float4 _FoamLayer1Params : packoffset(c26); + float4 _FoamLayer2Params : packoffset(c27); + float4 _FoamSettings : packoffset(c28); + float4 _FoamParams : packoffset(c29); + float4 _NormalsMaskParams : packoffset(c30); + float3 _OceanColorShallow : packoffset(c31); + float3 _OceanColorDeep : packoffset(c32); + float _DampingFadeOut : packoffset(c32.w); + float _ShallowWaterDepth : packoffset(c33); + float4 _WavesCrestWeights : packoffset(c34); + float _RimLightWidth : packoffset(c35); + float _RimLightIntensity : packoffset(c35.y); + float3 _DisplacementParams : packoffset(c36); + float4 _MaterialPickingID : packoffset(c37); +} + +cbuffer COceanDampingProvider : register(b3) +{ + float4 _HideOceanDampingTexelOffset : packoffset(c0); + float4 _WorldScaleAndOffset : packoffset(c1); +} + +cbuffer COceanParameterProvider : register(b4) +{ + float4 _CornerPointsWS[4] : packoffset(c0); + float4 _OceanParameters : packoffset(c4); + float4 _SkyParameters : packoffset(c5); + float4 _VertexAdjustments : packoffset(c6); + float4 _WavesAmpHDir_ampVDirOverWL[8] : packoffset(c7); + float4 _WavesDir_oneOverWL_ampHWL[8] : packoffset(c15); + float4 _WavesParameters[8] : packoffset(c23); + float2 _GridSize : packoffset(c31); + float _OneOverWavesFade : packoffset(c31.z); + float _OneOverWavesHiResFade : packoffset(c31.w); + float _WaterLevel : packoffset(c32); + float _WavesCrestWeightsNorm[4] : packoffset(c33); +} +SamplerState DisplacementTexture__SampObj___s : register(s0); +SamplerState DampingTexture__SampObj___s : register(s1); +Texture2D DisplacementTexture__TexObj__ : register(t0); +Texture2D DampingTexture__TexObj__ : register(t1); + +Texture2D StereoParams : register(t125); +Texture1D IniParams : register(t120); + +void main( + float4 v0 : position0, + out float4 o0 : SV_Position0, + out float3 o1 : TEXCOORD0, + out float3 o2 : TEXCOORD1, + out float3 o3 : TEXCOORD2, + out float3 o4 : TEXCOORD3, + out float3 o5 : TEXCOORD4, + out float3 o6 : TEXCOORD5, + out float3 o7 : TEXCOORD6, + out float4 o8 : TEXCOORD7, + out float4 o9 : TEXCOORD8, + out float4 o10 : TEXCOORD9, + out float2 o11 : TEXCOORD10) +{ + float4 r0,r1,r2,r3; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = _DisplacementParams.z * _GlobalScalars.y; + r0.xyz = float3(5.000000e-002,-5.000000e-003,2.500000e-002) * r0.xxx; + r0.w = log2(abs(v0.y)); + r0.w = _OceanParameters.x * r0.w; + r0.w = exp2(r0.w); + r1.x = 1.000000000e+000 + -v0.x; + r1.yzw = _CornerPointsWS[2].xyw * r1.xxx; + r2.xyz = _CornerPointsWS[0].xyw * r1.xxx; + r2.xyz = v0.xxx * _CornerPointsWS[1].xyw + r2.xyz; + r1.xyz = v0.xxx * _CornerPointsWS[3].xyw + r1.yzw; + r1.xyz = r1.xyz * r0.www; + r0.w = 1.000000000e+000 + -r0.w; + r1.xyz = r0.www * r2.xyz + r1.xyz; + r1.xy = r1.xy / r1.zz; + r2.xyzw = float4(2.000000e-001,2.000000e-001,4.000000e-001,2.000000e-001) + r1.xyxy; + r3.xyzw = float4(6.000000e+000,1.953125e-003,9.765625e-004,3.906250e-003) * _DisplacementParams.yxxx; + r2.xyzw = r2.xyzw * r3.zzyy + r0.xyyx; + r0.xyw = DisplacementTexture__TexObj__.SampleLevel(DisplacementTexture__SampObj___s, r2.xy, 0.000000000e+000).xyz; + r2.xyz = DisplacementTexture__TexObj__.SampleLevel(DisplacementTexture__SampObj___s, r2.zw, 0.000000000e+000).xyz; + r1.w = dot(r2.xzy, float3(1.000000e+000,1.000000e+000,-1.000000e+000)); + r0.x = dot(r0.ywx, float3(1.000000e+000,1.000000e+000,-1.000000e+000)); + r0.x = r0.x + r1.w; + r0.yw = float2(2.000000e-001,4.000000e-001) + r1.xy; + r0.yz = r0.yw * r3.ww + r0.zz; + r0.yzw = DisplacementTexture__TexObj__.SampleLevel(DisplacementTexture__SampObj___s, r0.yz, 0.000000000e+000).xyz; + r0.y = dot(r0.yzw, float3(1.000000e+000,1.000000e+000,-1.000000e+000)); + r0.x = r0.x + r0.y; + r0.x = r0.x * r3.x; + r0.x = r0.x * 1.000000015e-001 + -_DisplacementParams.y; + r1.z = _WaterLevel; + r0.yzw = -_CameraPosition_DistanceScale.xyz + r1.xyz; + r0.y = dot(r0.yzw, r0.yzw); + r0.y = sqrt(r0.y); + r0.y = 1.249999972e-003 * r0.y; + r0.y = min(r0.y, 1.000000000e+000); + r0.y = 1.000000000e+000 + -r0.y; + r2.xyz = r0.xxx * r0.yyy + r1.xyz; + r0.x = r0.x * r0.y; + o10.w = r0.y; + o10.z = 2.500000000e-001 * abs(r0.x); + o7.xyz = r1.xyz; + r2.w = 1.000000000e+000; + o0.z = dot(r2.xyzw, _ViewProjectionMatrix._m02_m12_m22_m32); + r0.y = dot(r2.xyzw, _ViewProjectionMatrix._m01_m11_m21_m31); + r0.x = dot(r2.xyzw, _ViewProjectionMatrix._m00_m10_m20_m30); + r0.w = dot(r2.xyzw, _ViewProjectionMatrix._m03_m13_m23_m33); + o0.xyw = r0.xyw; + +float4 stereo = StereoParams.Load(0); +r0.x += stereo.x * (r0.w - stereo.y); + + r3.xyz = -_CameraPosition_DistanceScale.yzx + r2.yzx; + o3.xyz = _CameraPosition_DistanceScale.xyz + -r2.xyz; + r1.z = dot(r3.xyz, r3.xyz); + r1.z = rsqrt(r1.z); + r2.yzw = r3.xyz * r1.zzz; + r2.x = 1.000000000e+000; + r3.x = dot(_FogSHR.xyzw, r2.xyzw); + r3.y = dot(_FogSHG.xyzw, r2.xyzw); + r3.z = dot(_FogSHB.xyzw, r2.xyzw); + o1.xyz = max(r3.xyz, float3(0.000000e+000,0.000000e+000,0.000000e+000)); + o2.z = 1.000000e+000 / _TexGeoWavesBlendCff; + o2.xy = float2(0.000000e+000,0.000000e+000); + r2.xyzw = _DepthTextureScaleOffset.xyzw * r0.xyww; + r1.zw = r0.ww + -r0.xy; + r3.x = r0.w + r0.x; + r0.x = 5.000000000e-001 * r3.x; + r0.yz = float2(5.000000e-001,5.000000e-001) * r1.zw; + o4.xy = r2.xy + r2.zw; + o4.z = r0.w; + o5.xyz = r0.yzw; + o6.xyz = r0.xzw; + r0.x = _NormalMapParams1.y * _GlobalScalars.y; + r0.xy = _NormalMapParams1.zw * r0.xx; + o8.xy = r1.xy * _NormalMapParams1.xx + r0.xy; + r0.x = _NormalMapParams2.y * _GlobalScalars.y; + r0.xy = _NormalMapParams2.zw * r0.xx; + o8.zw = r1.xy * _NormalMapParams2.xx + r0.xy; + r0.x = _NormalMapParams3.y * _GlobalScalars.y; + r0.xy = _NormalMapParams3.zw * r0.xx; + o9.xy = r1.xy * _NormalMapParams3.xx + r0.xy; + r0.x = _NormalMapParams4.y * _GlobalScalars.y; + r0.xy = _NormalMapParams4.zw * r0.xx; + o9.zw = r1.xy * _NormalMapParams4.xx + r0.xy; + r0.x = _NormalsMaskParams.y * _GlobalScalars.y; + r0.xy = _NormalsMaskParams.zw * r0.xx; + o10.xy = r1.xy * _NormalsMaskParams.xx + r0.xy; + r0.xy = _WorldScaleAndOffset.zw + r1.xy; + r0.xy = _WorldScaleAndOffset.xy * r0.xy; + r0.x = DampingTexture__TexObj__.SampleLevel(DampingTexture__SampObj___s, r0.xy, 0.000000000e+000).y; + o11.x = r0.x; + o11.y = 1.000000000e+000; + return; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// +// Buffer Definitions: +// +// cbuffer CViewportShaderParameterProvider +// { +// +// float4 _AmbientColorMultiplier; // Offset: 0 Size: 16 [unused] +// float4 _AmbientOcclusionRanges_SunOcclusionFactor;// Offset: 16 Size: 16 [unused] +// float4 _BloomAdaptationFactor; // Offset: 32 Size: 16 [unused] +// float4 _CameraDirection_FOVDeg; // Offset: 48 Size: 16 [unused] +// float4 _CameraDistances; // Offset: 64 Size: 16 [unused] +// float4 _CameraNearPlaneSize; // Offset: 80 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS;// Offset: 96 Size: 16 [unused] +// float4 _CameraPositionFractions_ZOffsetWS_Previous;// Offset: 112 Size: 16 [unused] +// float4 _CameraPosition_DistanceScale;// Offset: 128 Size: 16 +// float4 _CameraPosition_DistanceScale_Previous;// Offset: 144 Size: 16 [unused] +// float4x4 _CullingViewProjectionMatrix;// Offset: 160 Size: 64 [unused] +// float4 _DepthScale; // Offset: 224 Size: 16 [unused] +// float4 _DepthTextureRcpSize; // Offset: 240 Size: 16 [unused] +// float4 _DepthTextureScaleOffset; // Offset: 256 Size: 16 +// float4 _FogParams; // Offset: 272 Size: 16 [unused] +// float4 _FogSHB; // Offset: 288 Size: 16 +// float4 _FogSHG; // Offset: 304 Size: 16 +// float4 _FogSHR; // Offset: 320 Size: 16 +// float4 _HeightFogParams; // Offset: 336 Size: 16 [unused] +// float4x4 _InvProjectionMatrix; // Offset: 352 Size: 64 [unused] +// float4x4 _InvViewMatrix; // Offset: 416 Size: 64 [unused] +// float4x4 _ProjectionMatrix; // Offset: 480 Size: 64 [unused] +// float4 _TempSunDirection; // Offset: 544 Size: 16 [unused] +// float4x4 _ViewMatrix; // Offset: 560 Size: 64 [unused] +// float4 _ViewPoint_ShadowProjDepthMin;// Offset: 624 Size: 16 [unused] +// float4x4 _ViewProjectionMatrix; // Offset: 640 Size: 64 +// float4x4 _ViewRotProjectionMatrix; // Offset: 704 Size: 64 [unused] +// float4x4 _ViewRotProjectionMatrix_Previous;// Offset: 768 Size: 64 [unused] +// float4 _ViewportSize; // Offset: 832 Size: 16 [unused] +// float2 _MotionVectorOffsets; // Offset: 848 Size: 8 [unused] +// float3 _CameraRight; // Offset: 864 Size: 12 [unused] +// float3 _CameraUp; // Offset: 880 Size: 12 [unused] +// float3 _EnvironmentMapColorOffset; // Offset: 896 Size: 12 [unused] +// float3 _EnvironmentMapColorScale; // Offset: 912 Size: 12 [unused] +// +// } +// +// cbuffer CGlobalShaderParameterProvider +// { +// +// float4 _BurnColor; // Offset: 0 Size: 16 [unused] +// float4 _BurnParams; // Offset: 16 Size: 16 [unused] +// float4 _BurnParams2; // Offset: 32 Size: 16 [unused] +// float4 _BurnParams3; // Offset: 48 Size: 16 [unused] +// float4 _CascadedShadowScaleOffsetTile0;// Offset: 64 Size: 16 [unused] +// float4 _CascadedShadowScaleOffsetTile1;// Offset: 80 Size: 16 [unused] +// float4 _GlobalScalars; // Offset: 96 Size: 16 +// float4 _SSS_MiscParams; // Offset: 112 Size: 16 [unused] +// float4 _WindSimParamsX; // Offset: 128 Size: 16 [unused] +// float4 _WindSimParamsY; // Offset: 144 Size: 16 [unused] +// float2 _RangeDepthCompression; // Offset: 160 Size: 8 [unused] +// float3 _SSS_Color; // Offset: 176 Size: 12 [unused] +// int _BRDFHighQuality; // Offset: 188 Size: 4 [unused] +// +// } +// +// cbuffer ShangrilaOcean +// { +// +// float3 _NormalIncidenceReflectance;// Offset: 0 Size: 12 [unused] +// float3 _ConstantReflectanceFactor; // Offset: 16 Size: 12 [unused] +// float _TexGeoWavesBlendCff; // Offset: 28 Size: 4 +// float4 _NormalMapParams1; // Offset: 32 Size: 16 +// float4 _NormalMapParams2; // Offset: 48 Size: 16 +// float4 _NormalMapParams3; // Offset: 64 Size: 16 +// float4 _NormalMapParams4; // Offset: 80 Size: 16 +// float _NormalsScale; // Offset: 96 Size: 4 [unused] +// float _HighNormalsScale; // Offset: 100 Size: 4 [unused] +// float2 _WavesFade; // Offset: 104 Size: 8 [unused] +// float2 _WavesHiResFade; // Offset: 112 Size: 8 [unused] +// float4 _Octave1Params; // Offset: 128 Size: 16 [unused] +// float2 _Octave1Dir; // Offset: 144 Size: 8 [unused] +// float4 _Octave2Params; // Offset: 160 Size: 16 [unused] +// float2 _Octave2Dir; // Offset: 176 Size: 8 [unused] +// float4 _Octave3Params; // Offset: 192 Size: 16 [unused] +// float2 _Octave3Dir; // Offset: 208 Size: 8 [unused] +// float4 _Octave4Params; // Offset: 224 Size: 16 [unused] +// float2 _Octave4Dir; // Offset: 240 Size: 8 [unused] +// float4 _Octave5Params; // Offset: 256 Size: 16 [unused] +// float2 _Octave5Dir; // Offset: 272 Size: 8 [unused] +// float4 _Octave6Params; // Offset: 288 Size: 16 [unused] +// float2 _Octave6Dir; // Offset: 304 Size: 8 [unused] +// float4 _Octave7Params; // Offset: 320 Size: 16 [unused] +// float2 _Octave7Dir; // Offset: 336 Size: 8 [unused] +// float4 _Octave8Params; // Offset: 352 Size: 16 [unused] +// float2 _Octave8Dir; // Offset: 368 Size: 8 [unused] +// float _DepthDistanceCff; // Offset: 376 Size: 4 [unused] +// float2 _Smoothness; // Offset: 384 Size: 8 [unused] +// float2 _CausticsParams; // Offset: 392 Size: 8 [unused] +// float2 _CausticsDepthFade; // Offset: 400 Size: 8 [unused] +// float2 _CausticsRcpDepthFade; // Offset: 408 Size: 8 [unused] +// float4 _FoamLayer1Params; // Offset: 416 Size: 16 [unused] +// float4 _FoamLayer2Params; // Offset: 432 Size: 16 [unused] +// float4 _FoamSettings; // Offset: 448 Size: 16 [unused] +// float4 _FoamParams; // Offset: 464 Size: 16 [unused] +// float4 _NormalsMaskParams; // Offset: 480 Size: 16 +// float3 _OceanColorShallow; // Offset: 496 Size: 12 [unused] +// float3 _OceanColorDeep; // Offset: 512 Size: 12 [unused] +// float _DampingFadeOut; // Offset: 524 Size: 4 [unused] +// float _ShallowWaterDepth; // Offset: 528 Size: 4 [unused] +// float4 _WavesCrestWeights; // Offset: 544 Size: 16 [unused] +// float _RimLightWidth; // Offset: 560 Size: 4 [unused] +// float _RimLightIntensity; // Offset: 564 Size: 4 [unused] +// float3 _DisplacementParams; // Offset: 576 Size: 12 +// float4 _MaterialPickingID; // Offset: 592 Size: 16 [unused] +// +// } +// +// cbuffer COceanDampingProvider +// { +// +// float4 _HideOceanDampingTexelOffset;// Offset: 0 Size: 16 [unused] +// float4 _WorldScaleAndOffset; // Offset: 16 Size: 16 +// +// } +// +// cbuffer COceanParameterProvider +// { +// +// float4 _CornerPointsWS[4]; // Offset: 0 Size: 64 +// float4 _OceanParameters; // Offset: 64 Size: 16 +// float4 _SkyParameters; // Offset: 80 Size: 16 [unused] +// float4 _VertexAdjustments; // Offset: 96 Size: 16 [unused] +// float4 _WavesAmpHDir_ampVDirOverWL[8];// Offset: 112 Size: 128 [unused] +// float4 _WavesDir_oneOverWL_ampHWL[8];// Offset: 240 Size: 128 [unused] +// float4 _WavesParameters[8]; // Offset: 368 Size: 128 [unused] +// float2 _GridSize; // Offset: 496 Size: 8 [unused] +// float _OneOverWavesFade; // Offset: 504 Size: 4 [unused] +// float _OneOverWavesHiResFade; // Offset: 508 Size: 4 [unused] +// float _WaterLevel; // Offset: 512 Size: 4 +// float _WavesCrestWeightsNorm[4]; // Offset: 528 Size: 52 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim Slot Elements +// ------------------------------ ---------- ------- ----------- ---- -------- +// DisplacementTexture__SampObj__ sampler NA NA 0 1 +// DampingTexture__SampObj__ sampler NA NA 1 1 +// DisplacementTexture__TexObj__ texture float4 2d 0 1 +// DampingTexture__TexObj__ texture float4 2d 1 1 +// CViewportShaderParameterProvider cbuffer NA NA 0 1 +// CGlobalShaderParameterProvider cbuffer NA NA 1 1 +// ShangrilaOcean cbuffer NA NA 2 1 +// COceanDampingProvider cbuffer NA NA 3 1 +// COceanParameterProvider cbuffer NA NA 4 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// position 0 xyzw 0 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyzw +// TEXCOORD 0 xyz 1 NONE float xyz +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyz 4 NONE float xyz +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyzw 8 NONE float xyzw +// TEXCOORD 8 xyzw 9 NONE float xyzw +// TEXCOORD 9 xyzw 10 NONE float xyzw +// TEXCOORD 10 xy 11 NONE float xy +// +vs_4_1 +dcl_globalFlags refactoringAllowed +dcl_constantbuffer cb0[44], immediateIndexed +dcl_constantbuffer cb1[7], immediateIndexed +dcl_constantbuffer cb2[37], immediateIndexed +dcl_constantbuffer cb3[2], immediateIndexed +dcl_constantbuffer cb4[33], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xyz +dcl_output o2.xyz +dcl_output o3.xyz +dcl_output o4.xyz +dcl_output o5.xyz +dcl_output o6.xyz +dcl_output o7.xyz +dcl_output o8.xyzw +dcl_output o9.xyzw +dcl_output o10.xyzw +dcl_output o11.xy +dcl_temps 4 +mul r0.x, cb1[6].y, cb2[36].z +mul r0.xyz, r0.xxxx, l(0.050000, -0.005000, 0.025000, 0.000000) +log r0.w, |v0.y| +mul r0.w, r0.w, cb4[4].x +exp r0.w, r0.w +add r1.x, -v0.x, l(1.000000) +mul r1.yzw, r1.xxxx, cb4[2].xxyw +mul r2.xyz, r1.xxxx, cb4[0].xywx +mad r2.xyz, v0.xxxx, cb4[1].xywx, r2.xyzx +mad r1.xyz, v0.xxxx, cb4[3].xywx, r1.yzwy +mul r1.xyz, r0.wwww, r1.xyzx +add r0.w, -r0.w, l(1.000000) +mad r1.xyz, r0.wwww, r2.xyzx, r1.xyzx +div r1.xy, r1.xyxx, r1.zzzz +add r2.xyzw, r1.xyxy, l(0.200000, 0.200000, 0.400000, 0.200000) +mul r3.xyzw, cb2[36].yxxx, l(6.000000, 0.001953, 0.000977, 0.003906) +mad r2.xyzw, r2.xyzw, r3.zzyy, r0.xyyx +sample_l r0.xyw, r2.xyxx, t0.xywz, s0, l(0.000000) +sample_l r2.xyz, r2.zwzz, t0.xyzw, s0, l(0.000000) +dp3 r1.w, r2.xzyx, l(1.000000, 1.000000, -1.000000, 0.000000) +dp3 r0.x, r0.ywxy, l(1.000000, 1.000000, -1.000000, 0.000000) +add r0.x, r1.w, r0.x +add r0.yw, r1.xxxy, l(0.000000, 0.200000, 0.000000, 0.400000) +mad r0.yz, r0.yywy, r3.wwww, r0.zzzz +sample_l r0.yzw, r0.yzyy, t0.wxyz, s0, l(0.000000) +dp3 r0.y, r0.yzwy, l(1.000000, 1.000000, -1.000000, 0.000000) +add r0.x, r0.y, r0.x +mul r0.x, r3.x, r0.x +mad r0.x, r0.x, l(0.100000), -cb2[36].y +mov r1.z, cb4[32].x +add r0.yzw, r1.xxyz, -cb0[8].xxyz +dp3 r0.y, r0.yzwy, r0.yzwy +sqrt r0.y, r0.y +mul r0.y, r0.y, l(0.001250) +min r0.y, r0.y, l(1.000000) +add r0.y, -r0.y, l(1.000000) +mad r2.xyz, r0.xxxx, r0.yyyy, r1.xyzx +mul r0.x, r0.y, r0.x +mov o10.w, r0.y +mul o10.z, |r0.x|, l(0.250000) +mov o7.xyz, r1.xyzx +mov r2.w, l(1.000000) +dp4 o0.z, r2.xyzw, cb0[42].xyzw +dp4 r0.y, r2.xyzw, cb0[41].xyzw +dp4 r0.x, r2.xyzw, cb0[40].xyzw +dp4 r0.w, r2.xyzw, cb0[43].xyzw +mov o0.xyw, r0.xyxw +add r3.xyz, r2.yzxy, -cb0[8].yzxy +add o3.xyz, -r2.xyzx, cb0[8].xyzx +dp3 r1.z, r3.xyzx, r3.xyzx +rsq r1.z, r1.z +mul r2.yzw, r1.zzzz, r3.xxyz +mov r2.x, l(1.000000) +dp4 r3.x, cb0[20].xyzw, r2.xyzw +dp4 r3.y, cb0[19].xyzw, r2.xyzw +dp4 r3.z, cb0[18].xyzw, r2.xyzw +max o1.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +div o2.z, l(1.000000, 1.000000, 1.000000, 1.000000), cb2[1].w +mov o2.xy, l(0,0,0,0) +mul r2.xyzw, r0.xyww, cb0[16].xyzw +add r1.zw, -r0.xxxy, r0.wwww +add r3.x, r0.x, r0.w +mul r0.x, r3.x, l(0.500000) +mul r0.yz, r1.zzwz, l(0.000000, 0.500000, 0.500000, 0.000000) +add o4.xy, r2.zwzz, r2.xyxx +mov o4.z, r0.w +mov o5.xyz, r0.yzwy +mov o6.xyz, r0.xzwx +mul r0.x, cb1[6].y, cb2[2].y +mul r0.xy, r0.xxxx, cb2[2].zwzz +mad o8.xy, r1.xyxx, cb2[2].xxxx, r0.xyxx +mul r0.x, cb1[6].y, cb2[3].y +mul r0.xy, r0.xxxx, cb2[3].zwzz +mad o8.zw, r1.xxxy, cb2[3].xxxx, r0.xxxy +mul r0.x, cb1[6].y, cb2[4].y +mul r0.xy, r0.xxxx, cb2[4].zwzz +mad o9.xy, r1.xyxx, cb2[4].xxxx, r0.xyxx +mul r0.x, cb1[6].y, cb2[5].y +mul r0.xy, r0.xxxx, cb2[5].zwzz +mad o9.zw, r1.xxxy, cb2[5].xxxx, r0.xxxy +mul r0.x, cb1[6].y, cb2[30].y +mul r0.xy, r0.xxxx, cb2[30].zwzz +mad o10.xy, r1.xyxx, cb2[30].xxxx, r0.xyxx +add r0.xy, r1.xyxx, cb3[1].zwzz +mul r0.xy, r0.xyxx, cb3[1].xyxx +sample_l r0.x, r0.xyxx, t1.yxzw, s1, l(0.000000) +mov o11.x, r0.x +mov o11.y, l(1.000000) +ret +// Approximately 89 instruction slots used + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/