3Dmigoto now open-source...
  96 / 141    
@lacuna I just take a look at the ini from the Watch Dogs 2 fix...and i think is because the fix use this line: [code]get_resolution_from = depth_stencil[/code] You can change to this: [code]get_resolution_from = swap_chain[/code] The Upscaling should probably works...BUT there is a chance that some stuff in the fix will be broken, you need to test. Reading the pull from github, i think the upscaling needs to use "swap_chain".
@lacuna
I just take a look at the ini from the Watch Dogs 2 fix...and i think is because the fix use this line:

get_resolution_from = depth_stencil


You can change to this:
get_resolution_from = swap_chain


The Upscaling should probably works...BUT there is a chance that some stuff in the fix will be broken, you need to test. Reading the pull from github, i think the upscaling needs to use "swap_chain".

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 07/11/2017 05:55 PM   
Tried some games with 3DMigoto 1.2.63: - The Crew, upscaling works great from 1440p to 4K with updated fix, no issues. - Assassin Creed Unity stuck with the splash screen, doesn't start. - RoT Tomb Raider, no 3DV fix just 3DMigoto 1.2.63 with enabled upscale, crashes at start. Edit: @DHR, I will try. Edit 2: Changed the line to "swap_chain", but still black screen as before.
Tried some games with 3DMigoto 1.2.63:

- The Crew, upscaling works great from 1440p to 4K with updated fix, no issues.

- Assassin Creed Unity stuck with the splash screen, doesn't start.

- RoT Tomb Raider, no 3DV fix just 3DMigoto 1.2.63 with enabled upscale, crashes at start.

Edit: @DHR, I will try.

Edit 2: Changed the line to "swap_chain", but still black screen as before.

Asus Deluxe Gen3, Core i7 2700k@4.5Ghz, GTX 1080Ti, 16 GB RAM, Win 7 64bit
Samsung Pro 250 GB SSD, 4 TB WD Black (games)
Benq XL2720Z

Posted 07/11/2017 05:57 PM   
Tried two more games: - Assassin's Creed Syndicate works without an issue with upscaling from 1440p to 2160p. - The Technomancer, game works but upscaling doesn't work, tried different combinations with upscaling settings but no change, interleaving lines are broken.
Tried two more games:

- Assassin's Creed Syndicate works without an issue with upscaling from 1440p to 2160p.

- The Technomancer, game works but upscaling doesn't work, tried different combinations with upscaling settings but no change, interleaving lines are broken.

Asus Deluxe Gen3, Core i7 2700k@4.5Ghz, GTX 1080Ti, 16 GB RAM, Win 7 64bit
Samsung Pro 250 GB SSD, 4 TB WD Black (games)
Benq XL2720Z

Posted 07/11/2017 07:04 PM   
The upscaling is a new feature....and probably will not works flawless with all games. A good idea is to open a thread for this (like SBS have) and post results and wich games works...so we can have all the info in one place and the feature can be improved. Watch Dog 2 will probably works....i suppose there is something missing or the ini is not properly configured...because if the vanilla 1.2.63 works..should works also with the fix combined.
The upscaling is a new feature....and probably will not works flawless with all games.
A good idea is to open a thread for this (like SBS have) and post results and wich games works...so we can have all the info in one place and the feature can be improved.

Watch Dog 2 will probably works....i suppose there is something missing or the ini is not properly configured...because if the vanilla 1.2.63 works..should works also with the fix combined.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 07/11/2017 10:20 PM   
Probably with a little more development upscaling will work for %90 of the games. Opening a new thread is a good idea. I'm suspecting mostly from my system for Watch Dogs 2, we'll see the real cause if someone else tries it. BTW, tried RoT Tomb Raider again and able to start it without crashing but only renders in one eye, the other one is black. Using "allow_create_device=1" prevents crashing but 3D is broken as I described.
Probably with a little more development upscaling will work for %90 of the games. Opening a new thread is a good idea.

I'm suspecting mostly from my system for Watch Dogs 2, we'll see the real cause if someone else tries it.

BTW, tried RoT Tomb Raider again and able to start it without crashing but only renders in one eye, the other one is black. Using "allow_create_device=1" prevents crashing but 3D is broken as I described.

Asus Deluxe Gen3, Core i7 2700k@4.5Ghz, GTX 1080Ti, 16 GB RAM, Win 7 64bit
Samsung Pro 250 GB SSD, 4 TB WD Black (games)
Benq XL2720Z

Posted 07/11/2017 11:46 PM   
[quote="lacuna"]-Install the original fix - Done, multiple times. 1) Replace the dxd11.dll and nvapi64.dll - Done, twice 2) Copy upscalevs.hlsl and upscaleps.hlsl in ShaderFixes folder. - Done, twice 3) Copy the lines related to upscaling in the d3dx.ini - Done, multiple times. 4) Setup the lines for upscaling method. - Done, every time. I heard the "boop" sound before adding .hlsl files and before adding this very long line which starting with"; The following custom shader can be used to perform upscaling " After doing everything right (or hoping right) no "boop" sound, just black screen with visible black ingame mouse cursor, 3DV overlay and sound. As I said in my first message with just 3DMigoto 1.2.63 (without the fix) game works right and upscales right from 1440p to 2160p. If somebody else can get upscaling work with a 4K TV then my system is guilty or I'm still doing something wrong. :) If somebody manages to work it, please share your d3dx.ini file fpr Watch Dogs 2.[/quote] @lacuna: Unfortunatelly i dont have watch dogs 2 to test the game with it. It can be that the game uses different method to create swap chain. [quote="lacuna"]Tried some games with 3DMigoto 1.2.63: - The Crew, upscaling works great from 1440p to 4K with updated fix, no issues. - Assassin Creed Unity stuck with the splash screen, doesn't start. - RoT Tomb Raider, no 3DV fix just 3DMigoto 1.2.63 with enabled upscale, crashes at start. Edit: @DHR, I will try. Edit 2: Changed the line to "swap_chain", but still black screen as before.[/quote] - Assassins creed unity: will take look at it. (correct me if im wrong but the game has no 3dvision fix as far as i know? do you use compatibility mode? I ve never tried the upscaling mode with compatibility 3d vision mode.) -Tomb Raider: ( the 2013 game) The game does not run even with disabled upscaling mode, at least on my system (Seems to be another issue) Rise of tomb raider: should actually work (will take a look at it). - The Technomancer: donst have the game cant test it. (It is possible that the game uses another method to create swap chain. (At least the sympthoms would match). There are bunch of them. We currently support only one! But cant say it for sure!) @DHR it should make no difference for the upscaling what is used get_resolution_from = swap_chain or get_resolution_from = depth_stencil. In worst case the hunting overlay will be on the wrong place! Edit: Watch Dogs 2. try to run the game without the actuall fix. ==> uninstall the fix and copy the new 3DMigoto version without fixed shader. (but take care of the config file, it need to be proper set up) It is possible that the fix is incompatible with the current version of the upscaling feature Generally, the upscaling feature is very ugly to program, because it hacks the handling of the window. Different game engines uses different methods to influence the window size, fullscreen mode ect. And sometimes if you set up something for one game it breaks another game. There are also games like Rysen Sons of Rome (or GTA V) that (can) do the upscaling by itself. I ll try my best to support as many games as possible, but can not promize to support the all. I hope it is understandable. Never tested the feature on a SLI system, Dont have one!
lacuna said:-Install the original fix - Done, multiple times.
1) Replace the dxd11.dll and nvapi64.dll - Done, twice
2) Copy upscalevs.hlsl and upscaleps.hlsl in ShaderFixes folder. - Done, twice
3) Copy the lines related to upscaling in the d3dx.ini - Done, multiple times.
4) Setup the lines for upscaling method. - Done, every time.

I heard the "boop" sound before adding .hlsl files and before adding this very long line which starting with"; The following custom shader can be used to perform upscaling "

After doing everything right (or hoping right) no "boop" sound, just black screen with visible black ingame mouse cursor, 3DV overlay and sound.

As I said in my first message with just 3DMigoto 1.2.63 (without the fix) game works right and upscales right from 1440p to 2160p.

If somebody else can get upscaling work with a 4K TV then my system is guilty or I'm still doing something wrong. :) If somebody manages to work it, please share your d3dx.ini file fpr Watch Dogs 2.


@lacuna:
Unfortunatelly i dont have watch dogs 2 to test the game with it. It can be that the game uses different method to create swap chain.

lacuna said:Tried some games with 3DMigoto 1.2.63:

- The Crew, upscaling works great from 1440p to 4K with updated fix, no issues.

- Assassin Creed Unity stuck with the splash screen, doesn't start.

- RoT Tomb Raider, no 3DV fix just 3DMigoto 1.2.63 with enabled upscale, crashes at start.

Edit: @DHR, I will try.

Edit 2: Changed the line to "swap_chain", but still black screen as before.


- Assassins creed unity: will take look at it. (correct me if im wrong but the game has no 3dvision fix as far as i know? do you use compatibility mode? I ve never tried the upscaling mode with compatibility 3d vision mode.)

-Tomb Raider: ( the 2013 game) The game does not run even with disabled upscaling mode, at least on my system (Seems to be another issue)

Rise of tomb raider: should actually work (will take a look at it).

- The Technomancer: donst have the game cant test it. (It is possible that the game uses another method to create swap chain. (At least the sympthoms would match). There are bunch of them. We currently support only one! But cant say it for sure!)

@DHR it should make no difference for the upscaling what is used get_resolution_from = swap_chain or get_resolution_from = depth_stencil. In worst case the hunting overlay will be on the wrong place!

Edit: Watch Dogs 2. try to run the game without the actuall fix. ==> uninstall the fix and copy the new 3DMigoto version without fixed shader. (but take care of the config file, it need to be proper set up) It is possible that the fix is incompatible with the current version of the upscaling feature

Generally, the upscaling feature is very ugly to program, because it hacks the handling of the window. Different game engines uses different methods to influence the window size, fullscreen mode ect. And sometimes if you set up something for one game it breaks another game. There are also games like Rysen Sons of Rome (or GTA V) that (can) do the upscaling by itself.

I ll try my best to support as many games as possible, but can not promize to support the all. I hope it is understandable.

Never tested the feature on a SLI system, Dont have one!

Posted 07/12/2017 08:43 AM   
double post sorry
double post sorry

Posted 07/12/2017 08:44 AM   
[quote="lacuna"]... Opening a new thread is a good idea... [/quote] is it opened now? if yes could you provide the link to it. Thank you!
lacuna said:... Opening a new thread is a good idea...


is it opened now? if yes could you provide the link to it.
Thank you!

Posted 07/12/2017 08:56 AM   
[quote="ColAngel"][quote="lacuna"]... Opening a new thread is a good idea... [/quote] is it opened now? if yes could you provide the link to it. Thank you![/quote] done it by my self: https://forums.geforce.com/default/topic/1017999/3d-vision/3dmigoto-upscaling-feature/
ColAngel said:
lacuna said:... Opening a new thread is a good idea...


is it opened now? if yes could you provide the link to it.
Thank you!


done it by my self:

https://forums.geforce.com/default/topic/1017999/3d-vision/3dmigoto-upscaling-feature/

Posted 07/12/2017 10:59 AM   
@ColAngel, I (We) am already greatful for upscaling feature, you already made it much easier for us to enjoy games like every other developers and shader hackers. So if you can't develope it anymore or not much, no problem, whatever we get is good enough. And thanks so much again to you and to all awesome developers and shaderhackers. Yes, AC Unity is using CM, also AC Syndicate too. For Watchdogs 2 I already tried your advise, unfortunately not working for me. I'll add my test results to upscaling thread.
@ColAngel, I (We) am already greatful for upscaling feature, you already made it much easier for us to enjoy games like every other developers and shader hackers. So if you can't develope it anymore or not much, no problem, whatever we get is good enough. And thanks so much again to you and to all awesome developers and shaderhackers.

Yes, AC Unity is using CM, also AC Syndicate too. For Watchdogs 2 I already tried your advise, unfortunately not working for me.

I'll add my test results to upscaling thread.

Asus Deluxe Gen3, Core i7 2700k@4.5Ghz, GTX 1080Ti, 16 GB RAM, Win 7 64bit
Samsung Pro 250 GB SSD, 4 TB WD Black (games)
Benq XL2720Z

Posted 07/12/2017 02:48 PM   
I've got a weird i/o registers mismatch between a vs/ps pair. Is it caused by improper dumping, or is it game developer's fault? 1ecc449335817698 vs [code] // ---- Created with 3Dmigoto v1.2.63 on Sat Jul 15 19:47:46 2017 cbuffer _Globals : register(b0) { float HDRRange : packoffset(c29); float4x4 model : packoffset(c30); float4x4 modelViewProj : packoffset(c34); float2 AmbientLightMapScale : packoffset(c38); float4x4 modelView : packoffset(c39); float4x4 prevViewProj : packoffset(c43); float4x4 prevModel : packoffset(c47); float4 normalParams1 : packoffset(c51); float4 normalParams2 : packoffset(c52); float4 normalParams3 : packoffset(c53); float4 normalParams4 : packoffset(c54); float timer : packoffset(c55); float3 shoreColour : packoffset(c55.y); float4 shoreParams1 : packoffset(c56); float3 shoreParams2 : packoffset(c57); float blendValue : packoffset(c57.w); float4 specularParams : packoffset(c58); float4 waveParams : packoffset(c59); float4 interactiveParams2 : packoffset(c60); float4 interactiveParams3 : packoffset(c61); float4 interactiveParams4 : packoffset(c62); float4 tesselationAmount : packoffset(c63); } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float3 v1 : NORMAL0, float3 v2 : TANGENT0, float3 v3 : BINORMAL0, float4 v4 : COLOR0, float3 v5 : TEXCOORD0, out float4 o0 : WORLDPOS0, out float3 o1 : NORMAL0, out float3 o2 : TANGENT0, out float3 o3 : BINORMAL0, out float4 o4 : COLOR0, out float4 o5 : TEXCOORD0) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; o0.xyzw = v0.xyzw; o1.xyz = v1.xyz; o2.xyz = v2.xyz; o3.xyz = v3.xyz; o4.xyzw = v4.xyzw; r0.xyz = v1.xyz + v0.xyz; r1.xyz = modelViewProj._m01_m11_m31 * r0.yyy; r0.xyw = modelViewProj._m00_m10_m30 * r0.xxx + r1.xyz; r0.xyz = modelViewProj._m02_m12_m32 * r0.zzz + r0.xyw; r0.xyz = modelViewProj._m03_m13_m33 * v0.www + r0.xyz; r0.xy = r0.xy / r0.zz; r1.xyz = modelViewProj._m01_m11_m31 * v0.yyy; r1.xyz = modelViewProj._m00_m10_m30 * v0.xxx + r1.xyz; r1.xyz = modelViewProj._m02_m12_m32 * v0.zzz + r1.xyz; r1.xyz = modelViewProj._m03_m13_m33 * v0.www + r1.xyz; r0.zw = r1.xy / r1.zz; r0.xy = r0.xy + -r0.zw; r0.x = dot(r0.xy, r0.xy); r0.x = sqrt(r0.x); o5.w = saturate(r0.x / tesselationAmount.z); o5.xyz = v5.xyz; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.63 on Sat Jul 15 19:47:46 2017 // // // Buffer Definitions: // // cbuffer $Globals // { // // float HDRRange; // Offset: 464 Size: 4 [unused] // float4x4 model; // Offset: 480 Size: 64 [unused] // float4x4 modelViewProj; // Offset: 544 Size: 64 // float2 AmbientLightMapScale; // Offset: 608 Size: 8 [unused] // float4x4 modelView; // Offset: 624 Size: 64 [unused] // float4x4 prevViewProj; // Offset: 688 Size: 64 [unused] // float4x4 prevModel; // Offset: 752 Size: 64 [unused] // float4 normalParams1; // Offset: 816 Size: 16 [unused] // float4 normalParams2; // Offset: 832 Size: 16 [unused] // float4 normalParams3; // Offset: 848 Size: 16 [unused] // float4 normalParams4; // Offset: 864 Size: 16 [unused] // float timer; // Offset: 880 Size: 4 [unused] // float3 shoreColour; // Offset: 884 Size: 12 [unused] // float4 shoreParams1; // Offset: 896 Size: 16 [unused] // float3 shoreParams2; // Offset: 912 Size: 12 [unused] // float blendValue; // Offset: 924 Size: 4 [unused] // float4 specularParams; // Offset: 928 Size: 16 [unused] // float4 waveParams; // Offset: 944 Size: 16 [unused] // float4 interactiveParams2; // Offset: 960 Size: 16 [unused] // float4 interactiveParams3; // Offset: 976 Size: 16 [unused] // float4 interactiveParams4; // Offset: 992 Size: 16 [unused] // float4 tesselationAmount; // Offset: 1008 Size: 16 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // $Globals cbuffer NA NA 0 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // NORMAL 0 xyz 1 NONE float xyz // TANGENT 0 xyz 2 NONE float xyz // BINORMAL 0 xyz 3 NONE float xyz // COLOR 0 xyzw 4 NONE float xyzw // TEXCOORD 0 xyz 5 NONE float xyz // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // WORLDPOS 0 xyzw 0 NONE float xyzw // NORMAL 0 xyz 1 NONE float xyz // TANGENT 0 xyz 2 NONE float xyz // BINORMAL 0 xyz 3 NONE float xyz // COLOR 0 xyzw 4 NONE float xyzw // TEXCOORD 0 xyzw 5 NONE float xyzw // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[64], immediateIndexed dcl_input v0.xyzw dcl_input v1.xyz dcl_input v2.xyz dcl_input v3.xyz dcl_input v4.xyzw dcl_input v5.xyz dcl_output o0.xyzw dcl_output o1.xyz dcl_output o2.xyz dcl_output o3.xyz dcl_output o4.xyzw dcl_output o5.xyzw dcl_temps 2 mov o0.xyzw, v0.xyzw mov o1.xyz, v1.xyzx mov o2.xyz, v2.xyzx mov o3.xyz, v3.xyzx mov o4.xyzw, v4.xyzw add r0.xyz, v0.xyzx, v1.xyzx mul r1.xyz, r0.yyyy, cb0[35].xywx mad r0.xyw, cb0[34].xyxw, r0.xxxx, r1.xyxz mad r0.xyz, cb0[36].xywx, r0.zzzz, r0.xywx mad r0.xyz, cb0[37].xywx, v0.wwww, r0.xyzx div r0.xy, r0.xyxx, r0.zzzz mul r1.xyz, v0.yyyy, cb0[35].xywx mad r1.xyz, cb0[34].xywx, v0.xxxx, r1.xyzx mad r1.xyz, cb0[36].xywx, v0.zzzz, r1.xyzx mad r1.xyz, cb0[37].xywx, v0.wwww, r1.xyzx div r0.zw, r1.xxxy, r1.zzzz add r0.xy, -r0.zwzz, r0.xyxx dp2 r0.x, r0.xyxx, r0.xyxx sqrt r0.x, r0.x div_sat o5.w, r0.x, cb0[63].z mov o5.xyz, v5.xyzx ret // Approximately 22 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] 8e9eb4c3365a3491 ps [code] // ---- Created with 3Dmigoto v1.2.63 on Sat Jul 15 19:58:05 2017 cbuffer _Globals : register(b0) { float HDRRange : packoffset(c29); float2 AmbientLightMapScale : packoffset(c29.y); float4 normalParams1 : packoffset(c30); float4 normalParams2 : packoffset(c31); float4 normalParams3 : packoffset(c32); float4 normalParams4 : packoffset(c33); float timer : packoffset(c34); float3 shoreColour : packoffset(c34.y); float4 shoreParams1 : packoffset(c35); float3 shoreParams2 : packoffset(c36); float4 screenProj : packoffset(c37); float4 fresnelParams : packoffset(c38); float4 horizonColour : packoffset(c39); float4 nadirColour : packoffset(c40); float4 interactiveParams1 : packoffset(c41); float4 interactiveParams5 : packoffset(c42); float4 waterShadowBlend : packoffset(c43); float4 decodeParam : packoffset(c44); float4 sparkleParams : packoffset(c45); float4 sparkleParams2 : packoffset(c46); float blendValue : packoffset(c47); float4 specularParams : packoffset(c48); float4 waveParams : packoffset(c49); float4 interactiveParams2 : packoffset(c50); float4 interactiveParams3 : packoffset(c51); float4 interactiveParams4 : packoffset(c52); } cbuffer RenderTargetConstantBuffer : register(b2) { float4 viewportDimensions : packoffset(c0); } cbuffer CameraParamsConstantBuffer : register(b3) { float4x4 projection : packoffset(c0); float4x4 viewProjection : packoffset(c4); row_major float3x4 view : packoffset(c8); row_major float3x4 viewI : packoffset(c11); float3 eyePositionWS : packoffset(c14); float4x4 inverseProj : packoffset(c15); bool leftEye : packoffset(c19); bool padding3[3] : packoffset(c20); } cbuffer PerFrameConstantBuffer : register(b1) { float4 colorBufferEncodingParams : packoffset(c0); float4 envMapEncodingParams : packoffset(c1); float4 velocityEncodingParams : packoffset(c2); float4 snowEffectsParam2 : packoffset(c3); float4 sunDirectionAndTime : packoffset(c4); float4 sunColour : packoffset(c5); float4 skylightColour : packoffset(c6); float4 ambientOcclusionScales : packoffset(c7); float4 backlightColour : packoffset(c8); float4 specularScales : packoffset(c9); float3 specularDirection : packoffset(c10); float4 specularColourAndMultiplier : packoffset(c11); float4 fogColour : packoffset(c12); float4 fogParams : packoffset(c13); float4 hazeParams : packoffset(c14); float4 hazeParams2 : packoffset(c15); float4 nightLightmapParam1 : packoffset(c16); float4 nightLightmapParam2 : packoffset(c17); float4 wetLightingParam : packoffset(c18); float4 snowEffectsParam : packoffset(c19); float4 ambientColour : packoffset(c20); float4 shadowBlend : packoffset(c21); float4 maskParams : packoffset(c22); float4 deferredSpecularParams : packoffset(c23); } SamplerState TWaterRippleMap_s : register(s0); SamplerState TNormalMap_s : register(s1); SamplerState DepthMap_s : register(s2); SamplerState ReflectionMap_s : register(s3); SamplerState ReflectionMap2_s : register(s4); SamplerState TMaskMap_s : register(s5); SamplerState TWaveFront_s : register(s6); SamplerState TShadowMask_s : register(s10); Texture2D<float4> DepthMap : register(t0); Texture2D<float4> TWaterRippleMap : register(t1); Texture2D<float4> TNormalMap : register(t2); Texture2D<float4> ReflectionMap : register(t3); Texture2D<float4> ReflectionMap2 : register(t4); Texture2D<float4> TShadowMask : register(t5); Texture2D<float4> TMaskMap : register(t6); Texture2D<float4> TWaveFront : register(t7); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_Position0, float4 v1 : COLOR1, float4 v2 : TEXCOORD0, float4 v3 : TEXCOORD1, linear centroid float4 v4 : TEXCOORD2, linear centroid float4 v5 : TEXCOORD3, linear centroid float4 v6 : TEXCOORD4, linear centroid float4 v7 : TEXCOORD5, float4 v8 : TEXCOORD6, linear centroid float4 v9 : TEXCOORD7, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5; uint4 bitmask, uiDest; float4 fDest; r0.xy = TWaterRippleMap.Sample(TWaterRippleMap_s, v9.xy).yz; r0.xy = float2(0.00196078443,0.00196078443) + r0.xy; r0.xy = r0.xy * float2(2,2) + float2(-1,-1); r1.xy = v8.xy / v8.ww; r1.z = 1 + -r1.y; r0.z = DepthMap.Sample(DepthMap_s, r1.xz).x; r0.z = screenProj.z + r0.z; r0.z = screenProj.w / r0.z; r0.w = v9.z + -r0.z; r0.z = -v9.z + r0.z; r0.z = saturate(waveParams.w * abs(r0.z)); r1.y = 0.100000001 + r0.w; r0.w = dot(r0.ww, interactiveParams1.zz); r1.w = cmp(0 < r1.y); r1.y = cmp(r1.y < 0); r1.y = (int)-r1.y + (int)r1.w; r1.y = (int)r1.y; r1.y = saturate(r1.y); r1.w = min(0, -r0.w); r0.w = saturate(r0.w); r0.w = max(r1.y, r0.w); r1.w = exp2(r1.w); r1.w = 1 + -r1.w; r1.y = max(r1.y, r1.w); r0.xy = r1.yy * r0.xy; r2.xy = interactiveParams5.xx * r0.xy; r0.xy = interactiveParams1.xx * r0.xy; r0.xy = max(float2(-1,-1), r0.xy); r0.xy = min(float2(1,1), r0.xy); r0.xy = interactiveParams1.yy * r0.xy; r3.xyzw = specularParams.wwww * normalParams2.xxyy; r3.xyzw = r2.xyxy / r3.xyzw; r2.xy = r2.xy / normalParams2.zz; r2.xy = v6.xy + r2.xy; r2.xyz = TNormalMap.Sample(TNormalMap_s, r2.xy).xyz; r2.xyz = r2.xzy * float3(2,2,2) + float3(-1,-1,-1); r3.xyzw = v5.xyzw + r3.xyzw; r4.xyz = TNormalMap.Sample(TNormalMap_s, r3.zw).xyz; r3.xyz = TNormalMap.Sample(TNormalMap_s, r3.xy).xyz; r3.xyz = r3.xzy * float3(2,2,2) + float3(-1,-1,-1); r4.xyz = r4.xzy * float3(2,2,2) + float3(-1,-1,-1); r4.xyz = normalParams3.yyy * r4.xyz; r3.xyz = normalParams3.xxx * r3.xyz + r4.xyz; r2.xyz = normalParams3.zzz * r2.xyz + r3.xyz; r2.xz = r0.xy * r2.yy + r2.xz; r0.x = dot(r2.xyz, r2.xyz); r0.x = rsqrt(r0.x); r2.xyz = r2.xyz * r0.xxx; r2.xyz = normalParams3.www * r2.xyz; r3.xyz = -eyePositionWS.xyz + v7.xyz; r0.x = dot(r3.xyz, r3.xyz); r0.y = sqrt(r0.x); r0.x = saturate(r0.x * shadowBlend.x + shadowBlend.y); r3.xyz = r3.xyz / r0.yyy; r0.y = -sparkleParams2.z + r0.y; r1.w = dot(r3.xyz, r2.xyz); r1.w = saturate(1 + r1.w); r3.xyz = -nadirColour.xyz + horizonColour.xyz; r3.xyz = r1.www * r3.xyz + nadirColour.xyz; r4.xyz = shoreColour.xyz + -r3.xyz; r3.xyz = v4.www * r4.xyz + r3.xyz; r2.y = saturate(maskParams.w); r2.w = 1 + -r2.y; r0.x = r2.w * r0.x; r4.y = v8.w + -v8.y; r4.zw = maskParams.xx * viewportDimensions.zw; r4.x = v8.x; r4.xy = v8.ww * r4.zw + r4.xy; r4.xy = r4.xy / v8.ww; r4.xyzw = TShadowMask.Sample(TShadowMask_s, r4.xy).xyzw; r2.w = 1 + -r4.x; r2.w = r2.y * r2.w + r4.x; r3.w = 1 + -r2.w; r0.x = r0.x * r3.w + r2.w; r2.w = 1 + -r0.x; r0.x = r0.z * r2.w + r0.x; r4.xyz = maskParams.www * r4.yzw + -r0.xxx; r4.xyz = r2.yyy * r4.xyz + r0.xxx; r5.xyz = r4.xyz * r3.xyz; r3.xyz = -r3.xyz * r4.xyz + shoreParams2.zzz; r4.xyzw = normalParams4.xyzw + v7.xzxz; r4.xyzw = sparkleParams2.xxxx * r4.xyzw; r4.xyzw = specularParams.wwww * r4.xyzw; r4.xyzw = float4(0.0500000007,0.0500000007,0.0500000007,0.0500000007) * r4.xyzw; r0.x = TMaskMap.Sample(TMaskMap_s, r4.xy).x; r0.z = TMaskMap.Sample(TMaskMap_s, r4.zw).z; r0.x = r0.x + r0.z; r4.xyzw = shoreParams1.xyzw + v7.xzxz; r4.xyzw = shoreParams2.xxyy * r4.xyzw; r4.xyzw = float4(0.0500000007,0.0500000007,0.0500000007,0.0500000007) * r4.xyzw; r2.yw = TWaveFront.Sample(TWaveFront_s, r4.xy).yz; r4.xy = TWaveFront.Sample(TWaveFront_s, r4.zw).yz; r0.z = r4.y + r2.w; r2.y = r4.x * r2.y; r0.z = v4.w * r0.z; r0.z = r0.x * r0.z; r2.w = r2.y * r0.z; r0.z = -r2.y * r0.z + 1; r3.xyz = r2.www * r3.xyz + r5.xyz; r2.y = interactiveParams4.z * 0.300000012; r2.w = interactiveParams4.w * 0.300000012 + -r2.y; r2.y = r1.w * r2.w + r2.y; r1.w = log2(r1.w); r1.w = fresnelParams.z * r1.w; r1.w = exp2(r1.w); r1.xz = saturate(r2.xz * r2.yy + r1.xz); r2.xyzw = ReflectionMap.Sample(ReflectionMap_s, r1.xz).xyzw; r4.xyzw = ReflectionMap2.Sample(ReflectionMap2_s, r1.xz).xyzw; r2.xyzw = leftEye ? r2.xyzw : r4.xyzw; r4.xyz = colorBufferEncodingParams.yyy * r2.xyz; r2.xyz = r2.xyz * colorBufferEncodingParams.www + float3(1,1,1); r2.xyz = r4.xyz / r2.xyz; r2.xyz = r2.xyz + -r3.xyz; r1.x = fresnelParams.y + -fresnelParams.x; r1.x = r1.w * r1.x + fresnelParams.x; r1.x = r1.x * r2.w; r1.x = r1.x * r0.z; r1.xzw = r1.xxx * r2.xyz + r3.xyz; r2.x = sparkleParams2.w + -sparkleParams2.z; r0.y = saturate(r0.y / r2.x); r0.y = 1 + -r0.y; r0.y = sparkleParams.x * r0.y; r0.x = r0.y * r0.x; r2.xy = sparkleParams.yy * v7.zx; r2.xy = float2(0.0500000007,0.0500000007) * r2.xy; r2.zw = waveParams.xy * timer; r3.xy = r2.zw * normalParams1.ww + r2.yx; r2.xy = r2.zw * normalParams2.ww + r2.xy; r0.y = TMaskMap.Sample(TMaskMap_s, r2.xy).y; r2.x = TMaskMap.Sample(TMaskMap_s, r3.xy).y; r0.x = r2.x * r0.x; r0.x = r0.x * r0.y; r0.xyz = r0.xxx * r0.zzz + r1.xzw; r0.xyz = r0.xyz * v1.www + v1.xyz; r1.xzw = colorBufferEncodingParams.zzz * r0.xyz; r0.xyz = r0.xyz * colorBufferEncodingParams.xxx + float3(1,1,1); o0.xyz = r1.xzw / r0.xyz; r0.x = saturate(v9.w); r0.x = min(r0.x, r1.y); o0.w = r0.x * r0.w; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.63 on Sat Jul 15 19:58:05 2017 // // // Buffer Definitions: // // cbuffer $Globals // { // // float HDRRange; // Offset: 464 Size: 4 [unused] // float2 AmbientLightMapScale; // Offset: 468 Size: 8 [unused] // float4 normalParams1; // Offset: 480 Size: 16 // float4 normalParams2; // Offset: 496 Size: 16 // float4 normalParams3; // Offset: 512 Size: 16 // float4 normalParams4; // Offset: 528 Size: 16 // float timer; // Offset: 544 Size: 4 // float3 shoreColour; // Offset: 548 Size: 12 // float4 shoreParams1; // Offset: 560 Size: 16 // float3 shoreParams2; // Offset: 576 Size: 12 // float4 screenProj; // Offset: 592 Size: 16 // float4 fresnelParams; // Offset: 608 Size: 16 // float4 horizonColour; // Offset: 624 Size: 16 // float4 nadirColour; // Offset: 640 Size: 16 // float4 interactiveParams1; // Offset: 656 Size: 16 // float4 interactiveParams5; // Offset: 672 Size: 16 // float4 waterShadowBlend; // Offset: 688 Size: 16 [unused] // float4 decodeParam; // Offset: 704 Size: 16 [unused] // float4 sparkleParams; // Offset: 720 Size: 16 // float4 sparkleParams2; // Offset: 736 Size: 16 // float blendValue; // Offset: 752 Size: 4 [unused] // float4 specularParams; // Offset: 768 Size: 16 // float4 waveParams; // Offset: 784 Size: 16 // float4 interactiveParams2; // Offset: 800 Size: 16 [unused] // float4 interactiveParams3; // Offset: 816 Size: 16 [unused] // float4 interactiveParams4; // Offset: 832 Size: 16 // // } // // cbuffer RenderTargetConstantBuffer // { // // float4 viewportDimensions; // Offset: 0 Size: 16 // // } // // cbuffer CameraParamsConstantBuffer // { // // float4x4 projection; // Offset: 0 Size: 64 [unused] // float4x4 viewProjection; // Offset: 64 Size: 64 [unused] // row_major float3x4 view; // Offset: 128 Size: 48 [unused] // row_major float3x4 viewI; // Offset: 176 Size: 48 [unused] // float3 eyePositionWS; // Offset: 224 Size: 12 // float4x4 inverseProj; // Offset: 240 Size: 64 [unused] // bool leftEye; // Offset: 304 Size: 4 // bool padding3[3]; // Offset: 320 Size: 36 [unused] // // } // // cbuffer PerFrameConstantBuffer // { // // float4 colorBufferEncodingParams; // Offset: 0 Size: 16 // float4 envMapEncodingParams; // Offset: 16 Size: 16 [unused] // float4 velocityEncodingParams; // Offset: 32 Size: 16 [unused] // float4 snowEffectsParam2; // Offset: 48 Size: 16 [unused] // float4 sunDirectionAndTime; // Offset: 64 Size: 16 [unused] // float4 sunColour; // Offset: 80 Size: 16 [unused] // float4 skylightColour; // Offset: 96 Size: 16 [unused] // float4 ambientOcclusionScales; // Offset: 112 Size: 16 [unused] // float4 backlightColour; // Offset: 128 Size: 16 [unused] // float4 specularScales; // Offset: 144 Size: 16 [unused] // float3 specularDirection; // Offset: 160 Size: 12 [unused] // float4 specularColourAndMultiplier;// Offset: 176 Size: 16 [unused] // float4 fogColour; // Offset: 192 Size: 16 [unused] // float4 fogParams; // Offset: 208 Size: 16 [unused] // float4 hazeParams; // Offset: 224 Size: 16 [unused] // float4 hazeParams2; // Offset: 240 Size: 16 [unused] // float4 nightLightmapParam1; // Offset: 256 Size: 16 [unused] // float4 nightLightmapParam2; // Offset: 272 Size: 16 [unused] // float4 wetLightingParam; // Offset: 288 Size: 16 [unused] // float4 snowEffectsParam; // Offset: 304 Size: 16 [unused] // float4 ambientColour; // Offset: 320 Size: 16 [unused] // float4 shadowBlend; // Offset: 336 Size: 16 // float4 maskParams; // Offset: 352 Size: 16 // float4 deferredSpecularParams; // Offset: 368 Size: 16 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // TWaterRippleMap sampler NA NA 0 1 // TNormalMap sampler NA NA 1 1 // DepthMap sampler NA NA 2 1 // ReflectionMap sampler NA NA 3 1 // ReflectionMap2 sampler NA NA 4 1 // TMaskMap sampler NA NA 5 1 // TWaveFront sampler NA NA 6 1 // TShadowMask sampler NA NA 10 1 // DepthMap texture float4 2d 0 1 // TWaterRippleMap texture float4 2d 1 1 // TNormalMap texture float4 2d 2 1 // ReflectionMap texture float4 2d 3 1 // ReflectionMap2 texture float4 2d 4 1 // TShadowMask texture float4 2d 5 1 // TMaskMap texture float4 2d 6 1 // TWaveFront texture float4 2d 7 1 // $Globals cbuffer NA NA 0 1 // PerFrameConstantBuffer cbuffer NA NA 1 1 // RenderTargetConstantBuffer cbuffer NA NA 2 1 // CameraParamsConstantBuffer cbuffer NA NA 3 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float // COLOR 1 xyzw 1 NONE float xyzw // TEXCOORD 0 xyzw 2 NONE float // TEXCOORD 1 xyzw 3 NONE float // TEXCOORD 2 xyzw 4 NONE float w // TEXCOORD 3 xyzw 5 NONE float xyzw // TEXCOORD 4 xyzw 6 NONE float xy // TEXCOORD 5 xyz 7 NONE float xyz // TEXCOORD 6 xyzw 8 NONE float xy w // TEXCOORD 7 xyzw 9 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[53], immediateIndexed dcl_constantbuffer cb2[1], immediateIndexed dcl_constantbuffer cb3[20], immediateIndexed dcl_constantbuffer cb1[23], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default dcl_sampler s3, mode_default dcl_sampler s4, mode_default dcl_sampler s5, mode_default dcl_sampler s6, mode_default dcl_sampler s10, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_resource_texture2d (float,float,float,float) t2 dcl_resource_texture2d (float,float,float,float) t3 dcl_resource_texture2d (float,float,float,float) t4 dcl_resource_texture2d (float,float,float,float) t5 dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t7 dcl_input_ps linear v1.xyzw dcl_input_ps linear centroid v4.w dcl_input_ps linear centroid v5.xyzw dcl_input_ps linear centroid v6.xy dcl_input_ps linear centroid v7.xyz dcl_input_ps linear v8.xyw dcl_input_ps linear centroid v9.xyzw dcl_output o0.xyzw dcl_temps 6 sample_indexable(texture2d)(float,float,float,float) r0.xy, v9.xyxx, t1.yzxw, s0 add r0.xy, r0.xyxx, l(0.00196078443, 0.00196078443, 0.000000, 0.000000) mad r0.xy, r0.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) div r1.xy, v8.xyxx, v8.wwww add r1.z, -r1.y, l(1.000000) sample_indexable(texture2d)(float,float,float,float) r0.z, r1.xzxx, t0.yzxw, s2 add r0.z, r0.z, cb0[37].z div r0.z, cb0[37].w, r0.z add r0.w, -r0.z, v9.z add r0.z, r0.z, -v9.z mul_sat r0.z, |r0.z|, cb0[49].w add r1.y, r0.w, l(0.100000) dp2 r0.w, r0.wwww, cb0[41].zzzz lt r1.w, l(0.000000), r1.y lt r1.y, r1.y, l(0.000000) iadd r1.y, -r1.y, r1.w itof r1.y, r1.y mov_sat r1.y, r1.y min r1.w, -r0.w, l(0.000000) mov_sat r0.w, r0.w max r0.w, r0.w, r1.y exp r1.w, r1.w add r1.w, -r1.w, l(1.000000) max r1.y, r1.w, r1.y mul r0.xy, r0.xyxx, r1.yyyy mul r2.xy, r0.xyxx, cb0[42].xxxx mul r0.xy, r0.xyxx, cb0[41].xxxx max r0.xy, r0.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) min r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) mul r0.xy, r0.xyxx, cb0[41].yyyy mul r3.xyzw, cb0[31].xxyy, cb0[48].wwww div r3.xyzw, r2.xyxy, r3.xyzw div r2.xy, r2.xyxx, cb0[31].zzzz add r2.xy, r2.xyxx, v6.xyxx sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t2.xyzw, s1 mad r2.xyz, r2.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) add r3.xyzw, r3.xyzw, v5.xyzw sample_indexable(texture2d)(float,float,float,float) r4.xyz, r3.zwzz, t2.xyzw, s1 sample_indexable(texture2d)(float,float,float,float) r3.xyz, r3.xyxx, t2.xyzw, s1 mad r3.xyz, r3.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) mad r4.xyz, r4.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) mul r4.xyz, r4.xyzx, cb0[32].yyyy mad r3.xyz, cb0[32].xxxx, r3.xyzx, r4.xyzx mad r2.xyz, cb0[32].zzzz, r2.xyzx, r3.xyzx mad r2.xz, r0.xxyx, r2.yyyy, r2.xxzx dp3 r0.x, r2.xyzx, r2.xyzx rsq r0.x, r0.x mul r2.xyz, r0.xxxx, r2.xyzx mul r2.xyz, r2.xyzx, cb0[32].wwww add r3.xyz, v7.xyzx, -cb3[14].xyzx dp3 r0.x, r3.xyzx, r3.xyzx sqrt r0.y, r0.x mad_sat r0.x, r0.x, cb1[21].x, cb1[21].y div r3.xyz, r3.xyzx, r0.yyyy add r0.y, r0.y, -cb0[46].z dp3 r1.w, r3.xyzx, r2.xyzx add_sat r1.w, r1.w, l(1.000000) add r3.xyz, cb0[39].xyzx, -cb0[40].xyzx mad r3.xyz, r1.wwww, r3.xyzx, cb0[40].xyzx add r4.xyz, -r3.xyzx, cb0[34].yzwy mad r3.xyz, v4.wwww, r4.xyzx, r3.xyzx mov_sat r2.y, cb1[22].w add r2.w, -r2.y, l(1.000000) mul r0.x, r0.x, r2.w add r4.y, -v8.y, v8.w mul r4.zw, cb2[0].zzzw, cb1[22].xxxx mov r4.x, v8.x mad r4.xy, v8.wwww, r4.zwzz, r4.xyxx div r4.xy, r4.xyxx, v8.wwww sample_indexable(texture2d)(float,float,float,float) r4.xyzw, r4.xyxx, t5.xyzw, s10 add r2.w, -r4.x, l(1.000000) mad r2.w, r2.y, r2.w, r4.x add r3.w, -r2.w, l(1.000000) mad r0.x, r0.x, r3.w, r2.w add r2.w, -r0.x, l(1.000000) mad r0.x, r0.z, r2.w, r0.x mad r4.xyz, cb1[22].wwww, r4.yzwy, -r0.xxxx mad r4.xyz, r2.yyyy, r4.xyzx, r0.xxxx mul r5.xyz, r3.xyzx, r4.xyzx mad r3.xyz, -r3.xyzx, r4.xyzx, cb0[36].zzzz add r4.xyzw, v7.xzxz, cb0[33].xyzw mul r4.xyzw, r4.xyzw, cb0[46].xxxx mul r4.xyzw, r4.xyzw, cb0[48].wwww mul r4.xyzw, r4.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000) sample_indexable(texture2d)(float,float,float,float) r0.x, r4.xyxx, t6.xyzw, s5 sample_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t6.xyzw, s5 add r0.x, r0.z, r0.x add r4.xyzw, v7.xzxz, cb0[35].xyzw mul r4.xyzw, r4.xyzw, cb0[36].xxyy mul r4.xyzw, r4.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000) sample_indexable(texture2d)(float,float,float,float) r2.yw, r4.xyxx, t7.xywz, s6 sample_indexable(texture2d)(float,float,float,float) r4.xy, r4.zwzz, t7.yzxw, s6 add r0.z, r2.w, r4.y mul r2.y, r2.y, r4.x mul r0.z, r0.z, v4.w mul r0.z, r0.z, r0.x mul r2.w, r0.z, r2.y mad r0.z, -r2.y, r0.z, l(1.000000) mad r3.xyz, r2.wwww, r3.xyzx, r5.xyzx mul r2.y, l(0.300000), cb0[52].z mad r2.w, cb0[52].w, l(0.300000), -r2.y mad r2.y, r1.w, r2.w, r2.y log r1.w, r1.w mul r1.w, r1.w, cb0[38].z exp r1.w, r1.w mad_sat r1.xz, r2.xxzx, r2.yyyy, r1.xxzx sample_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.xzxx, t3.xyzw, s3 sample_indexable(texture2d)(float,float,float,float) r4.xyzw, r1.xzxx, t4.xyzw, s4 movc r2.xyzw, cb3[19].xxxx, r2.xyzw, r4.xyzw mul r4.xyz, r2.xyzx, cb1[0].yyyy mad r2.xyz, r2.xyzx, cb1[0].wwww, l(1.000000, 1.000000, 1.000000, 0.000000) div r2.xyz, r4.xyzx, r2.xyzx add r2.xyz, -r3.xyzx, r2.xyzx add r1.x, -cb0[38].x, cb0[38].y mad r1.x, r1.w, r1.x, cb0[38].x mul r1.x, r2.w, r1.x mul r1.x, r0.z, r1.x mad r1.xzw, r1.xxxx, r2.xxyz, r3.xxyz add r2.x, -cb0[46].z, cb0[46].w div_sat r0.y, r0.y, r2.x add r0.y, -r0.y, l(1.000000) mul r0.y, r0.y, cb0[45].x mul r0.x, r0.x, r0.y mul r2.xy, v7.zxzz, cb0[45].yyyy mul r2.xy, r2.xyxx, l(0.050000, 0.050000, 0.000000, 0.000000) mul r2.zw, cb0[34].xxxx, cb0[49].xxxy mad r3.xy, r2.zwzz, cb0[30].wwww, r2.yxyy mad r2.xy, r2.zwzz, cb0[31].wwww, r2.xyxx sample_indexable(texture2d)(float,float,float,float) r0.y, r2.xyxx, t6.xyzw, s5 sample_indexable(texture2d)(float,float,float,float) r2.x, r3.xyxx, t6.yxzw, s5 mul r0.x, r0.x, r2.x mul r0.x, r0.y, r0.x mad r0.xyz, r0.xxxx, r0.zzzz, r1.xzwx mad r0.xyz, r0.xyzx, v1.wwww, v1.xyzx mul r1.xzw, r0.xxyz, cb1[0].zzzz mad r0.xyz, r0.xyzx, cb1[0].xxxx, l(1.000000, 1.000000, 1.000000, 0.000000) div o0.xyz, r1.xzwx, r0.xyzx mov_sat r0.x, v9.w min r0.x, r1.y, r0.x mul o0.w, r0.w, r0.x ret // Approximately 141 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] [code] <VertexShader hash="1ecc449335817698"> <CalledPixelShaders>2e73a7906782429e 4a15efbaf560c383 8e9eb4c3365a3491 </CalledPixelShaders> <Register id=120 handle=106750B0>00000000</Register> </VertexShader> <PixelShader hash="8e9eb4c3365a3491"> <ParentVertexShaders>1ecc449335817698 </ParentVertexShaders> <Register id=0 handle=2CA21A30>a98c980a</Register> <Register id=1 handle=449489F0 hash_contaminated=true>3eb14059</Register> <Register id=1 handle=44948E30 hash_contaminated=true>64935b70</Register> <Register id=1 handle=44949B30 hash_contaminated=true>485c39c0</Register> <Register id=1 handle=4494A3B0 hash_contaminated=true>a3a939d3</Register> <Register id=1 handle=4494B730 hash_contaminated=true>7d11ae47</Register> <Register id=1 handle=4494BDB0 hash_contaminated=true>cd4b9ef3</Register> <Register id=2 handle=2D51A370>0071948d</Register> <Register id=3 handle=4D076C30>509ef84c</Register> <Register id=4 handle=2D518BB0>0aedc382</Register> <Register id=5 handle=2C9EE270>f15c731e</Register> <Register id=6 handle=2D519CF0>16f94175</Register> <Register id=7 handle=2D51A170>7dc1c495</Register> <Register id=8 handle=4CB8CFB0>29eb9442</Register> <Register id=9 handle=2D7E2A70>a48f9b41</Register> <Register id=10 handle=4CB77F70>34d3b0e7</Register> <Register id=11 handle=2C9EE270>f15c731e</Register> <Register id=12 handle=2D518BB0>0aedc382</Register> <Register id=13 handle=2D518BB0>0aedc382</Register> <Register id=120 handle=106750B0>00000000</Register> <RenderTarget id=0 handle=2CA1EAB0>72d2b22c</RenderTarget> <DepthTarget handle=2C9EC430>85fbc44f</DepthTarget> </PixelShader> [/code]
I've got a weird i/o registers mismatch between a vs/ps pair. Is it caused by improper dumping, or is it game developer's fault?

1ecc449335817698 vs
// ---- Created with 3Dmigoto v1.2.63 on Sat Jul 15 19:47:46 2017

cbuffer _Globals : register(b0)
{
float HDRRange : packoffset(c29);
float4x4 model : packoffset(c30);
float4x4 modelViewProj : packoffset(c34);
float2 AmbientLightMapScale : packoffset(c38);
float4x4 modelView : packoffset(c39);
float4x4 prevViewProj : packoffset(c43);
float4x4 prevModel : packoffset(c47);
float4 normalParams1 : packoffset(c51);
float4 normalParams2 : packoffset(c52);
float4 normalParams3 : packoffset(c53);
float4 normalParams4 : packoffset(c54);
float timer : packoffset(c55);
float3 shoreColour : packoffset(c55.y);
float4 shoreParams1 : packoffset(c56);
float3 shoreParams2 : packoffset(c57);
float blendValue : packoffset(c57.w);
float4 specularParams : packoffset(c58);
float4 waveParams : packoffset(c59);
float4 interactiveParams2 : packoffset(c60);
float4 interactiveParams3 : packoffset(c61);
float4 interactiveParams4 : packoffset(c62);
float4 tesselationAmount : packoffset(c63);
}



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


void main(
float4 v0 : POSITION0,
float3 v1 : NORMAL0,
float3 v2 : TANGENT0,
float3 v3 : BINORMAL0,
float4 v4 : COLOR0,
float3 v5 : TEXCOORD0,
out float4 o0 : WORLDPOS0,
out float3 o1 : NORMAL0,
out float3 o2 : TANGENT0,
out float3 o3 : BINORMAL0,
out float4 o4 : COLOR0,
out float4 o5 : TEXCOORD0)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

o0.xyzw = v0.xyzw;
o1.xyz = v1.xyz;
o2.xyz = v2.xyz;
o3.xyz = v3.xyz;
o4.xyzw = v4.xyzw;
r0.xyz = v1.xyz + v0.xyz;
r1.xyz = modelViewProj._m01_m11_m31 * r0.yyy;
r0.xyw = modelViewProj._m00_m10_m30 * r0.xxx + r1.xyz;
r0.xyz = modelViewProj._m02_m12_m32 * r0.zzz + r0.xyw;
r0.xyz = modelViewProj._m03_m13_m33 * v0.www + r0.xyz;
r0.xy = r0.xy / r0.zz;
r1.xyz = modelViewProj._m01_m11_m31 * v0.yyy;
r1.xyz = modelViewProj._m00_m10_m30 * v0.xxx + r1.xyz;
r1.xyz = modelViewProj._m02_m12_m32 * v0.zzz + r1.xyz;
r1.xyz = modelViewProj._m03_m13_m33 * v0.www + r1.xyz;
r0.zw = r1.xy / r1.zz;
r0.xy = r0.xy + -r0.zw;
r0.x = dot(r0.xy, r0.xy);
r0.x = sqrt(r0.x);
o5.w = saturate(r0.x / tesselationAmount.z);
o5.xyz = v5.xyz;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.63 on Sat Jul 15 19:47:46 2017
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float HDRRange; // Offset: 464 Size: 4 [unused]
// float4x4 model; // Offset: 480 Size: 64 [unused]
// float4x4 modelViewProj; // Offset: 544 Size: 64
// float2 AmbientLightMapScale; // Offset: 608 Size: 8 [unused]
// float4x4 modelView; // Offset: 624 Size: 64 [unused]
// float4x4 prevViewProj; // Offset: 688 Size: 64 [unused]
// float4x4 prevModel; // Offset: 752 Size: 64 [unused]
// float4 normalParams1; // Offset: 816 Size: 16 [unused]
// float4 normalParams2; // Offset: 832 Size: 16 [unused]
// float4 normalParams3; // Offset: 848 Size: 16 [unused]
// float4 normalParams4; // Offset: 864 Size: 16 [unused]
// float timer; // Offset: 880 Size: 4 [unused]
// float3 shoreColour; // Offset: 884 Size: 12 [unused]
// float4 shoreParams1; // Offset: 896 Size: 16 [unused]
// float3 shoreParams2; // Offset: 912 Size: 12 [unused]
// float blendValue; // Offset: 924 Size: 4 [unused]
// float4 specularParams; // Offset: 928 Size: 16 [unused]
// float4 waveParams; // Offset: 944 Size: 16 [unused]
// float4 interactiveParams2; // Offset: 960 Size: 16 [unused]
// float4 interactiveParams3; // Offset: 976 Size: 16 [unused]
// float4 interactiveParams4; // Offset: 992 Size: 16 [unused]
// float4 tesselationAmount; // Offset: 1008 Size: 16
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
// NORMAL 0 xyz 1 NONE float xyz
// TANGENT 0 xyz 2 NONE float xyz
// BINORMAL 0 xyz 3 NONE float xyz
// COLOR 0 xyzw 4 NONE float xyzw
// TEXCOORD 0 xyz 5 NONE float xyz
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// WORLDPOS 0 xyzw 0 NONE float xyzw
// NORMAL 0 xyz 1 NONE float xyz
// TANGENT 0 xyz 2 NONE float xyz
// BINORMAL 0 xyz 3 NONE float xyz
// COLOR 0 xyzw 4 NONE float xyzw
// TEXCOORD 0 xyzw 5 NONE float xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[64], immediateIndexed
dcl_input v0.xyzw
dcl_input v1.xyz
dcl_input v2.xyz
dcl_input v3.xyz
dcl_input v4.xyzw
dcl_input v5.xyz
dcl_output o0.xyzw
dcl_output o1.xyz
dcl_output o2.xyz
dcl_output o3.xyz
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_temps 2
mov o0.xyzw, v0.xyzw
mov o1.xyz, v1.xyzx
mov o2.xyz, v2.xyzx
mov o3.xyz, v3.xyzx
mov o4.xyzw, v4.xyzw
add r0.xyz, v0.xyzx, v1.xyzx
mul r1.xyz, r0.yyyy, cb0[35].xywx
mad r0.xyw, cb0[34].xyxw, r0.xxxx, r1.xyxz
mad r0.xyz, cb0[36].xywx, r0.zzzz, r0.xywx
mad r0.xyz, cb0[37].xywx, v0.wwww, r0.xyzx
div r0.xy, r0.xyxx, r0.zzzz
mul r1.xyz, v0.yyyy, cb0[35].xywx
mad r1.xyz, cb0[34].xywx, v0.xxxx, r1.xyzx
mad r1.xyz, cb0[36].xywx, v0.zzzz, r1.xyzx
mad r1.xyz, cb0[37].xywx, v0.wwww, r1.xyzx
div r0.zw, r1.xxxy, r1.zzzz
add r0.xy, -r0.zwzz, r0.xyxx
dp2 r0.x, r0.xyxx, r0.xyxx
sqrt r0.x, r0.x
div_sat o5.w, r0.x, cb0[63].z
mov o5.xyz, v5.xyzx
ret
// Approximately 22 instruction slots used

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


8e9eb4c3365a3491 ps
// ---- Created with 3Dmigoto v1.2.63 on Sat Jul 15 19:58:05 2017

cbuffer _Globals : register(b0)
{
float HDRRange : packoffset(c29);
float2 AmbientLightMapScale : packoffset(c29.y);
float4 normalParams1 : packoffset(c30);
float4 normalParams2 : packoffset(c31);
float4 normalParams3 : packoffset(c32);
float4 normalParams4 : packoffset(c33);
float timer : packoffset(c34);
float3 shoreColour : packoffset(c34.y);
float4 shoreParams1 : packoffset(c35);
float3 shoreParams2 : packoffset(c36);
float4 screenProj : packoffset(c37);
float4 fresnelParams : packoffset(c38);
float4 horizonColour : packoffset(c39);
float4 nadirColour : packoffset(c40);
float4 interactiveParams1 : packoffset(c41);
float4 interactiveParams5 : packoffset(c42);
float4 waterShadowBlend : packoffset(c43);
float4 decodeParam : packoffset(c44);
float4 sparkleParams : packoffset(c45);
float4 sparkleParams2 : packoffset(c46);
float blendValue : packoffset(c47);
float4 specularParams : packoffset(c48);
float4 waveParams : packoffset(c49);
float4 interactiveParams2 : packoffset(c50);
float4 interactiveParams3 : packoffset(c51);
float4 interactiveParams4 : packoffset(c52);
}

cbuffer RenderTargetConstantBuffer : register(b2)
{
float4 viewportDimensions : packoffset(c0);
}

cbuffer CameraParamsConstantBuffer : register(b3)
{
float4x4 projection : packoffset(c0);
float4x4 viewProjection : packoffset(c4);
row_major float3x4 view : packoffset(c8);
row_major float3x4 viewI : packoffset(c11);
float3 eyePositionWS : packoffset(c14);
float4x4 inverseProj : packoffset(c15);
bool leftEye : packoffset(c19);
bool padding3[3] : packoffset(c20);
}

cbuffer PerFrameConstantBuffer : register(b1)
{
float4 colorBufferEncodingParams : packoffset(c0);
float4 envMapEncodingParams : packoffset(c1);
float4 velocityEncodingParams : packoffset(c2);
float4 snowEffectsParam2 : packoffset(c3);
float4 sunDirectionAndTime : packoffset(c4);
float4 sunColour : packoffset(c5);
float4 skylightColour : packoffset(c6);
float4 ambientOcclusionScales : packoffset(c7);
float4 backlightColour : packoffset(c8);
float4 specularScales : packoffset(c9);
float3 specularDirection : packoffset(c10);
float4 specularColourAndMultiplier : packoffset(c11);
float4 fogColour : packoffset(c12);
float4 fogParams : packoffset(c13);
float4 hazeParams : packoffset(c14);
float4 hazeParams2 : packoffset(c15);
float4 nightLightmapParam1 : packoffset(c16);
float4 nightLightmapParam2 : packoffset(c17);
float4 wetLightingParam : packoffset(c18);
float4 snowEffectsParam : packoffset(c19);
float4 ambientColour : packoffset(c20);
float4 shadowBlend : packoffset(c21);
float4 maskParams : packoffset(c22);
float4 deferredSpecularParams : packoffset(c23);
}

SamplerState TWaterRippleMap_s : register(s0);
SamplerState TNormalMap_s : register(s1);
SamplerState DepthMap_s : register(s2);
SamplerState ReflectionMap_s : register(s3);
SamplerState ReflectionMap2_s : register(s4);
SamplerState TMaskMap_s : register(s5);
SamplerState TWaveFront_s : register(s6);
SamplerState TShadowMask_s : register(s10);
Texture2D<float4> DepthMap : register(t0);
Texture2D<float4> TWaterRippleMap : register(t1);
Texture2D<float4> TNormalMap : register(t2);
Texture2D<float4> ReflectionMap : register(t3);
Texture2D<float4> ReflectionMap2 : register(t4);
Texture2D<float4> TShadowMask : register(t5);
Texture2D<float4> TMaskMap : register(t6);
Texture2D<float4> TWaveFront : register(t7);


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


void main(
float4 v0 : SV_Position0,
float4 v1 : COLOR1,
float4 v2 : TEXCOORD0,
float4 v3 : TEXCOORD1,
linear centroid float4 v4 : TEXCOORD2,
linear centroid float4 v5 : TEXCOORD3,
linear centroid float4 v6 : TEXCOORD4,
linear centroid float4 v7 : TEXCOORD5,
float4 v8 : TEXCOORD6,
linear centroid float4 v9 : TEXCOORD7,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5;
uint4 bitmask, uiDest;
float4 fDest;
r0.xy = TWaterRippleMap.Sample(TWaterRippleMap_s, v9.xy).yz;
r0.xy = float2(0.00196078443,0.00196078443) + r0.xy;
r0.xy = r0.xy * float2(2,2) + float2(-1,-1);
r1.xy = v8.xy / v8.ww;
r1.z = 1 + -r1.y;
r0.z = DepthMap.Sample(DepthMap_s, r1.xz).x;
r0.z = screenProj.z + r0.z;
r0.z = screenProj.w / r0.z;
r0.w = v9.z + -r0.z;
r0.z = -v9.z + r0.z;
r0.z = saturate(waveParams.w * abs(r0.z));
r1.y = 0.100000001 + r0.w;
r0.w = dot(r0.ww, interactiveParams1.zz);
r1.w = cmp(0 < r1.y);
r1.y = cmp(r1.y < 0);
r1.y = (int)-r1.y + (int)r1.w;
r1.y = (int)r1.y;
r1.y = saturate(r1.y);
r1.w = min(0, -r0.w);
r0.w = saturate(r0.w);
r0.w = max(r1.y, r0.w);
r1.w = exp2(r1.w);
r1.w = 1 + -r1.w;
r1.y = max(r1.y, r1.w);
r0.xy = r1.yy * r0.xy;
r2.xy = interactiveParams5.xx * r0.xy;
r0.xy = interactiveParams1.xx * r0.xy;
r0.xy = max(float2(-1,-1), r0.xy);
r0.xy = min(float2(1,1), r0.xy);
r0.xy = interactiveParams1.yy * r0.xy;
r3.xyzw = specularParams.wwww * normalParams2.xxyy;
r3.xyzw = r2.xyxy / r3.xyzw;
r2.xy = r2.xy / normalParams2.zz;
r2.xy = v6.xy + r2.xy;
r2.xyz = TNormalMap.Sample(TNormalMap_s, r2.xy).xyz;
r2.xyz = r2.xzy * float3(2,2,2) + float3(-1,-1,-1);
r3.xyzw = v5.xyzw + r3.xyzw;
r4.xyz = TNormalMap.Sample(TNormalMap_s, r3.zw).xyz;
r3.xyz = TNormalMap.Sample(TNormalMap_s, r3.xy).xyz;
r3.xyz = r3.xzy * float3(2,2,2) + float3(-1,-1,-1);
r4.xyz = r4.xzy * float3(2,2,2) + float3(-1,-1,-1);
r4.xyz = normalParams3.yyy * r4.xyz;
r3.xyz = normalParams3.xxx * r3.xyz + r4.xyz;
r2.xyz = normalParams3.zzz * r2.xyz + r3.xyz;
r2.xz = r0.xy * r2.yy + r2.xz;
r0.x = dot(r2.xyz, r2.xyz);
r0.x = rsqrt(r0.x);
r2.xyz = r2.xyz * r0.xxx;
r2.xyz = normalParams3.www * r2.xyz;
r3.xyz = -eyePositionWS.xyz + v7.xyz;
r0.x = dot(r3.xyz, r3.xyz);
r0.y = sqrt(r0.x);
r0.x = saturate(r0.x * shadowBlend.x + shadowBlend.y);
r3.xyz = r3.xyz / r0.yyy;
r0.y = -sparkleParams2.z + r0.y;
r1.w = dot(r3.xyz, r2.xyz);
r1.w = saturate(1 + r1.w);
r3.xyz = -nadirColour.xyz + horizonColour.xyz;
r3.xyz = r1.www * r3.xyz + nadirColour.xyz;
r4.xyz = shoreColour.xyz + -r3.xyz;
r3.xyz = v4.www * r4.xyz + r3.xyz;
r2.y = saturate(maskParams.w);
r2.w = 1 + -r2.y;
r0.x = r2.w * r0.x;
r4.y = v8.w + -v8.y;
r4.zw = maskParams.xx * viewportDimensions.zw;
r4.x = v8.x;
r4.xy = v8.ww * r4.zw + r4.xy;
r4.xy = r4.xy / v8.ww;
r4.xyzw = TShadowMask.Sample(TShadowMask_s, r4.xy).xyzw;
r2.w = 1 + -r4.x;
r2.w = r2.y * r2.w + r4.x;
r3.w = 1 + -r2.w;
r0.x = r0.x * r3.w + r2.w;
r2.w = 1 + -r0.x;
r0.x = r0.z * r2.w + r0.x;
r4.xyz = maskParams.www * r4.yzw + -r0.xxx;
r4.xyz = r2.yyy * r4.xyz + r0.xxx;
r5.xyz = r4.xyz * r3.xyz;
r3.xyz = -r3.xyz * r4.xyz + shoreParams2.zzz;
r4.xyzw = normalParams4.xyzw + v7.xzxz;
r4.xyzw = sparkleParams2.xxxx * r4.xyzw;
r4.xyzw = specularParams.wwww * r4.xyzw;
r4.xyzw = float4(0.0500000007,0.0500000007,0.0500000007,0.0500000007) * r4.xyzw;
r0.x = TMaskMap.Sample(TMaskMap_s, r4.xy).x;
r0.z = TMaskMap.Sample(TMaskMap_s, r4.zw).z;
r0.x = r0.x + r0.z;
r4.xyzw = shoreParams1.xyzw + v7.xzxz;
r4.xyzw = shoreParams2.xxyy * r4.xyzw;
r4.xyzw = float4(0.0500000007,0.0500000007,0.0500000007,0.0500000007) * r4.xyzw;
r2.yw = TWaveFront.Sample(TWaveFront_s, r4.xy).yz;
r4.xy = TWaveFront.Sample(TWaveFront_s, r4.zw).yz;
r0.z = r4.y + r2.w;
r2.y = r4.x * r2.y;
r0.z = v4.w * r0.z;
r0.z = r0.x * r0.z;
r2.w = r2.y * r0.z;
r0.z = -r2.y * r0.z + 1;
r3.xyz = r2.www * r3.xyz + r5.xyz;
r2.y = interactiveParams4.z * 0.300000012;
r2.w = interactiveParams4.w * 0.300000012 + -r2.y;
r2.y = r1.w * r2.w + r2.y;
r1.w = log2(r1.w);
r1.w = fresnelParams.z * r1.w;
r1.w = exp2(r1.w);
r1.xz = saturate(r2.xz * r2.yy + r1.xz);
r2.xyzw = ReflectionMap.Sample(ReflectionMap_s, r1.xz).xyzw;
r4.xyzw = ReflectionMap2.Sample(ReflectionMap2_s, r1.xz).xyzw;
r2.xyzw = leftEye ? r2.xyzw : r4.xyzw;
r4.xyz = colorBufferEncodingParams.yyy * r2.xyz;
r2.xyz = r2.xyz * colorBufferEncodingParams.www + float3(1,1,1);
r2.xyz = r4.xyz / r2.xyz;
r2.xyz = r2.xyz + -r3.xyz;
r1.x = fresnelParams.y + -fresnelParams.x;
r1.x = r1.w * r1.x + fresnelParams.x;
r1.x = r1.x * r2.w;
r1.x = r1.x * r0.z;
r1.xzw = r1.xxx * r2.xyz + r3.xyz;
r2.x = sparkleParams2.w + -sparkleParams2.z;
r0.y = saturate(r0.y / r2.x);
r0.y = 1 + -r0.y;
r0.y = sparkleParams.x * r0.y;
r0.x = r0.y * r0.x;
r2.xy = sparkleParams.yy * v7.zx;
r2.xy = float2(0.0500000007,0.0500000007) * r2.xy;
r2.zw = waveParams.xy * timer;
r3.xy = r2.zw * normalParams1.ww + r2.yx;
r2.xy = r2.zw * normalParams2.ww + r2.xy;
r0.y = TMaskMap.Sample(TMaskMap_s, r2.xy).y;
r2.x = TMaskMap.Sample(TMaskMap_s, r3.xy).y;
r0.x = r2.x * r0.x;
r0.x = r0.x * r0.y;
r0.xyz = r0.xxx * r0.zzz + r1.xzw;
r0.xyz = r0.xyz * v1.www + v1.xyz;
r1.xzw = colorBufferEncodingParams.zzz * r0.xyz;
r0.xyz = r0.xyz * colorBufferEncodingParams.xxx + float3(1,1,1);
o0.xyz = r1.xzw / r0.xyz;
r0.x = saturate(v9.w);
r0.x = min(r0.x, r1.y);
o0.w = r0.x * r0.w;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.63 on Sat Jul 15 19:58:05 2017
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float HDRRange; // Offset: 464 Size: 4 [unused]
// float2 AmbientLightMapScale; // Offset: 468 Size: 8 [unused]
// float4 normalParams1; // Offset: 480 Size: 16
// float4 normalParams2; // Offset: 496 Size: 16
// float4 normalParams3; // Offset: 512 Size: 16
// float4 normalParams4; // Offset: 528 Size: 16
// float timer; // Offset: 544 Size: 4
// float3 shoreColour; // Offset: 548 Size: 12
// float4 shoreParams1; // Offset: 560 Size: 16
// float3 shoreParams2; // Offset: 576 Size: 12
// float4 screenProj; // Offset: 592 Size: 16
// float4 fresnelParams; // Offset: 608 Size: 16
// float4 horizonColour; // Offset: 624 Size: 16
// float4 nadirColour; // Offset: 640 Size: 16
// float4 interactiveParams1; // Offset: 656 Size: 16
// float4 interactiveParams5; // Offset: 672 Size: 16
// float4 waterShadowBlend; // Offset: 688 Size: 16 [unused]
// float4 decodeParam; // Offset: 704 Size: 16 [unused]
// float4 sparkleParams; // Offset: 720 Size: 16
// float4 sparkleParams2; // Offset: 736 Size: 16
// float blendValue; // Offset: 752 Size: 4 [unused]
// float4 specularParams; // Offset: 768 Size: 16
// float4 waveParams; // Offset: 784 Size: 16
// float4 interactiveParams2; // Offset: 800 Size: 16 [unused]
// float4 interactiveParams3; // Offset: 816 Size: 16 [unused]
// float4 interactiveParams4; // Offset: 832 Size: 16
//
// }
//
// cbuffer RenderTargetConstantBuffer
// {
//
// float4 viewportDimensions; // Offset: 0 Size: 16
//
// }
//
// cbuffer CameraParamsConstantBuffer
// {
//
// float4x4 projection; // Offset: 0 Size: 64 [unused]
// float4x4 viewProjection; // Offset: 64 Size: 64 [unused]
// row_major float3x4 view; // Offset: 128 Size: 48 [unused]
// row_major float3x4 viewI; // Offset: 176 Size: 48 [unused]
// float3 eyePositionWS; // Offset: 224 Size: 12
// float4x4 inverseProj; // Offset: 240 Size: 64 [unused]
// bool leftEye; // Offset: 304 Size: 4
// bool padding3[3]; // Offset: 320 Size: 36 [unused]
//
// }
//
// cbuffer PerFrameConstantBuffer
// {
//
// float4 colorBufferEncodingParams; // Offset: 0 Size: 16
// float4 envMapEncodingParams; // Offset: 16 Size: 16 [unused]
// float4 velocityEncodingParams; // Offset: 32 Size: 16 [unused]
// float4 snowEffectsParam2; // Offset: 48 Size: 16 [unused]
// float4 sunDirectionAndTime; // Offset: 64 Size: 16 [unused]
// float4 sunColour; // Offset: 80 Size: 16 [unused]
// float4 skylightColour; // Offset: 96 Size: 16 [unused]
// float4 ambientOcclusionScales; // Offset: 112 Size: 16 [unused]
// float4 backlightColour; // Offset: 128 Size: 16 [unused]
// float4 specularScales; // Offset: 144 Size: 16 [unused]
// float3 specularDirection; // Offset: 160 Size: 12 [unused]
// float4 specularColourAndMultiplier;// Offset: 176 Size: 16 [unused]
// float4 fogColour; // Offset: 192 Size: 16 [unused]
// float4 fogParams; // Offset: 208 Size: 16 [unused]
// float4 hazeParams; // Offset: 224 Size: 16 [unused]
// float4 hazeParams2; // Offset: 240 Size: 16 [unused]
// float4 nightLightmapParam1; // Offset: 256 Size: 16 [unused]
// float4 nightLightmapParam2; // Offset: 272 Size: 16 [unused]
// float4 wetLightingParam; // Offset: 288 Size: 16 [unused]
// float4 snowEffectsParam; // Offset: 304 Size: 16 [unused]
// float4 ambientColour; // Offset: 320 Size: 16 [unused]
// float4 shadowBlend; // Offset: 336 Size: 16
// float4 maskParams; // Offset: 352 Size: 16
// float4 deferredSpecularParams; // Offset: 368 Size: 16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// TWaterRippleMap sampler NA NA 0 1
// TNormalMap sampler NA NA 1 1
// DepthMap sampler NA NA 2 1
// ReflectionMap sampler NA NA 3 1
// ReflectionMap2 sampler NA NA 4 1
// TMaskMap sampler NA NA 5 1
// TWaveFront sampler NA NA 6 1
// TShadowMask sampler NA NA 10 1
// DepthMap texture float4 2d 0 1
// TWaterRippleMap texture float4 2d 1 1
// TNormalMap texture float4 2d 2 1
// ReflectionMap texture float4 2d 3 1
// ReflectionMap2 texture float4 2d 4 1
// TShadowMask texture float4 2d 5 1
// TMaskMap texture float4 2d 6 1
// TWaveFront texture float4 2d 7 1
// $Globals cbuffer NA NA 0 1
// PerFrameConstantBuffer cbuffer NA NA 1 1
// RenderTargetConstantBuffer cbuffer NA NA 2 1
// CameraParamsConstantBuffer cbuffer NA NA 3 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float
// COLOR 1 xyzw 1 NONE float xyzw
// TEXCOORD 0 xyzw 2 NONE float
// TEXCOORD 1 xyzw 3 NONE float
// TEXCOORD 2 xyzw 4 NONE float w
// TEXCOORD 3 xyzw 5 NONE float xyzw
// TEXCOORD 4 xyzw 6 NONE float xy
// TEXCOORD 5 xyz 7 NONE float xyz
// TEXCOORD 6 xyzw 8 NONE float xy w
// TEXCOORD 7 xyzw 9 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[53], immediateIndexed
dcl_constantbuffer cb2[1], immediateIndexed
dcl_constantbuffer cb3[20], immediateIndexed
dcl_constantbuffer cb1[23], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s10, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_input_ps linear v1.xyzw
dcl_input_ps linear centroid v4.w
dcl_input_ps linear centroid v5.xyzw
dcl_input_ps linear centroid v6.xy
dcl_input_ps linear centroid v7.xyz
dcl_input_ps linear v8.xyw
dcl_input_ps linear centroid v9.xyzw
dcl_output o0.xyzw
dcl_temps 6
sample_indexable(texture2d)(float,float,float,float) r0.xy, v9.xyxx, t1.yzxw, s0
add r0.xy, r0.xyxx, l(0.00196078443, 0.00196078443, 0.000000, 0.000000)
mad r0.xy, r0.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
div r1.xy, v8.xyxx, v8.wwww
add r1.z, -r1.y, l(1.000000)
sample_indexable(texture2d)(float,float,float,float) r0.z, r1.xzxx, t0.yzxw, s2
add r0.z, r0.z, cb0[37].z
div r0.z, cb0[37].w, r0.z
add r0.w, -r0.z, v9.z
add r0.z, r0.z, -v9.z
mul_sat r0.z, |r0.z|, cb0[49].w
add r1.y, r0.w, l(0.100000)
dp2 r0.w, r0.wwww, cb0[41].zzzz
lt r1.w, l(0.000000), r1.y
lt r1.y, r1.y, l(0.000000)
iadd r1.y, -r1.y, r1.w
itof r1.y, r1.y
mov_sat r1.y, r1.y
min r1.w, -r0.w, l(0.000000)
mov_sat r0.w, r0.w
max r0.w, r0.w, r1.y
exp r1.w, r1.w
add r1.w, -r1.w, l(1.000000)
max r1.y, r1.w, r1.y
mul r0.xy, r0.xyxx, r1.yyyy
mul r2.xy, r0.xyxx, cb0[42].xxxx
mul r0.xy, r0.xyxx, cb0[41].xxxx
max r0.xy, r0.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
min r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
mul r0.xy, r0.xyxx, cb0[41].yyyy
mul r3.xyzw, cb0[31].xxyy, cb0[48].wwww
div r3.xyzw, r2.xyxy, r3.xyzw
div r2.xy, r2.xyxx, cb0[31].zzzz
add r2.xy, r2.xyxx, v6.xyxx
sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t2.xyzw, s1
mad r2.xyz, r2.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
add r3.xyzw, r3.xyzw, v5.xyzw
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r3.zwzz, t2.xyzw, s1
sample_indexable(texture2d)(float,float,float,float) r3.xyz, r3.xyxx, t2.xyzw, s1
mad r3.xyz, r3.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r4.xyz, r4.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r4.xyz, r4.xyzx, cb0[32].yyyy
mad r3.xyz, cb0[32].xxxx, r3.xyzx, r4.xyzx
mad r2.xyz, cb0[32].zzzz, r2.xyzx, r3.xyzx
mad r2.xz, r0.xxyx, r2.yyyy, r2.xxzx
dp3 r0.x, r2.xyzx, r2.xyzx
rsq r0.x, r0.x
mul r2.xyz, r0.xxxx, r2.xyzx
mul r2.xyz, r2.xyzx, cb0[32].wwww
add r3.xyz, v7.xyzx, -cb3[14].xyzx
dp3 r0.x, r3.xyzx, r3.xyzx
sqrt r0.y, r0.x
mad_sat r0.x, r0.x, cb1[21].x, cb1[21].y
div r3.xyz, r3.xyzx, r0.yyyy
add r0.y, r0.y, -cb0[46].z
dp3 r1.w, r3.xyzx, r2.xyzx
add_sat r1.w, r1.w, l(1.000000)
add r3.xyz, cb0[39].xyzx, -cb0[40].xyzx
mad r3.xyz, r1.wwww, r3.xyzx, cb0[40].xyzx
add r4.xyz, -r3.xyzx, cb0[34].yzwy
mad r3.xyz, v4.wwww, r4.xyzx, r3.xyzx
mov_sat r2.y, cb1[22].w
add r2.w, -r2.y, l(1.000000)
mul r0.x, r0.x, r2.w
add r4.y, -v8.y, v8.w
mul r4.zw, cb2[0].zzzw, cb1[22].xxxx
mov r4.x, v8.x
mad r4.xy, v8.wwww, r4.zwzz, r4.xyxx
div r4.xy, r4.xyxx, v8.wwww
sample_indexable(texture2d)(float,float,float,float) r4.xyzw, r4.xyxx, t5.xyzw, s10
add r2.w, -r4.x, l(1.000000)
mad r2.w, r2.y, r2.w, r4.x
add r3.w, -r2.w, l(1.000000)
mad r0.x, r0.x, r3.w, r2.w
add r2.w, -r0.x, l(1.000000)
mad r0.x, r0.z, r2.w, r0.x
mad r4.xyz, cb1[22].wwww, r4.yzwy, -r0.xxxx
mad r4.xyz, r2.yyyy, r4.xyzx, r0.xxxx
mul r5.xyz, r3.xyzx, r4.xyzx
mad r3.xyz, -r3.xyzx, r4.xyzx, cb0[36].zzzz
add r4.xyzw, v7.xzxz, cb0[33].xyzw
mul r4.xyzw, r4.xyzw, cb0[46].xxxx
mul r4.xyzw, r4.xyzw, cb0[48].wwww
mul r4.xyzw, r4.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000)
sample_indexable(texture2d)(float,float,float,float) r0.x, r4.xyxx, t6.xyzw, s5
sample_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t6.xyzw, s5
add r0.x, r0.z, r0.x
add r4.xyzw, v7.xzxz, cb0[35].xyzw
mul r4.xyzw, r4.xyzw, cb0[36].xxyy
mul r4.xyzw, r4.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000)
sample_indexable(texture2d)(float,float,float,float) r2.yw, r4.xyxx, t7.xywz, s6
sample_indexable(texture2d)(float,float,float,float) r4.xy, r4.zwzz, t7.yzxw, s6
add r0.z, r2.w, r4.y
mul r2.y, r2.y, r4.x
mul r0.z, r0.z, v4.w
mul r0.z, r0.z, r0.x
mul r2.w, r0.z, r2.y
mad r0.z, -r2.y, r0.z, l(1.000000)
mad r3.xyz, r2.wwww, r3.xyzx, r5.xyzx
mul r2.y, l(0.300000), cb0[52].z
mad r2.w, cb0[52].w, l(0.300000), -r2.y
mad r2.y, r1.w, r2.w, r2.y
log r1.w, r1.w
mul r1.w, r1.w, cb0[38].z
exp r1.w, r1.w
mad_sat r1.xz, r2.xxzx, r2.yyyy, r1.xxzx
sample_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.xzxx, t3.xyzw, s3
sample_indexable(texture2d)(float,float,float,float) r4.xyzw, r1.xzxx, t4.xyzw, s4
movc r2.xyzw, cb3[19].xxxx, r2.xyzw, r4.xyzw
mul r4.xyz, r2.xyzx, cb1[0].yyyy
mad r2.xyz, r2.xyzx, cb1[0].wwww, l(1.000000, 1.000000, 1.000000, 0.000000)
div r2.xyz, r4.xyzx, r2.xyzx
add r2.xyz, -r3.xyzx, r2.xyzx
add r1.x, -cb0[38].x, cb0[38].y
mad r1.x, r1.w, r1.x, cb0[38].x
mul r1.x, r2.w, r1.x
mul r1.x, r0.z, r1.x
mad r1.xzw, r1.xxxx, r2.xxyz, r3.xxyz
add r2.x, -cb0[46].z, cb0[46].w
div_sat r0.y, r0.y, r2.x
add r0.y, -r0.y, l(1.000000)
mul r0.y, r0.y, cb0[45].x
mul r0.x, r0.x, r0.y
mul r2.xy, v7.zxzz, cb0[45].yyyy
mul r2.xy, r2.xyxx, l(0.050000, 0.050000, 0.000000, 0.000000)
mul r2.zw, cb0[34].xxxx, cb0[49].xxxy
mad r3.xy, r2.zwzz, cb0[30].wwww, r2.yxyy
mad r2.xy, r2.zwzz, cb0[31].wwww, r2.xyxx
sample_indexable(texture2d)(float,float,float,float) r0.y, r2.xyxx, t6.xyzw, s5
sample_indexable(texture2d)(float,float,float,float) r2.x, r3.xyxx, t6.yxzw, s5
mul r0.x, r0.x, r2.x
mul r0.x, r0.y, r0.x
mad r0.xyz, r0.xxxx, r0.zzzz, r1.xzwx
mad r0.xyz, r0.xyzx, v1.wwww, v1.xyzx
mul r1.xzw, r0.xxyz, cb1[0].zzzz
mad r0.xyz, r0.xyzx, cb1[0].xxxx, l(1.000000, 1.000000, 1.000000, 0.000000)
div o0.xyz, r1.xzwx, r0.xyzx
mov_sat r0.x, v9.w
min r0.x, r1.y, r0.x
mul o0.w, r0.w, r0.x
ret
// Approximately 141 instruction slots used

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


<VertexShader hash="1ecc449335817698">
<CalledPixelShaders>2e73a7906782429e 4a15efbaf560c383 8e9eb4c3365a3491 </CalledPixelShaders>
<Register id=120 handle=106750B0>00000000</Register>
</VertexShader>

<PixelShader hash="8e9eb4c3365a3491">
<ParentVertexShaders>1ecc449335817698 </ParentVertexShaders>
<Register id=0 handle=2CA21A30>a98c980a</Register>
<Register id=1 handle=449489F0 hash_contaminated=true>3eb14059</Register>
<Register id=1 handle=44948E30 hash_contaminated=true>64935b70</Register>
<Register id=1 handle=44949B30 hash_contaminated=true>485c39c0</Register>
<Register id=1 handle=4494A3B0 hash_contaminated=true>a3a939d3</Register>
<Register id=1 handle=4494B730 hash_contaminated=true>7d11ae47</Register>
<Register id=1 handle=4494BDB0 hash_contaminated=true>cd4b9ef3</Register>
<Register id=2 handle=2D51A370>0071948d</Register>
<Register id=3 handle=4D076C30>509ef84c</Register>
<Register id=4 handle=2D518BB0>0aedc382</Register>
<Register id=5 handle=2C9EE270>f15c731e</Register>
<Register id=6 handle=2D519CF0>16f94175</Register>
<Register id=7 handle=2D51A170>7dc1c495</Register>
<Register id=8 handle=4CB8CFB0>29eb9442</Register>
<Register id=9 handle=2D7E2A70>a48f9b41</Register>
<Register id=10 handle=4CB77F70>34d3b0e7</Register>
<Register id=11 handle=2C9EE270>f15c731e</Register>
<Register id=12 handle=2D518BB0>0aedc382</Register>
<Register id=13 handle=2D518BB0>0aedc382</Register>
<Register id=120 handle=106750B0>00000000</Register>
<RenderTarget id=0 handle=2CA1EAB0>72d2b22c</RenderTarget>
<DepthTarget handle=2C9EC430>85fbc44f</DepthTarget>
</PixelShader>

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/15/2017 07:46 PM   
I think I know what is happening. The tesselation is on a way. When I disable it the registers are matching. Does the current version of 3DM fully support the hull/domain shaders? When I try to dump them the hull shader has empty main function and the domain shader does not dump at all. edit: I've managed to dump the domain shader. It wasn't active while I was trying to dump it before. It needs manual fixing though. Any hints would be appreciated [code]// ---- Created with 3Dmigoto v1.2.63 on Sun Jul 16 09:20:53 2017 cbuffer _Globals : register(b0) { float HDRRange : packoffset(c29); float4x4 model : packoffset(c30); float4x4 modelViewProj : packoffset(c34); float2 AmbientLightMapScale : packoffset(c38); float4x4 modelView : packoffset(c39); float4x4 prevViewProj : packoffset(c43); float4x4 prevModel : packoffset(c47); float4 tesselationParams : packoffset(c51); float4 normalParams1 : packoffset(c52); float4 normalParams2 : packoffset(c53); float4 normalParams3 : packoffset(c54); float4 normalParams4 : packoffset(c55); float timer : packoffset(c56); float3 shoreColour : packoffset(c56.y); float4 shoreParams1 : packoffset(c57); float3 shoreParams2 : packoffset(c58); float blendValue : packoffset(c58.w); float4 specularParams : packoffset(c59); float4 waveParams : packoffset(c60); float4 interactiveParams2 : packoffset(c61); float4 interactiveParams3 : packoffset(c62); float4 interactiveParams4 : packoffset(c63); float4 tesselationAmount : packoffset(c64); } cbuffer CameraParamsConstantBuffer : register(b3) { float4x4 projection : packoffset(c0); float4x4 viewProjection : packoffset(c4); row_major float3x4 view : packoffset(c8); row_major float3x4 viewI : packoffset(c11); float3 eyePositionWS : packoffset(c14); float4x4 inverseProj : packoffset(c15); bool leftEye : packoffset(c19); bool padding3[3] : packoffset(c20); } cbuffer PerFrameConstantBuffer : register(b1) { float4 colorBufferEncodingParams : packoffset(c0); float4 envMapEncodingParams : packoffset(c1); float4 velocityEncodingParams : packoffset(c2); float4 snowEffectsParam2 : packoffset(c3); float4 sunDirectionAndTime : packoffset(c4); float4 sunColour : packoffset(c5); float4 skylightColour : packoffset(c6); float4 ambientOcclusionScales : packoffset(c7); float4 backlightColour : packoffset(c8); float4 specularScales : packoffset(c9); float3 specularDirection : packoffset(c10); float4 specularColourAndMultiplier : packoffset(c11); float4 fogColour : packoffset(c12); float4 fogParams : packoffset(c13); float4 hazeParams : packoffset(c14); float4 hazeParams2 : packoffset(c15); float4 nightLightmapParam1 : packoffset(c16); float4 nightLightmapParam2 : packoffset(c17); float4 wetLightingParam : packoffset(c18); float4 snowEffectsParam : packoffset(c19); float4 ambientColour : packoffset(c20); float4 shadowBlend : packoffset(c21); float4 maskParams : packoffset(c22); float4 deferredSpecularParams : packoffset(c23); } SamplerState TWaterRippleMap_s : register(s0); Texture2D<float4> TWaterRippleMap : register(t0); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : WORLDPOS0, float3 v1 : NORMAL0, float3 v2 : TANGENT0, float3 v3 : BINORMAL0, float4 v4 : COLOR0, float4 v5 : TEXCOORD0, out float4 o0 : SV_Position0, out float4 o1 : COLOR1, out float4 o2 : TEXCOORD0, out float4 o3 : TEXCOORD1, out float4 o4 : TEXCOORD2, out float4 o5 : TEXCOORD3, out float4 o6 : TEXCOORD4, out float4 o7 : TEXCOORD5, out float4 o8 : TEXCOORD6, out float4 o9 : TEXCOORD7) { // Needs manual fix for instruction: // unknown dcl_: dcl_input_control_point_count 3 // Needs manual fix for instruction: // unknown dcl_: dcl_tessellator_domain domain_tri float4 r0,r1,r2,r3,r4,r5,r6; uint4 bitmask, uiDest; float4 fDest; r0.xyz = vicp[1][5].xyw * vDomain.xxx; r0.xyz = vicp[0][5].xyw * vDomain.zzz + r0.xyz; r0.xyz = vicp[2][5].xyw * vDomain.yyy + r0.xyz; r1.xyz = TWaterRippleMap.SampleLevel(TWaterRippleMap_s, r0.xy, 1).xyz; r1.yz = float2(0.00196078443,0.00196078443) + r1.yz; r1.yz = r1.yz * float2(2,2) + float2(-1,-1); r0.w = dot(r1.yz, r1.yz); r0.w = sqrt(r0.w); r0.w = r1.x * r0.w; r0.w = tesselationParams.y * r0.w; r0.w = min(tesselationParams.x, r0.w); r0.z = r0.z * r0.w; o9.xy = r0.xy; r1.xyzw = vicp[1][0].xyzw * vDomain.xxxx; r1.xyzw = vicp[0][0].xyzw * vDomain.zzzz + r1.xyzw; r1.xyzw = vicp[2][0].xyzw * vDomain.yyyy + r1.xyzw; r0.xyz = vicp[0][1].xyz * r0.zzz + r1.xyz; r2.xyzw = modelViewProj._m01_m11_m21_m31 * r0.yyyy; r2.xyzw = modelViewProj._m00_m10_m20_m30 * r0.xxxx + r2.xyzw; r2.xyzw = modelViewProj._m02_m12_m22_m32 * r0.zzzz + r2.xyzw; r2.xyzw = modelViewProj._m03_m13_m23_m33 * r1.wwww + r2.xyzw; o0.xyzw = r2.xyzw; r1.xyz = model._m01_m11_m21 * r0.yyy; r1.xyz = model._m00_m10_m20 * r0.xxx + r1.xyz; r1.xyz = model._m02_m12_m22 * r0.zzz + r1.xyz; r1.xyz = model._m03_m13_m23 * r1.www + r1.xyz; r3.xyz = -eyePositionWS.xyz + r1.xyz; r0.w = dot(r3.xyz, r3.xyz); r0.w = sqrt(r0.w); r3.xyz = r3.xyz / r0.www; r1.w = saturate(dot(r3.xyz, sunDirectionAndTime.xyz)); r1.w = log2(r1.w); r1.w = hazeParams2.w * r1.w; r1.w = exp2(r1.w); r3.xyz = hazeParams2.xyz + -hazeParams.xyz; r3.xyz = r1.www * r3.xyz + hazeParams.xyz; r1.w = 1 / fogParams.z; r1.w = -r1.w + r0.w; r0.w = -30 + r0.w; r0.w = saturate(fogParams.z * r0.w); r4.w = fogParams.w * r0.w; r0.w = max(0, r1.w); r0.w = hazeParams.w * r0.w; r0.w = 1.44269502 * r0.w; r0.w = exp2(r0.w); r3.w = 1 + -r0.w; r4.xyz = fogColour.xyz; r5.xyzw = -r4.xyzw + r3.xyzw; r3.xyzw = r3.wwww * r5.xyzw + r4.xyzw; o1.xyz = r3.xyz * r3.www; o1.w = 1 + -r3.w; r3.xy = interactiveParams2.wz * float2(1,-1); r3.xy = interactiveParams4.xx * r3.xy; r0.w = timer + 0.5; r3.xy = r0.ww * r3.xy; r3.zw = float2(0.0500000007,0.0500000007) * r1.xz; r3.xy = r3.zw * interactiveParams4.xx + r3.xy; o2.w = r3.x; o3.w = r3.y; r4.xyz = vicp[0][1].yyy * model._m01_m11_m21; r4.xyz = model._m00_m10_m20 * vicp[0][1].xxx + r4.xyz; r4.xyz = model._m02_m12_m22 * vicp[0][1].zzz + r4.xyz; r0.w = dot(r4.xyz, r4.xyz); r0.w = rsqrt(r0.w); r4.xyz = r4.xyz * r0.www; o2.xyz = r4.xyz; r5.xyz = vicp[0][2].yyy * model._m01_m11_m21; r5.xyz = model._m00_m10_m20 * vicp[0][2].xxx + r5.xyz; r5.xyz = model._m02_m12_m22 * vicp[0][2].zzz + r5.xyz; r0.w = dot(r5.xyz, r5.xyz); r0.w = rsqrt(r0.w); r5.xyz = r5.xyz * r0.www; o3.xyz = r5.xyz; r6.xyz = r5.yzx * r4.zxy; r4.xyz = r4.yzx * r5.zxy + -r6.xyz; r0.w = dot(r4.xyz, r4.xyz); r0.w = rsqrt(r0.w); o4.xyz = r4.xyz * r0.www; o4.w = vicp[0][4].x; r4.xyzw = normalParams4.xyzw + r1.xzxz; o7.xyz = r1.xyz; r1.xyzw = normalParams2.xxyy * r4.xyzw; r1.xyzw = specularParams.wwww * r1.xyzw; o5.xyzw = float4(0.0500000007,0.0500000007,0.0500000007,0.0500000007) * r1.xyzw; r1.xy = specularParams.ww * r3.zw; r1.zw = waveParams.xy * timer; r1.zw = normalParams1.zz * r1.zw; o6.xy = r1.xy * normalParams2.zz + r1.zw; r1.xy = interactiveParams3.ww * interactiveParams2.zw; r1.xy = timer * r1.xy; o6.zw = r3.zw * interactiveParams3.ww + r1.xy; o8.x = dot(float2(0.5,0.5), r2.xw); o8.y = dot(float2(0.5,0.5), r2.yw); o8.zw = r2.zw; r0.y = modelView._m21 * r0.y; r0.x = modelView._m20 * r0.x + r0.y; r0.x = modelView._m22 * r0.z + r0.x; r0.x = modelView._m23 + r0.x; o9.z = r0.x; r0.x = specularParams.z + r0.x; o9.w = 0.0199999996 * r0.x; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.63 on Sun Jul 16 09:20:53 2017 // // // Buffer Definitions: // // cbuffer $Globals // { // // float HDRRange; // Offset: 464 Size: 4 [unused] // float4x4 model; // Offset: 480 Size: 64 // float4x4 modelViewProj; // Offset: 544 Size: 64 // float2 AmbientLightMapScale; // Offset: 608 Size: 8 [unused] // float4x4 modelView; // Offset: 624 Size: 64 // float4x4 prevViewProj; // Offset: 688 Size: 64 [unused] // float4x4 prevModel; // Offset: 752 Size: 64 [unused] // float4 tesselationParams; // Offset: 816 Size: 16 // float4 normalParams1; // Offset: 832 Size: 16 // float4 normalParams2; // Offset: 848 Size: 16 // float4 normalParams3; // Offset: 864 Size: 16 [unused] // float4 normalParams4; // Offset: 880 Size: 16 // float timer; // Offset: 896 Size: 4 // float3 shoreColour; // Offset: 900 Size: 12 [unused] // float4 shoreParams1; // Offset: 912 Size: 16 [unused] // float3 shoreParams2; // Offset: 928 Size: 12 [unused] // float blendValue; // Offset: 940 Size: 4 [unused] // float4 specularParams; // Offset: 944 Size: 16 // float4 waveParams; // Offset: 960 Size: 16 // float4 interactiveParams2; // Offset: 976 Size: 16 // float4 interactiveParams3; // Offset: 992 Size: 16 // float4 interactiveParams4; // Offset: 1008 Size: 16 // float4 tesselationAmount; // Offset: 1024 Size: 16 [unused] // // } // // cbuffer CameraParamsConstantBuffer // { // // float4x4 projection; // Offset: 0 Size: 64 [unused] // float4x4 viewProjection; // Offset: 64 Size: 64 [unused] // row_major float3x4 view; // Offset: 128 Size: 48 [unused] // row_major float3x4 viewI; // Offset: 176 Size: 48 [unused] // float3 eyePositionWS; // Offset: 224 Size: 12 // float4x4 inverseProj; // Offset: 240 Size: 64 [unused] // bool leftEye; // Offset: 304 Size: 4 [unused] // bool padding3[3]; // Offset: 320 Size: 36 [unused] // // } // // cbuffer PerFrameConstantBuffer // { // // float4 colorBufferEncodingParams; // Offset: 0 Size: 16 [unused] // float4 envMapEncodingParams; // Offset: 16 Size: 16 [unused] // float4 velocityEncodingParams; // Offset: 32 Size: 16 [unused] // float4 snowEffectsParam2; // Offset: 48 Size: 16 [unused] // float4 sunDirectionAndTime; // Offset: 64 Size: 16 // float4 sunColour; // Offset: 80 Size: 16 [unused] // float4 skylightColour; // Offset: 96 Size: 16 [unused] // float4 ambientOcclusionScales; // Offset: 112 Size: 16 [unused] // float4 backlightColour; // Offset: 128 Size: 16 [unused] // float4 specularScales; // Offset: 144 Size: 16 [unused] // float3 specularDirection; // Offset: 160 Size: 12 [unused] // float4 specularColourAndMultiplier;// Offset: 176 Size: 16 [unused] // float4 fogColour; // Offset: 192 Size: 16 // float4 fogParams; // Offset: 208 Size: 16 // float4 hazeParams; // Offset: 224 Size: 16 // float4 hazeParams2; // Offset: 240 Size: 16 // float4 nightLightmapParam1; // Offset: 256 Size: 16 [unused] // float4 nightLightmapParam2; // Offset: 272 Size: 16 [unused] // float4 wetLightingParam; // Offset: 288 Size: 16 [unused] // float4 snowEffectsParam; // Offset: 304 Size: 16 [unused] // float4 ambientColour; // Offset: 320 Size: 16 [unused] // float4 shadowBlend; // Offset: 336 Size: 16 [unused] // float4 maskParams; // Offset: 352 Size: 16 [unused] // float4 deferredSpecularParams; // Offset: 368 Size: 16 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // TWaterRippleMap sampler NA NA 0 1 // TWaterRippleMap texture float4 2d 0 1 // $Globals cbuffer NA NA 0 1 // PerFrameConstantBuffer cbuffer NA NA 1 1 // CameraParamsConstantBuffer cbuffer NA NA 3 1 // // // // Patch Constant signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_TessFactor 0 x 0 TRIEDGE float // SV_TessFactor 1 x 1 TRIEDGE float // SV_TessFactor 2 x 2 TRIEDGE float // SV_InsideTessFactor 0 x 3 TRIINT float // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // WORLDPOS 0 xyzw 0 NONE float xyzw // NORMAL 0 xyz 1 NONE float xyz // TANGENT 0 xyz 2 NONE float xyz // BINORMAL 0 xyz 3 NONE float // COLOR 0 xyzw 4 NONE float x // TEXCOORD 0 xyzw 5 NONE float xy w // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xyzw // COLOR 1 xyzw 1 NONE float xyzw // TEXCOORD 0 xyzw 2 NONE float xyzw // TEXCOORD 1 xyzw 3 NONE float xyzw // TEXCOORD 2 xyzw 4 NONE float xyzw // TEXCOORD 3 xyzw 5 NONE float xyzw // TEXCOORD 4 xyzw 6 NONE float xyzw // TEXCOORD 5 xyz 7 NONE float xyz // TEXCOORD 6 xyzw 8 NONE float xyzw // TEXCOORD 7 xyzw 9 NONE float xyzw // // Tessellation Domain # of control points // -------------------- -------------------- // Triangle 3 // ds_5_0 dcl_input_control_point_count 3 dcl_tessellator_domain domain_tri dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[64], immediateIndexed dcl_constantbuffer cb3[15], immediateIndexed dcl_constantbuffer cb1[16], immediateIndexed dcl_sampler s0, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_input vDomain.xyz dcl_input vicp[3][0].xyzw dcl_input vicp[3][1].xyz dcl_input vicp[3][2].xyz dcl_input vicp[3][4].x dcl_input vicp[3][5].xyw dcl_output_siv o0.xyzw, position dcl_output o1.xyzw dcl_output o2.xyzw dcl_output o3.xyzw dcl_output o4.xyzw dcl_output o5.xyzw dcl_output o6.xyzw dcl_output o7.xyz dcl_output o8.xyzw dcl_output o9.xyzw dcl_temps 7 mul r0.xyz, vDomain.xxxx, vicp[1][5].xywx mad r0.xyz, vicp[0][5].xywx, vDomain.zzzz, r0.xyzx mad r0.xyz, vicp[2][5].xywx, vDomain.yyyy, r0.xyzx sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyxx, t0.xyzw, s0, l(1.000000) add r1.yz, r1.yyzy, l(0.000000, 0.00196078443, 0.00196078443, 0.000000) mad r1.yz, r1.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) dp2 r0.w, r1.yzyy, r1.yzyy sqrt r0.w, r0.w mul r0.w, r0.w, r1.x mul r0.w, r0.w, cb0[51].y min r0.w, r0.w, cb0[51].x mul r0.z, r0.w, r0.z mov o9.xy, r0.xyxx mul r1.xyzw, vDomain.xxxx, vicp[1][0].xyzw mad r1.xyzw, vicp[0][0].xyzw, vDomain.zzzz, r1.xyzw mad r1.xyzw, vicp[2][0].xyzw, vDomain.yyyy, r1.xyzw mad r0.xyz, vicp[0][1].xyzx, r0.zzzz, r1.xyzx mul r2.xyzw, r0.yyyy, cb0[35].xyzw mad r2.xyzw, cb0[34].xyzw, r0.xxxx, r2.xyzw mad r2.xyzw, cb0[36].xyzw, r0.zzzz, r2.xyzw mad r2.xyzw, cb0[37].xyzw, r1.wwww, r2.xyzw mov o0.xyzw, r2.xyzw mul r1.xyz, r0.yyyy, cb0[31].xyzx mad r1.xyz, cb0[30].xyzx, r0.xxxx, r1.xyzx mad r1.xyz, cb0[32].xyzx, r0.zzzz, r1.xyzx mad r1.xyz, cb0[33].xyzx, r1.wwww, r1.xyzx add r3.xyz, r1.xyzx, -cb3[14].xyzx dp3 r0.w, r3.xyzx, r3.xyzx sqrt r0.w, r0.w div r3.xyz, r3.xyzx, r0.wwww dp3_sat r1.w, r3.xyzx, cb1[4].xyzx log r1.w, r1.w mul r1.w, r1.w, cb1[15].w exp r1.w, r1.w add r3.xyz, -cb1[14].xyzx, cb1[15].xyzx mad r3.xyz, r1.wwww, r3.xyzx, cb1[14].xyzx div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb1[13].z add r1.w, r0.w, -r1.w add r0.w, r0.w, l(-30.000000) mul_sat r0.w, r0.w, cb1[13].z mul r4.w, r0.w, cb1[13].w max r0.w, r1.w, l(0.000000) mul r0.w, r0.w, cb1[14].w mul r0.w, r0.w, l(1.442695) exp r0.w, r0.w add r3.w, -r0.w, l(1.000000) mov r4.xyz, cb1[12].xyzx add r5.xyzw, r3.xyzw, -r4.xyzw mad r3.xyzw, r3.wwww, r5.xyzw, r4.xyzw mul o1.xyz, r3.wwww, r3.xyzx add o1.w, -r3.w, l(1.000000) mul r3.xy, l(1.000000, -1.000000, 0.000000, 0.000000), cb0[61].wzww mul r3.xy, r3.xyxx, cb0[63].xxxx add r0.w, l(0.500000), cb0[56].x mul r3.xy, r3.xyxx, r0.wwww mul r3.zw, r1.xxxz, l(0.000000, 0.000000, 0.050000, 0.050000) mad r3.xy, r3.zwzz, cb0[63].xxxx, r3.xyxx mov o2.w, r3.x mov o3.w, r3.y mul r4.xyz, cb0[31].xyzx, vicp[0][1].yyyy mad r4.xyz, cb0[30].xyzx, vicp[0][1].xxxx, r4.xyzx mad r4.xyz, cb0[32].xyzx, vicp[0][1].zzzz, r4.xyzx dp3 r0.w, r4.xyzx, r4.xyzx rsq r0.w, r0.w mul r4.xyz, r0.wwww, r4.xyzx mov o2.xyz, r4.xyzx mul r5.xyz, cb0[31].xyzx, vicp[0][2].yyyy mad r5.xyz, cb0[30].xyzx, vicp[0][2].xxxx, r5.xyzx mad r5.xyz, cb0[32].xyzx, vicp[0][2].zzzz, r5.xyzx dp3 r0.w, r5.xyzx, r5.xyzx rsq r0.w, r0.w mul r5.xyz, r0.wwww, r5.xyzx mov o3.xyz, r5.xyzx mul r6.xyz, r4.zxyz, r5.yzxy mad r4.xyz, r4.yzxy, r5.zxyz, -r6.xyzx dp3 r0.w, r4.xyzx, r4.xyzx rsq r0.w, r0.w mul o4.xyz, r0.wwww, r4.xyzx mov o4.w, vicp[0][4].x add r4.xyzw, r1.xzxz, cb0[55].xyzw mov o7.xyz, r1.xyzx mul r1.xyzw, r4.xyzw, cb0[53].xxyy mul r1.xyzw, r1.xyzw, cb0[59].wwww mul o5.xyzw, r1.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000) mul r1.xy, r3.zwzz, cb0[59].wwww mul r1.zw, cb0[56].xxxx, cb0[60].xxxy mul r1.zw, r1.zzzw, cb0[52].zzzz mad o6.xy, r1.xyxx, cb0[53].zzzz, r1.zwzz mul r1.xy, cb0[61].zwzz, cb0[62].wwww mul r1.xy, r1.xyxx, cb0[56].xxxx mad o6.zw, r3.zzzw, cb0[62].wwww, r1.xxxy dp2 o8.x, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xwxx dp2 o8.y, l(0.500000, 0.500000, 0.000000, 0.000000), r2.ywyy mov o8.zw, r2.zzzw mul r0.y, r0.y, cb0[40].z mad r0.x, cb0[39].z, r0.x, r0.y mad r0.x, cb0[41].z, r0.z, r0.x add r0.x, r0.x, cb0[42].z mov o9.z, r0.x add r0.x, r0.x, cb0[59].z mul o9.w, r0.x, l(0.020000) ret // Approximately 102 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
I think I know what is happening. The tesselation is on a way. When I disable it the registers are matching. Does the current version of 3DM fully support the hull/domain shaders? When I try to dump them the hull shader has empty main function and the domain shader does not dump at all.

edit: I've managed to dump the domain shader. It wasn't active while I was trying to dump it before. It needs manual fixing though.

Any hints would be appreciated

// ---- Created with 3Dmigoto v1.2.63 on Sun Jul 16 09:20:53 2017

cbuffer _Globals : register(b0)
{
float HDRRange : packoffset(c29);
float4x4 model : packoffset(c30);
float4x4 modelViewProj : packoffset(c34);
float2 AmbientLightMapScale : packoffset(c38);
float4x4 modelView : packoffset(c39);
float4x4 prevViewProj : packoffset(c43);
float4x4 prevModel : packoffset(c47);
float4 tesselationParams : packoffset(c51);
float4 normalParams1 : packoffset(c52);
float4 normalParams2 : packoffset(c53);
float4 normalParams3 : packoffset(c54);
float4 normalParams4 : packoffset(c55);
float timer : packoffset(c56);
float3 shoreColour : packoffset(c56.y);
float4 shoreParams1 : packoffset(c57);
float3 shoreParams2 : packoffset(c58);
float blendValue : packoffset(c58.w);
float4 specularParams : packoffset(c59);
float4 waveParams : packoffset(c60);
float4 interactiveParams2 : packoffset(c61);
float4 interactiveParams3 : packoffset(c62);
float4 interactiveParams4 : packoffset(c63);
float4 tesselationAmount : packoffset(c64);
}

cbuffer CameraParamsConstantBuffer : register(b3)
{
float4x4 projection : packoffset(c0);
float4x4 viewProjection : packoffset(c4);
row_major float3x4 view : packoffset(c8);
row_major float3x4 viewI : packoffset(c11);
float3 eyePositionWS : packoffset(c14);
float4x4 inverseProj : packoffset(c15);
bool leftEye : packoffset(c19);
bool padding3[3] : packoffset(c20);
}

cbuffer PerFrameConstantBuffer : register(b1)
{
float4 colorBufferEncodingParams : packoffset(c0);
float4 envMapEncodingParams : packoffset(c1);
float4 velocityEncodingParams : packoffset(c2);
float4 snowEffectsParam2 : packoffset(c3);
float4 sunDirectionAndTime : packoffset(c4);
float4 sunColour : packoffset(c5);
float4 skylightColour : packoffset(c6);
float4 ambientOcclusionScales : packoffset(c7);
float4 backlightColour : packoffset(c8);
float4 specularScales : packoffset(c9);
float3 specularDirection : packoffset(c10);
float4 specularColourAndMultiplier : packoffset(c11);
float4 fogColour : packoffset(c12);
float4 fogParams : packoffset(c13);
float4 hazeParams : packoffset(c14);
float4 hazeParams2 : packoffset(c15);
float4 nightLightmapParam1 : packoffset(c16);
float4 nightLightmapParam2 : packoffset(c17);
float4 wetLightingParam : packoffset(c18);
float4 snowEffectsParam : packoffset(c19);
float4 ambientColour : packoffset(c20);
float4 shadowBlend : packoffset(c21);
float4 maskParams : packoffset(c22);
float4 deferredSpecularParams : packoffset(c23);
}

SamplerState TWaterRippleMap_s : register(s0);
Texture2D<float4> TWaterRippleMap : register(t0);


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


void main(
float4 v0 : WORLDPOS0,
float3 v1 : NORMAL0,
float3 v2 : TANGENT0,
float3 v3 : BINORMAL0,
float4 v4 : COLOR0,
float4 v5 : TEXCOORD0,
out float4 o0 : SV_Position0,
out float4 o1 : COLOR1,
out float4 o2 : TEXCOORD0,
out float4 o3 : TEXCOORD1,
out float4 o4 : TEXCOORD2,
out float4 o5 : TEXCOORD3,
out float4 o6 : TEXCOORD4,
out float4 o7 : TEXCOORD5,
out float4 o8 : TEXCOORD6,
out float4 o9 : TEXCOORD7)
{
// Needs manual fix for instruction:
// unknown dcl_: dcl_input_control_point_count 3
// Needs manual fix for instruction:
// unknown dcl_: dcl_tessellator_domain domain_tri
float4 r0,r1,r2,r3,r4,r5,r6;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = vicp[1][5].xyw * vDomain.xxx;
r0.xyz = vicp[0][5].xyw * vDomain.zzz + r0.xyz;
r0.xyz = vicp[2][5].xyw * vDomain.yyy + r0.xyz;
r1.xyz = TWaterRippleMap.SampleLevel(TWaterRippleMap_s, r0.xy, 1).xyz;
r1.yz = float2(0.00196078443,0.00196078443) + r1.yz;
r1.yz = r1.yz * float2(2,2) + float2(-1,-1);
r0.w = dot(r1.yz, r1.yz);
r0.w = sqrt(r0.w);
r0.w = r1.x * r0.w;
r0.w = tesselationParams.y * r0.w;
r0.w = min(tesselationParams.x, r0.w);
r0.z = r0.z * r0.w;
o9.xy = r0.xy;
r1.xyzw = vicp[1][0].xyzw * vDomain.xxxx;
r1.xyzw = vicp[0][0].xyzw * vDomain.zzzz + r1.xyzw;
r1.xyzw = vicp[2][0].xyzw * vDomain.yyyy + r1.xyzw;
r0.xyz = vicp[0][1].xyz * r0.zzz + r1.xyz;
r2.xyzw = modelViewProj._m01_m11_m21_m31 * r0.yyyy;
r2.xyzw = modelViewProj._m00_m10_m20_m30 * r0.xxxx + r2.xyzw;
r2.xyzw = modelViewProj._m02_m12_m22_m32 * r0.zzzz + r2.xyzw;
r2.xyzw = modelViewProj._m03_m13_m23_m33 * r1.wwww + r2.xyzw;
o0.xyzw = r2.xyzw;
r1.xyz = model._m01_m11_m21 * r0.yyy;
r1.xyz = model._m00_m10_m20 * r0.xxx + r1.xyz;
r1.xyz = model._m02_m12_m22 * r0.zzz + r1.xyz;
r1.xyz = model._m03_m13_m23 * r1.www + r1.xyz;
r3.xyz = -eyePositionWS.xyz + r1.xyz;
r0.w = dot(r3.xyz, r3.xyz);
r0.w = sqrt(r0.w);
r3.xyz = r3.xyz / r0.www;
r1.w = saturate(dot(r3.xyz, sunDirectionAndTime.xyz));
r1.w = log2(r1.w);
r1.w = hazeParams2.w * r1.w;
r1.w = exp2(r1.w);
r3.xyz = hazeParams2.xyz + -hazeParams.xyz;
r3.xyz = r1.www * r3.xyz + hazeParams.xyz;
r1.w = 1 / fogParams.z;
r1.w = -r1.w + r0.w;
r0.w = -30 + r0.w;
r0.w = saturate(fogParams.z * r0.w);
r4.w = fogParams.w * r0.w;
r0.w = max(0, r1.w);
r0.w = hazeParams.w * r0.w;
r0.w = 1.44269502 * r0.w;
r0.w = exp2(r0.w);
r3.w = 1 + -r0.w;
r4.xyz = fogColour.xyz;
r5.xyzw = -r4.xyzw + r3.xyzw;
r3.xyzw = r3.wwww * r5.xyzw + r4.xyzw;
o1.xyz = r3.xyz * r3.www;
o1.w = 1 + -r3.w;
r3.xy = interactiveParams2.wz * float2(1,-1);
r3.xy = interactiveParams4.xx * r3.xy;
r0.w = timer + 0.5;
r3.xy = r0.ww * r3.xy;
r3.zw = float2(0.0500000007,0.0500000007) * r1.xz;
r3.xy = r3.zw * interactiveParams4.xx + r3.xy;
o2.w = r3.x;
o3.w = r3.y;
r4.xyz = vicp[0][1].yyy * model._m01_m11_m21;
r4.xyz = model._m00_m10_m20 * vicp[0][1].xxx + r4.xyz;
r4.xyz = model._m02_m12_m22 * vicp[0][1].zzz + r4.xyz;
r0.w = dot(r4.xyz, r4.xyz);
r0.w = rsqrt(r0.w);
r4.xyz = r4.xyz * r0.www;
o2.xyz = r4.xyz;
r5.xyz = vicp[0][2].yyy * model._m01_m11_m21;
r5.xyz = model._m00_m10_m20 * vicp[0][2].xxx + r5.xyz;
r5.xyz = model._m02_m12_m22 * vicp[0][2].zzz + r5.xyz;
r0.w = dot(r5.xyz, r5.xyz);
r0.w = rsqrt(r0.w);
r5.xyz = r5.xyz * r0.www;
o3.xyz = r5.xyz;
r6.xyz = r5.yzx * r4.zxy;
r4.xyz = r4.yzx * r5.zxy + -r6.xyz;
r0.w = dot(r4.xyz, r4.xyz);
r0.w = rsqrt(r0.w);
o4.xyz = r4.xyz * r0.www;
o4.w = vicp[0][4].x;
r4.xyzw = normalParams4.xyzw + r1.xzxz;
o7.xyz = r1.xyz;
r1.xyzw = normalParams2.xxyy * r4.xyzw;
r1.xyzw = specularParams.wwww * r1.xyzw;
o5.xyzw = float4(0.0500000007,0.0500000007,0.0500000007,0.0500000007) * r1.xyzw;
r1.xy = specularParams.ww * r3.zw;
r1.zw = waveParams.xy * timer;
r1.zw = normalParams1.zz * r1.zw;
o6.xy = r1.xy * normalParams2.zz + r1.zw;
r1.xy = interactiveParams3.ww * interactiveParams2.zw;
r1.xy = timer * r1.xy;
o6.zw = r3.zw * interactiveParams3.ww + r1.xy;
o8.x = dot(float2(0.5,0.5), r2.xw);
o8.y = dot(float2(0.5,0.5), r2.yw);
o8.zw = r2.zw;
r0.y = modelView._m21 * r0.y;
r0.x = modelView._m20 * r0.x + r0.y;
r0.x = modelView._m22 * r0.z + r0.x;
r0.x = modelView._m23 + r0.x;
o9.z = r0.x;
r0.x = specularParams.z + r0.x;
o9.w = 0.0199999996 * r0.x;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.63 on Sun Jul 16 09:20:53 2017
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float HDRRange; // Offset: 464 Size: 4 [unused]
// float4x4 model; // Offset: 480 Size: 64
// float4x4 modelViewProj; // Offset: 544 Size: 64
// float2 AmbientLightMapScale; // Offset: 608 Size: 8 [unused]
// float4x4 modelView; // Offset: 624 Size: 64
// float4x4 prevViewProj; // Offset: 688 Size: 64 [unused]
// float4x4 prevModel; // Offset: 752 Size: 64 [unused]
// float4 tesselationParams; // Offset: 816 Size: 16
// float4 normalParams1; // Offset: 832 Size: 16
// float4 normalParams2; // Offset: 848 Size: 16
// float4 normalParams3; // Offset: 864 Size: 16 [unused]
// float4 normalParams4; // Offset: 880 Size: 16
// float timer; // Offset: 896 Size: 4
// float3 shoreColour; // Offset: 900 Size: 12 [unused]
// float4 shoreParams1; // Offset: 912 Size: 16 [unused]
// float3 shoreParams2; // Offset: 928 Size: 12 [unused]
// float blendValue; // Offset: 940 Size: 4 [unused]
// float4 specularParams; // Offset: 944 Size: 16
// float4 waveParams; // Offset: 960 Size: 16
// float4 interactiveParams2; // Offset: 976 Size: 16
// float4 interactiveParams3; // Offset: 992 Size: 16
// float4 interactiveParams4; // Offset: 1008 Size: 16
// float4 tesselationAmount; // Offset: 1024 Size: 16 [unused]
//
// }
//
// cbuffer CameraParamsConstantBuffer
// {
//
// float4x4 projection; // Offset: 0 Size: 64 [unused]
// float4x4 viewProjection; // Offset: 64 Size: 64 [unused]
// row_major float3x4 view; // Offset: 128 Size: 48 [unused]
// row_major float3x4 viewI; // Offset: 176 Size: 48 [unused]
// float3 eyePositionWS; // Offset: 224 Size: 12
// float4x4 inverseProj; // Offset: 240 Size: 64 [unused]
// bool leftEye; // Offset: 304 Size: 4 [unused]
// bool padding3[3]; // Offset: 320 Size: 36 [unused]
//
// }
//
// cbuffer PerFrameConstantBuffer
// {
//
// float4 colorBufferEncodingParams; // Offset: 0 Size: 16 [unused]
// float4 envMapEncodingParams; // Offset: 16 Size: 16 [unused]
// float4 velocityEncodingParams; // Offset: 32 Size: 16 [unused]
// float4 snowEffectsParam2; // Offset: 48 Size: 16 [unused]
// float4 sunDirectionAndTime; // Offset: 64 Size: 16
// float4 sunColour; // Offset: 80 Size: 16 [unused]
// float4 skylightColour; // Offset: 96 Size: 16 [unused]
// float4 ambientOcclusionScales; // Offset: 112 Size: 16 [unused]
// float4 backlightColour; // Offset: 128 Size: 16 [unused]
// float4 specularScales; // Offset: 144 Size: 16 [unused]
// float3 specularDirection; // Offset: 160 Size: 12 [unused]
// float4 specularColourAndMultiplier;// Offset: 176 Size: 16 [unused]
// float4 fogColour; // Offset: 192 Size: 16
// float4 fogParams; // Offset: 208 Size: 16
// float4 hazeParams; // Offset: 224 Size: 16
// float4 hazeParams2; // Offset: 240 Size: 16
// float4 nightLightmapParam1; // Offset: 256 Size: 16 [unused]
// float4 nightLightmapParam2; // Offset: 272 Size: 16 [unused]
// float4 wetLightingParam; // Offset: 288 Size: 16 [unused]
// float4 snowEffectsParam; // Offset: 304 Size: 16 [unused]
// float4 ambientColour; // Offset: 320 Size: 16 [unused]
// float4 shadowBlend; // Offset: 336 Size: 16 [unused]
// float4 maskParams; // Offset: 352 Size: 16 [unused]
// float4 deferredSpecularParams; // Offset: 368 Size: 16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// TWaterRippleMap sampler NA NA 0 1
// TWaterRippleMap texture float4 2d 0 1
// $Globals cbuffer NA NA 0 1
// PerFrameConstantBuffer cbuffer NA NA 1 1
// CameraParamsConstantBuffer cbuffer NA NA 3 1
//
//
//
// Patch Constant signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TessFactor 0 x 0 TRIEDGE float
// SV_TessFactor 1 x 1 TRIEDGE float
// SV_TessFactor 2 x 2 TRIEDGE float
// SV_InsideTessFactor 0 x 3 TRIINT float
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// WORLDPOS 0 xyzw 0 NONE float xyzw
// NORMAL 0 xyz 1 NONE float xyz
// TANGENT 0 xyz 2 NONE float xyz
// BINORMAL 0 xyz 3 NONE float
// COLOR 0 xyzw 4 NONE float x
// TEXCOORD 0 xyzw 5 NONE float xy w
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw
// COLOR 1 xyzw 1 NONE float xyzw
// TEXCOORD 0 xyzw 2 NONE float xyzw
// TEXCOORD 1 xyzw 3 NONE float xyzw
// TEXCOORD 2 xyzw 4 NONE float xyzw
// TEXCOORD 3 xyzw 5 NONE float xyzw
// TEXCOORD 4 xyzw 6 NONE float xyzw
// TEXCOORD 5 xyz 7 NONE float xyz
// TEXCOORD 6 xyzw 8 NONE float xyzw
// TEXCOORD 7 xyzw 9 NONE float xyzw
//
// Tessellation Domain # of control points
// -------------------- --------------------
// Triangle 3
//
ds_5_0
dcl_input_control_point_count 3
dcl_tessellator_domain domain_tri
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[64], immediateIndexed
dcl_constantbuffer cb3[15], immediateIndexed
dcl_constantbuffer cb1[16], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input vDomain.xyz
dcl_input vicp[3][0].xyzw
dcl_input vicp[3][1].xyz
dcl_input vicp[3][2].xyz
dcl_input vicp[3][4].x
dcl_input vicp[3][5].xyw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyz
dcl_output o8.xyzw
dcl_output o9.xyzw
dcl_temps 7
mul r0.xyz, vDomain.xxxx, vicp[1][5].xywx
mad r0.xyz, vicp[0][5].xywx, vDomain.zzzz, r0.xyzx
mad r0.xyz, vicp[2][5].xywx, vDomain.yyyy, r0.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyxx, t0.xyzw, s0, l(1.000000)
add r1.yz, r1.yyzy, l(0.000000, 0.00196078443, 0.00196078443, 0.000000)
mad r1.yz, r1.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
dp2 r0.w, r1.yzyy, r1.yzyy
sqrt r0.w, r0.w
mul r0.w, r0.w, r1.x
mul r0.w, r0.w, cb0[51].y
min r0.w, r0.w, cb0[51].x
mul r0.z, r0.w, r0.z
mov o9.xy, r0.xyxx
mul r1.xyzw, vDomain.xxxx, vicp[1][0].xyzw
mad r1.xyzw, vicp[0][0].xyzw, vDomain.zzzz, r1.xyzw
mad r1.xyzw, vicp[2][0].xyzw, vDomain.yyyy, r1.xyzw
mad r0.xyz, vicp[0][1].xyzx, r0.zzzz, r1.xyzx
mul r2.xyzw, r0.yyyy, cb0[35].xyzw
mad r2.xyzw, cb0[34].xyzw, r0.xxxx, r2.xyzw
mad r2.xyzw, cb0[36].xyzw, r0.zzzz, r2.xyzw
mad r2.xyzw, cb0[37].xyzw, r1.wwww, r2.xyzw
mov o0.xyzw, r2.xyzw
mul r1.xyz, r0.yyyy, cb0[31].xyzx
mad r1.xyz, cb0[30].xyzx, r0.xxxx, r1.xyzx
mad r1.xyz, cb0[32].xyzx, r0.zzzz, r1.xyzx
mad r1.xyz, cb0[33].xyzx, r1.wwww, r1.xyzx
add r3.xyz, r1.xyzx, -cb3[14].xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
sqrt r0.w, r0.w
div r3.xyz, r3.xyzx, r0.wwww
dp3_sat r1.w, r3.xyzx, cb1[4].xyzx
log r1.w, r1.w
mul r1.w, r1.w, cb1[15].w
exp r1.w, r1.w
add r3.xyz, -cb1[14].xyzx, cb1[15].xyzx
mad r3.xyz, r1.wwww, r3.xyzx, cb1[14].xyzx
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb1[13].z
add r1.w, r0.w, -r1.w
add r0.w, r0.w, l(-30.000000)
mul_sat r0.w, r0.w, cb1[13].z
mul r4.w, r0.w, cb1[13].w
max r0.w, r1.w, l(0.000000)
mul r0.w, r0.w, cb1[14].w
mul r0.w, r0.w, l(1.442695)
exp r0.w, r0.w
add r3.w, -r0.w, l(1.000000)
mov r4.xyz, cb1[12].xyzx
add r5.xyzw, r3.xyzw, -r4.xyzw
mad r3.xyzw, r3.wwww, r5.xyzw, r4.xyzw
mul o1.xyz, r3.wwww, r3.xyzx
add o1.w, -r3.w, l(1.000000)
mul r3.xy, l(1.000000, -1.000000, 0.000000, 0.000000), cb0[61].wzww
mul r3.xy, r3.xyxx, cb0[63].xxxx
add r0.w, l(0.500000), cb0[56].x
mul r3.xy, r3.xyxx, r0.wwww
mul r3.zw, r1.xxxz, l(0.000000, 0.000000, 0.050000, 0.050000)
mad r3.xy, r3.zwzz, cb0[63].xxxx, r3.xyxx
mov o2.w, r3.x
mov o3.w, r3.y
mul r4.xyz, cb0[31].xyzx, vicp[0][1].yyyy
mad r4.xyz, cb0[30].xyzx, vicp[0][1].xxxx, r4.xyzx
mad r4.xyz, cb0[32].xyzx, vicp[0][1].zzzz, r4.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
rsq r0.w, r0.w
mul r4.xyz, r0.wwww, r4.xyzx
mov o2.xyz, r4.xyzx
mul r5.xyz, cb0[31].xyzx, vicp[0][2].yyyy
mad r5.xyz, cb0[30].xyzx, vicp[0][2].xxxx, r5.xyzx
mad r5.xyz, cb0[32].xyzx, vicp[0][2].zzzz, r5.xyzx
dp3 r0.w, r5.xyzx, r5.xyzx
rsq r0.w, r0.w
mul r5.xyz, r0.wwww, r5.xyzx
mov o3.xyz, r5.xyzx
mul r6.xyz, r4.zxyz, r5.yzxy
mad r4.xyz, r4.yzxy, r5.zxyz, -r6.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
rsq r0.w, r0.w
mul o4.xyz, r0.wwww, r4.xyzx
mov o4.w, vicp[0][4].x
add r4.xyzw, r1.xzxz, cb0[55].xyzw
mov o7.xyz, r1.xyzx
mul r1.xyzw, r4.xyzw, cb0[53].xxyy
mul r1.xyzw, r1.xyzw, cb0[59].wwww
mul o5.xyzw, r1.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000)
mul r1.xy, r3.zwzz, cb0[59].wwww
mul r1.zw, cb0[56].xxxx, cb0[60].xxxy
mul r1.zw, r1.zzzw, cb0[52].zzzz
mad o6.xy, r1.xyxx, cb0[53].zzzz, r1.zwzz
mul r1.xy, cb0[61].zwzz, cb0[62].wwww
mul r1.xy, r1.xyxx, cb0[56].xxxx
mad o6.zw, r3.zzzw, cb0[62].wwww, r1.xxxy
dp2 o8.x, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xwxx
dp2 o8.y, l(0.500000, 0.500000, 0.000000, 0.000000), r2.ywyy
mov o8.zw, r2.zzzw
mul r0.y, r0.y, cb0[40].z
mad r0.x, cb0[39].z, r0.x, r0.y
mad r0.x, cb0[41].z, r0.z, r0.x
add r0.x, r0.x, cb0[42].z
mov o9.z, r0.x
add r0.x, r0.x, cb0[59].z
mul o9.w, r0.x, l(0.020000)
ret
// Approximately 102 instruction slots used

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

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/16/2017 08:18 AM   
Ah, that makes sense. The HullShader or DomainShader are modifying the pipeline, so the input to the PixelShader is the output of probably the DomainShader. For the Hull, Domain, and Geometry shaders, you are best off to use the ASM. The HLSL is incomplete, and I haven't looked at them in enough depth to know how to hand fix them yet. For example, I don't know what the HLSL would be to add the tesselator function, or what the control points mean. Sorry about that, but at present, that's the best we've got.
Ah, that makes sense. The HullShader or DomainShader are modifying the pipeline, so the input to the PixelShader is the output of probably the DomainShader.

For the Hull, Domain, and Geometry shaders, you are best off to use the ASM. The HLSL is incomplete, and I haven't looked at them in enough depth to know how to hand fix them yet. For example, I don't know what the HLSL would be to add the tesselator function, or what the control points mean.

Sorry about that, but at present, that's the best we've got.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 07/16/2017 08:52 AM   
[quote="bo3b"]Ah, that makes sense. The HullShader or DomainShader are modifying the pipeline, so the input to the PixelShader is the output of probably the DomainShader. For the Hull, Domain, and Geometry shaders, you are best off to use the ASM. The HLSL is incomplete, and I haven't looked at them in enough depth to know how to hand fix them yet. For example, I don't know what the HLSL would be to add the tesselator function, or what the control points mean. Sorry about that, but at present, that's the best we've got.[/quote] No worries Bo3b, I went the asm route.
bo3b said:Ah, that makes sense. The HullShader or DomainShader are modifying the pipeline, so the input to the PixelShader is the output of probably the DomainShader.

For the Hull, Domain, and Geometry shaders, you are best off to use the ASM. The HLSL is incomplete, and I haven't looked at them in enough depth to know how to hand fix them yet. For example, I don't know what the HLSL would be to add the tesselator function, or what the control points mean.

Sorry about that, but at present, that's the best we've got.


No worries Bo3b, I went the asm route.

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/16/2017 09:05 AM   
I'm glad that 3DM recompiles diassasemblies the shaders when you rename the shader file so I got all my modifications ready for copy&paste in the asm :) saves a lot of work.
I'm glad that 3DM recompiles diassasemblies the shaders when you rename the shader file so I got all my modifications ready for copy&paste in the asm :) saves a lot of work.

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/16/2017 09:12 AM   
  96 / 141    
Scroll To Top