Kingdom Come: Deliverance
  8 / 11    
Those shaders are covered by one of my regex's. I've discovered a limitation or bug that I reported in the 3DMigoto thread. Seems regex is a bit of a memory hog, and when you run out of memory it just stops patching shaders which might be why those indoor shaders weren't fixed for you. Will need to determine if it's a bug, or I may need to make my matching patterns a bit more lean (at the expense of accuracy :( ).
Those shaders are covered by one of my regex's. I've discovered a limitation or bug that I reported in the 3DMigoto thread. Seems regex is a bit of a memory hog, and when you run out of memory it just stops patching shaders which might be why those indoor shaders weren't fixed for you. Will need to determine if it's a bug, or I may need to make my matching patterns a bit more lean (at the expense of accuracy :( ).

3D Gaming Rig: CPU: i7 7700K @ 4.9Ghz | Mobo: Asus Maximus Hero VIII | RAM: Corsair Dominator 16GB | GPU: 2 x GTX 1080 Ti SLI | 3xSSDs for OS and Apps, 2 x HDD's for 11GB storage | PSU: Seasonic X-1250 M2| Case: Corsair C70 | Cooling: Corsair H115i Hydro cooler | Displays: Asus PG278QR, BenQ XL2420TX & BenQ HT1075 | OS: Windows 10 Pro + Windows 7 dual boot

Like my fixes? Dontations can be made to: www.paypal.me/DShanz or rshannonca@gmail.com
Like electronic music? Check out: www.soundcloud.com/dj-ryan-king

Posted 02/21/2018 06:35 PM   
[quote="DJ-RK"]Those shaders are covered by one of my regex's. I've discovered a limitation or bug that I reported in the 3DMigoto thread. Seems regex is a bit of a memory hog, and when you run out of memory it just stops patching shaders which might be why those indoor shaders weren't fixed for you. Will need to determine if it's a bug, or I may need to make my matching patterns a bit more lean (at the expense of accuracy :( ).[/quote] OK :-) If i uncomment the line you mentioned the whole screen turns intto black :-( or become crazy. leaving it as it is the fix is working for me, except the reflections that i cant fix with the uncommenting lines because of the behavior written above. i need some breake for today, hopfeully yu will make some progress, i appreciate it !! IF not please tell me and i will continue my stupid (but not always bad) try and error "fixing" strategy tomorrow.
DJ-RK said:Those shaders are covered by one of my regex's. I've discovered a limitation or bug that I reported in the 3DMigoto thread. Seems regex is a bit of a memory hog, and when you run out of memory it just stops patching shaders which might be why those indoor shaders weren't fixed for you. Will need to determine if it's a bug, or I may need to make my matching patterns a bit more lean (at the expense of accuracy :( ).


OK :-)

If i uncomment the line you mentioned the whole screen turns intto black :-( or become crazy. leaving it as it is the fix is working for me, except the reflections that i cant fix with the uncommenting lines because of the behavior written above.

i need some breake for today, hopfeully yu will make some progress, i appreciate it !! IF not please tell me and i will continue my stupid (but not always bad) try and error "fixing" strategy tomorrow.

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/21/2018 07:00 PM   
[quote="DJ-RK"][quote="Necropants"]Thanks for your work DJ-RK. I'll give it some more time in the oven, 3d doesn't seem to be kicking in properly at all for me, it's like the left and right image is not rendered correctly and bleeds into one another.[/quote] Hmmm, couple ways I can interpret that as. Is it a majorly bad broken effect, or is it a little more subtle? Do you see it when standing still, or only while moving? Are you able to capture it with a screenshot?[/quote] I'll take a screenshot for you tonight, but basically no, not subtle at all. Compatibility mode works but when enabling true 3d the image is flat and only moves to the side a bit, it's like it's not rendering both left and right images correctly. at all it looks 2d but you can see some things like UI elements double up on the flat image. I have completely removed Losti's fix but it still occurs, I am reluctant to do a DDU at this stage due to everything else working atm perfectly everywhere else, on my current driver and profile. but will do that later.
DJ-RK said:
Necropants said:Thanks for your work DJ-RK.
I'll give it some more time in the oven, 3d doesn't seem to be kicking in properly at all for me, it's like the left and right image is not rendered correctly and bleeds into one another.


Hmmm, couple ways I can interpret that as. Is it a majorly bad broken effect, or is it a little more subtle? Do you see it when standing still, or only while moving? Are you able to capture it with a screenshot?


I'll take a screenshot for you tonight, but basically no, not subtle at all. Compatibility mode works but when enabling true 3d the image is flat and only moves to the side a bit, it's like it's not rendering both left and right images correctly. at all it looks 2d but you can see some things like UI elements double up on the flat image.

I have completely removed Losti's fix but it still occurs, I am reluctant to do a DDU at this stage due to everything else working atm perfectly everywhere else, on my current driver and profile. but will do that later.

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
EVGA 1080TI SLI
Samsung SSD 840Pro
ASUS Z97-WS
3D Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

Posted 02/21/2018 10:17 PM   
[quote="Necropants"][quote="DJ-RK"][quote="Necropants"]Thanks for your work DJ-RK. I'll give it some more time in the oven, 3d doesn't seem to be kicking in properly at all for me, it's like the left and right image is not rendered correctly and bleeds into one another.[/quote] Hmmm, couple ways I can interpret that as. Is it a majorly bad broken effect, or is it a little more subtle? Do you see it when standing still, or only while moving? Are you able to capture it with a screenshot?[/quote] I'll take a screenshot for you tonight, but basically no, not subtle at all. Compatibility mode works but when enabling true 3d the image is flat and only moves to the side a bit, it's like it's not rendering both left and right images correctly. at all it looks 2d but you can see some things like UI elements double up on the flat image. I have completely removed Losti's fix but it still occurs, I am reluctant to do a DDU at this stage due to everything else working atm perfectly everywhere else, on my current driver and profile. but will do that later.[/quote] I have exactly the same issue ..
Necropants said:
DJ-RK said:
Necropants said:Thanks for your work DJ-RK.
I'll give it some more time in the oven, 3d doesn't seem to be kicking in properly at all for me, it's like the left and right image is not rendered correctly and bleeds into one another.


Hmmm, couple ways I can interpret that as. Is it a majorly bad broken effect, or is it a little more subtle? Do you see it when standing still, or only while moving? Are you able to capture it with a screenshot?


I'll take a screenshot for you tonight, but basically no, not subtle at all. Compatibility mode works but when enabling true 3d the image is flat and only moves to the side a bit, it's like it's not rendering both left and right images correctly. at all it looks 2d but you can see some things like UI elements double up on the flat image.

I have completely removed Losti's fix but it still occurs, I am reluctant to do a DDU at this stage due to everything else working atm perfectly everywhere else, on my current driver and profile. but will do that later.


I have exactly the same issue ..

GTX 1080ti - Rampage III Extreme - XEON i7 920 @ 4.0 GHz - 24 GB Ram - Windows 7 64 - ASUS PG278QR

Posted 02/21/2018 11:00 PM   
[quote="Losti"]OK i have tryed DJ-WIP and the indoor shadowows are broken but can be fixed using my indor shadow fix. Even rain and so on... This is 607822f0edc9fc24-ps_replace.txt and 320d0f236f7e781c-vs_replace.txt of my fix. for the shadows inside for example. With this every thing is working OK as far as i an see, but the reflections are borken but you mentioned it. May be you have to delete the shader chache files or set shader cache = of in the nv driver.[/quote][quote="DJ-RK"]Those shaders are covered by one of my regex's. I've discovered a limitation or bug that I reported in the 3DMigoto thread. Seems regex is a bit of a memory hog, and when you run out of memory it just stops patching shaders which might be why those indoor shaders weren't fixed for you. Will need to determine if it's a bug, or I may need to make my matching patterns a bit more lean (at the expense of accuracy :( ).[/quote] @Losti can you send me the d3d11_log.txt from a run with those two shaders broken with DJ-RK's ShaderRegex?
Losti said:OK i have tryed DJ-WIP and the indoor shadowows are broken but can be fixed using my indor shadow fix. Even rain and so on...

This is

607822f0edc9fc24-ps_replace.txt
and
320d0f236f7e781c-vs_replace.txt

of my fix.

for the shadows inside for example.

With this every thing is working OK as far as i an see, but the reflections are borken but you mentioned it.

May be you have to delete the shader chache files or set shader cache = of in the nv driver.
DJ-RK said:Those shaders are covered by one of my regex's. I've discovered a limitation or bug that I reported in the 3DMigoto thread. Seems regex is a bit of a memory hog, and when you run out of memory it just stops patching shaders which might be why those indoor shaders weren't fixed for you. Will need to determine if it's a bug, or I may need to make my matching patterns a bit more lean (at the expense of accuracy :( ).

@Losti can you send me the d3d11_log.txt from a run with those two shaders broken with DJ-RK's ShaderRegex?

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

Posted 02/22/2018 04:15 AM   
Hey DSS welcome back here! I will do this this evening after returning home form my day job ^^
Hey DSS welcome back here!

I will do this this evening after returning home form my day job ^^

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/22/2018 09:25 AM   
[quote="DarkStarSword"] @Losti can you send me the d3d11_log.txt from a run with those two shaders broken with DJ-RK's ShaderRegex? [/quote] [url]http://web396.inetseite.de/d3d11_log.txt[/url] // DJ-RK seems to be right: [code] Performing deferred shader analysis on ps 607822f0edc9fc24... Found dcl_temps 7 Found dcl_temps 7 Found dcl_temps 7 Found dcl_temps 7 Found dcl_temps 7 WARNING: regex replace error: no more memory Patch did not apply [/code] This is the indoor shadow shader .... //EDITH means: WOOOW inside the logfile i can see which VS is related to which PS ^^ crazy fucking cool ^^
DarkStarSword said:
@Losti can you send me the d3d11_log.txt from a run with those two shaders broken with DJ-RK's ShaderRegex?


http://web396.inetseite.de/d3d11_log.txt

// DJ-RK seems to be right:

Performing deferred shader analysis on ps 607822f0edc9fc24...
Found dcl_temps 7
Found dcl_temps 7
Found dcl_temps 7
Found dcl_temps 7
Found dcl_temps 7
WARNING: regex replace error: no more memory
Patch did not apply


This is the indoor shadow shader ....

//EDITH means:

WOOOW inside the logfile i can see which VS is related to which PS ^^ crazy fucking cool ^^

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/22/2018 04:27 PM   
Some findings: 82c08ee7da67f710-cs_.txt ==> lightening OK facelight fail ==> Regex will make light OK but this will fail on face 82c08ee7da67f710-cs.txt ==> lightening fail, face OK ==> overwrite regex i think so lightening will fail face is OK ==> I was not getting it working in any case with the puddle reflection. I ha ve acually a version that is a compromise but working on that before publishing because i run into problems with face lightening. Or i wait until a pro will get into al those issues ^^ . . . Please find attached my save games for you. #139 will give you a night scene with reflections and another lighteneing fault that is afflicting the night sky and some glow thing.... :-) [url]Http://web396.inetseite.de/playline0.rar[/url]
Some findings:


82c08ee7da67f710-cs_.txt ==> lightening OK facelight fail ==> Regex will make light OK but this will fail on face
82c08ee7da67f710-cs.txt ==> lightening fail, face OK ==> overwrite regex i think so lightening will fail face is OK

==> I was not getting it working in any case with the puddle reflection. I ha ve acually a version that is a compromise but working on that before publishing because i run into problems with face lightening.

Or i wait until a pro will get into al those issues ^^
.
.
.

Please find attached my save games for you. #139 will give you a night scene with reflections and another lighteneing fault that is afflicting the night sky and some glow thing....

:-)

Http://web396.inetseite.de/playline0.rar

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/22/2018 08:04 PM   
[quote="Losti"][quote="DarkStarSword"] @Losti can you send me the d3d11_log.txt from a run with those two shaders broken with DJ-RK's ShaderRegex? [/quote] [url]http://web396.inetseite.de/d3d11_log.txt[/url] // DJ-RK seems to be right: [code] Performing deferred shader analysis on ps 607822f0edc9fc24... Found dcl_temps 7 Found dcl_temps 7 Found dcl_temps 7 Found dcl_temps 7 Found dcl_temps 7 WARNING: regex replace error: no more memory Patch did not apply [/code] This is the indoor shadow shader .... //EDITH means: WOOOW inside the logfile i can see which VS is related to which PS ^^ crazy fucking cool ^^[/quote] Actually, turns out I made a little bit of a goof in my regex code there that caused the memory error. Here's an corrected version: [url]http://www.mediafire.com/file/efx86o2pbb5rhbv/d3dx.ini[/url] The good news is that I worked out how to get specular reflections working without the left side glitch while updating my Ryse - Son of Rome fix yesterday, however I didn't really have time to look at this game at all today or yesterday (had to spend my last day of my vacation time off with my girlfriend today... damn women always getting in the way of fun! j/k). Working a 10 hour shift tomorrow, so I probably won't get to look at this again until Saturday, or maybe even Sunday so hang tight.
Losti said:
DarkStarSword said:
@Losti can you send me the d3d11_log.txt from a run with those two shaders broken with DJ-RK's ShaderRegex?


http://web396.inetseite.de/d3d11_log.txt

// DJ-RK seems to be right:

Performing deferred shader analysis on ps 607822f0edc9fc24...
Found dcl_temps 7
Found dcl_temps 7
Found dcl_temps 7
Found dcl_temps 7
Found dcl_temps 7
WARNING: regex replace error: no more memory
Patch did not apply


This is the indoor shadow shader ....

//EDITH means:

WOOOW inside the logfile i can see which VS is related to which PS ^^ crazy fucking cool ^^


Actually, turns out I made a little bit of a goof in my regex code there that caused the memory error. Here's an corrected version: http://www.mediafire.com/file/efx86o2pbb5rhbv/d3dx.ini

The good news is that I worked out how to get specular reflections working without the left side glitch while updating my Ryse - Son of Rome fix yesterday, however I didn't really have time to look at this game at all today or yesterday (had to spend my last day of my vacation time off with my girlfriend today... damn women always getting in the way of fun! j/k). Working a 10 hour shift tomorrow, so I probably won't get to look at this again until Saturday, or maybe even Sunday so hang tight.

3D Gaming Rig: CPU: i7 7700K @ 4.9Ghz | Mobo: Asus Maximus Hero VIII | RAM: Corsair Dominator 16GB | GPU: 2 x GTX 1080 Ti SLI | 3xSSDs for OS and Apps, 2 x HDD's for 11GB storage | PSU: Seasonic X-1250 M2| Case: Corsair C70 | Cooling: Corsair H115i Hydro cooler | Displays: Asus PG278QR, BenQ XL2420TX & BenQ HT1075 | OS: Windows 10 Pro + Windows 7 dual boot

Like my fixes? Dontations can be made to: www.paypal.me/DShanz or rshannonca@gmail.com
Like electronic music? Check out: www.soundcloud.com/dj-ryan-king

Posted 02/23/2018 06:20 AM   
Yeah thank ayou for this good News, we will be Patient. For my own i will work somewhat more on a Version i can Play until you can continue your work with this fix ^^ PS: Migoto 1.3.4 fixes the Memory issue v1.3.4 Fix "no more memory" error in ShaderRegex with particularly boss substitutions
Yeah thank ayou for this good News, we will be Patient. For my own i will work somewhat more on a Version i can Play until you can continue your work with this fix ^^

PS: Migoto 1.3.4 fixes the Memory issue

v1.3.4
Fix "no more memory" error in ShaderRegex with particularly boss substitutions

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/23/2018 06:43 AM   
OK manually fixed several things left after implementation of REGEX-routine from the DJ. I have also used my old shader files that will fix more things, even if some of them would be fixed witht he regex-templates. THE REFLECTION on puddles IS LEFT !!!!!! (but DJ has a solution ^^) I will have a look @ several lokations and provide this state to you later.... Fuckin 3 hours to get the wrong shadow that appeas in night and on far away distances....getting fixed. a805fb32a5e3b650-ps_replace.txt [code] //campfirelight or somewhat for cooking vessle // shadow broken moving away in the night from a shadow source...or somewhat --- FIXED !!! //NEW cbuffer PER_FRAME : register(b13) { row_major float4x4 g_VS_ViewProjMatr : packoffset(c0); float4 g_VS_ScreenSize : packoffset(c7); float4 g_VS_NearFarClipDist : packoffset(c9); } cbuffer PER_BATCH : register(b0) { float4 g_WorldViewPos : packoffset(c0); float4 g_GeneralParams : packoffset(c1); float4 g_ScreenScale : packoffset(c2); float4 vWBasisX : packoffset(c3); float4 vWBasisY : packoffset(c4); float4 vWBasisZ : packoffset(c5); row_major float4x4 g_mLightShadowProj : packoffset(c6); float4 irreg_kernel_2d[8] : packoffset(c10); float4 PS_NearFarClipDist : packoffset(c18); float4 g_vLightPos : packoffset(c19); float4 PS_ScreenSize : packoffset(c20); } cbuffer PER_INSTANCE : register(b1) { row_major float4x4 CompMatrix : packoffset(c0); } cbuffer PER_FRAME : register(b2) { float4 g_PS_ProjRatio : packoffset(c223); } SamplerState _tex0_s : register(s0); SamplerState _tex2_s : register(s2); SamplerState _tex7_s : register(s7); SamplerComparisonState SAMPLER_STATE_depthMapSampler_s : register(s1); Texture2D<float4> _tex0 : register(t0); Texture2D<float4> ShadowMap : register(t1); Texture2D<float4> _tex2 : register(t2); Texture2D<float4> _tex7 : register(t7); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); #include "matrix.hlsl" void main( float4 v0 : SV_POSITION0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6; uint4 bitmask, uiDest; float4 fDest; r0.xy = v0.xy * g_ScreenScale.xy + g_ScreenScale.zw; r0.z = _tex0.Sample(_tex0_s, r0.xy).x; //Fix float4 stereo = StereoParams.Load(0); float depth = r0.z * g_VS_NearFarClipDist.y; v0.x -= stereo.x * (depth - stereo.y) / depth * g_VS_ScreenSize.x / 2; r1.xyz = vWBasisX.xyz * v0.xxx + vWBasisZ.xyz; r1.xyz = vWBasisY.xyz * v0.yyy + r1.xyz; r2.xyz = r1.xyz * r0.zzz; r2.w = 1; r3.x = dot(g_mLightShadowProj._m00_m01_m02_m03, r2.xyzw); r3.y = dot(g_mLightShadowProj._m10_m11_m12_m13, r2.xyzw); r0.w = dot(g_mLightShadowProj._m20_m21_m22_m23, r2.xyzw); r1.w = dot(g_mLightShadowProj._m30_m31_m32_m33, r2.xyzw); r2.xyzw = r3.xyxy / r1.wwww; r0.w = -g_GeneralParams.w + r0.w; r3.xy = float2(1000,0.001953125) * g_GeneralParams.xx; r3.xz = r3.xx * r2.zw; r3.xz = _tex7.Sample(_tex7_s, r3.xz).xy; r3.xyz = r3.zxx * r3.yyy; r3.w = -r3.x; r4.xyzw = irreg_kernel_2d[0].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[0].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r4.xyzw = irreg_kernel_2d[1].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[1].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r1.w = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625)); r4.xyzw = irreg_kernel_2d[2].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[2].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r4.xyzw = irreg_kernel_2d[3].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[3].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r4.x = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625)); r1.w = r4.x + r1.w; r4.xyzw = irreg_kernel_2d[4].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[4].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r4.xyzw = irreg_kernel_2d[5].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[5].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r4.x = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625)); r1.w = r4.x + r1.w; r4.xyzw = irreg_kernel_2d[6].yyzz * r3.xzzw; r4.xyzw = r3.zwxz * irreg_kernel_2d[6].xxww + r4.xyzw; r4.xyzw = r4.xyzw + r2.zwzw; r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x; r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x; r4.xyzw = irreg_kernel_2d[7].yyzz * r3.xyzw; r3.xyzw = r3.zwxz * irreg_kernel_2d[7].xxww + r4.xyzw; r2.xyzw = r3.xyzw + r2.xyzw; r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r2.xy, r0.w).x; r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r2.zw, r0.w).x; r0.w = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625)); r0.w = r1.w + r0.w; r0.x = _tex2.Sample(_tex2_s, r0.xy).w; r0.x = 3.99609375 * r0.x; r0.x = floor(r0.x); r0.x = (int)r0.x; r0.x = cmp((int)r0.x != 1); if (r0.x != 0) { r1.xyz = r1.xyz * r0.zzz + g_WorldViewPos.xyz; r1.w = 1; r2.x = dot(CompMatrix._m00_m01_m02_m03, r1.xyzw); r2.y = dot(CompMatrix._m10_m11_m12_m13, r1.xyzw); r2.z = dot(CompMatrix._m20_m21_m22_m23, r1.xyzw); r2.w = dot(CompMatrix._m30_m31_m32_m33, r1.xyzw); r3.xyz = g_vLightPos.xyz + -r1.xyz; r0.x = dot(r3.xyz, r3.xyz); r0.x = rsqrt(r0.x); r1.xyz = r3.xyz * r0.xxx + r1.xyz; r1.w = 1; r3.x = dot(CompMatrix._m00_m01_m02_m03, r1.xyzw); r3.y = dot(CompMatrix._m10_m11_m12_m13, r1.xyzw); r3.z = dot(CompMatrix._m20_m21_m22_m23, r1.xyzw); r3.w = dot(CompMatrix._m30_m31_m32_m33, r1.xyzw); r1.xyzw = r3.xyzw + -r2.xyzw; r3.xyzw = float4(0.00150000001,0.00150000001,0.00150000001,0.00150000001) * r1.xyzw; r1.xyzw = r1.xyzw * float4(0.00150000001,0.00150000001,0.00150000001,0.00150000001) + r2.xyzw; r2.xyzw = r3.xyzw; r4.xyzw = r1.xyzw; r0.xy = float2(1,0); while (true) { r5.x = cmp((int)r0.y >= 16); if (r5.x != 0) break; r5.xyz = r4.xyz / r4.www; r6.xy = r5.xy * float2(0.5,0.5) + float2(0.5,0.5); r5.x = 1 + -r6.y; r5.y = cmp(r6.x < 0); r5.w = cmp(1 < r6.x); r5.y = (int)r5.w | (int)r5.y; r5.w = cmp(r5.x < 0); r5.y = (int)r5.w | (int)r5.y; r5.x = cmp(1 < r5.x); r5.x = (int)r5.x | (int)r5.y; if (r5.x != 0) { break; } r6.z = 1 + -r6.y; r5.x = _tex0.SampleLevel(_tex0_s, r6.xz, 0).x; r5.y = -g_PS_ProjRatio.x + r5.z; r5.y = g_PS_ProjRatio.y / r5.y; r5.y = r5.y * PS_NearFarClipDist.y + -0.00999999978; r5.z = r5.x * PS_NearFarClipDist.y + -r5.y; r5.x = -r5.x * PS_NearFarClipDist.y + r5.y; r5.x = -0.0299999993 + r5.x; r5.x = max(0, r5.x); r5.x = 0.333333343 * r5.x; r5.x = max(r5.z, r5.x); r5.x = -r5.x * 200 + 1; r5.x = 1 + -r5.x; r0.x = min(r5.x, r0.x); r4.xyzw = r4.xyzw + r2.xyzw; r2.xyzw = float4(1.04999995,1.04999995,1.04999995,1.04999995) * r2.xyzw; r0.y = (int)r0.y + 1; } r0.y = saturate(r0.z * PS_NearFarClipDist.y + -2); r0.z = 1 + -r0.x; r0.x = r0.y * r0.z + r0.x; r0.w = min(r0.x, r0.w); } o0.xyzw = float4(1,1,1,1) + -r0.wwww; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.30.960.8229 // // using 3Dmigoto v1.2.69 on Wed Feb 14 13:35:02 2018 // // // Note: shader requires additional functionality: // Early depth-stencil // // // Buffer Definitions: // // cbuffer PER_BATCH // { // // float4 g_WorldViewPos; // Offset: 0 Size: 16 // float4 g_GeneralParams; // Offset: 16 Size: 16 // float4 g_ScreenScale; // Offset: 32 Size: 16 // float4 vWBasisX; // Offset: 48 Size: 16 // float4 vWBasisY; // Offset: 64 Size: 16 // float4 vWBasisZ; // Offset: 80 Size: 16 // row_major float4x4 g_mLightShadowProj;// Offset: 96 Size: 64 // float4 irreg_kernel_2d[8]; // Offset: 160 Size: 128 // float4 PS_NearFarClipDist; // Offset: 288 Size: 16 // float4 g_vLightPos; // Offset: 304 Size: 16 // float4 PS_ScreenSize; // Offset: 320 Size: 16 [unused] // // } // // cbuffer PER_INSTANCE // { // // row_major float4x4 CompMatrix; // Offset: 0 Size: 64 // // } // // cbuffer PER_FRAME // { // // float4 g_PS_ProjRatio; // Offset: 3568 Size: 16 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // _tex0 sampler NA NA 0 1 // SAMPLER_STATE_depthMapSampler sampler_c NA NA 1 1 // _tex2 sampler NA NA 2 1 // _tex7 sampler NA NA 7 1 // _tex0 texture float4 2d 0 1 // ShadowMap texture float4 2d 1 1 // _tex2 texture float4 2d 2 1 // _tex7 texture float4 2d 7 1 // PER_BATCH cbuffer NA NA 0 1 // PER_INSTANCE cbuffer NA NA 1 1 // PER_FRAME cbuffer NA NA 2 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed | forceEarlyDepthStencil dcl_constantbuffer cb0[20], immediateIndexed dcl_constantbuffer cb1[4], immediateIndexed dcl_constantbuffer cb2[224], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_comparison dcl_sampler s2, mode_default dcl_sampler s7, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_resource_texture2d (float,float,float,float) t2 dcl_resource_texture2d (float,float,float,float) t7 dcl_input_ps_siv linear noperspective v0.xy, position dcl_output o0.xyzw dcl_temps 7 mad r0.xy, v0.xyxx, cb0[2].xyxx, cb0[2].zwzz sample_indexable(texture2d)(float,float,float,float) r0.z, r0.xyxx, t0.yzxw, s0 mad r1.xyz, cb0[3].xyzx, v0.xxxx, cb0[5].xyzx mad r1.xyz, cb0[4].xyzx, v0.yyyy, r1.xyzx mul r2.xyz, r0.zzzz, r1.xyzx mov r2.w, l(1.000000) dp4 r3.x, cb0[6].xyzw, r2.xyzw dp4 r3.y, cb0[7].xyzw, r2.xyzw dp4 r0.w, cb0[8].xyzw, r2.xyzw dp4 r1.w, cb0[9].xyzw, r2.xyzw div r2.xyzw, r3.xyxy, r1.wwww add r0.w, r0.w, -cb0[1].w mul r3.xy, cb0[1].xxxx, l(1000.000000, 0.00195312500, 0.000000, 0.000000) mul r3.xz, r2.zzwz, r3.xxxx sample_indexable(texture2d)(float,float,float,float) r3.xz, r3.xzxx, t7.xzyw, s7 mul r3.xyz, r3.yyyy, r3.zxxz mov r3.w, -r3.x mul r4.xyzw, r3.xzzw, cb0[10].yyzz mad r4.xyzw, r3.zwxz, cb0[10].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w mul r4.xyzw, r3.xzzw, cb0[11].yyzz mad r4.xyzw, r3.zwxz, cb0[11].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r4.zwzz, t1.xxxx, s1, r0.w dp4 r1.w, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500) mul r4.xyzw, r3.xzzw, cb0[12].yyzz mad r4.xyzw, r3.zwxz, cb0[12].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w mul r4.xyzw, r3.xzzw, cb0[13].yyzz mad r4.xyzw, r3.zwxz, cb0[13].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r4.zwzz, t1.xxxx, s1, r0.w dp4 r4.x, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500) add r1.w, r1.w, r4.x mul r4.xyzw, r3.xzzw, cb0[14].yyzz mad r4.xyzw, r3.zwxz, cb0[14].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w mul r4.xyzw, r3.xzzw, cb0[15].yyzz mad r4.xyzw, r3.zwxz, cb0[15].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r4.zwzz, t1.xxxx, s1, r0.w dp4 r4.x, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500) add r1.w, r1.w, r4.x mul r4.xyzw, r3.xzzw, cb0[16].yyzz mad r4.xyzw, r3.zwxz, cb0[16].xxww, r4.xyzw add r4.xyzw, r2.zwzw, r4.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w mul r4.xyzw, r3.xyzw, cb0[17].yyzz mad r3.xyzw, r3.zwxz, cb0[17].xxww, r4.xyzw add r2.xyzw, r2.xyzw, r3.xyzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r2.xyxx, t1.xxxx, s1, r0.w sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r2.zwzz, t1.xxxx, s1, r0.w dp4 r0.w, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500) add r0.w, r0.w, r1.w sample_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t2.wxyz, s2 mul r0.x, r0.x, l(3.99609375) round_ni r0.x, r0.x ftoi r0.x, r0.x ine r0.x, r0.x, l(1) if_nz r0.x mad r1.xyz, r1.xyzx, r0.zzzz, cb0[0].xyzx mov r1.w, l(1.000000) dp4 r2.x, cb1[0].xyzw, r1.xyzw dp4 r2.y, cb1[1].xyzw, r1.xyzw dp4 r2.z, cb1[2].xyzw, r1.xyzw dp4 r2.w, cb1[3].xyzw, r1.xyzw add r3.xyz, -r1.xyzx, cb0[19].xyzx dp3 r0.x, r3.xyzx, r3.xyzx rsq r0.x, r0.x mad r1.xyz, r3.xyzx, r0.xxxx, r1.xyzx mov r1.w, l(1.000000) dp4 r3.x, cb1[0].xyzw, r1.xyzw dp4 r3.y, cb1[1].xyzw, r1.xyzw dp4 r3.z, cb1[2].xyzw, r1.xyzw dp4 r3.w, cb1[3].xyzw, r1.xyzw add r1.xyzw, -r2.xyzw, r3.xyzw mul r3.xyzw, r1.xyzw, l(0.001500, 0.001500, 0.001500, 0.001500) mad r1.xyzw, r1.xyzw, l(0.001500, 0.001500, 0.001500, 0.001500), r2.xyzw mov r2.xyzw, r3.xyzw mov r4.xyzw, r1.xyzw mov r0.xy, l(1.000000,0,0,0) loop ige r5.x, r0.y, l(16) breakc_nz r5.x div r5.xyz, r4.xyzx, r4.wwww mad r6.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) add r5.x, -r6.y, l(1.000000) lt r5.y, r6.x, l(0.000000) lt r5.w, l(1.000000), r6.x or r5.y, r5.w, r5.y lt r5.w, r5.x, l(0.000000) or r5.y, r5.w, r5.y lt r5.x, l(1.000000), r5.x or r5.x, r5.x, r5.y if_nz r5.x break endif add r6.z, -r6.y, l(1.000000) sample_l_indexable(texture2d)(float,float,float,float) r5.x, r6.xzxx, t0.xyzw, s0, l(0.000000) add r5.y, r5.z, -cb2[223].x div r5.y, cb2[223].y, r5.y mad r5.y, r5.y, cb0[18].y, l(-0.010000) mad r5.z, r5.x, cb0[18].y, -r5.y mad r5.x, -r5.x, cb0[18].y, r5.y add r5.x, r5.x, l(-0.030000) max r5.x, r5.x, l(0.000000) mul r5.x, r5.x, l(0.333333343) max r5.x, r5.x, r5.z mad r5.x, -r5.x, l(200.000000), l(1.000000) add r5.x, -r5.x, l(1.000000) min r0.x, r0.x, r5.x add r4.xyzw, r2.xyzw, r4.xyzw mul r2.xyzw, r2.xyzw, l(1.050000, 1.050000, 1.050000, 1.050000) iadd r0.y, r0.y, l(1) endloop mad_sat r0.y, r0.z, cb0[18].y, l(-2.000000) add r0.z, -r0.x, l(1.000000) mad r0.x, r0.y, r0.z, r0.x min r0.w, r0.w, r0.x endif add o0.xyzw, -r0.wwww, l(1.000000, 1.000000, 1.000000, 1.000000) ret // Approximately 132 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
OK manually fixed several things left after implementation of REGEX-routine from the DJ. I have also used my old shader files that will fix more things, even if some of them would be fixed witht he regex-templates.

THE REFLECTION on puddles IS LEFT !!!!!! (but DJ has a solution ^^)

I will have a look @ several lokations and provide this state to you later....


Fuckin 3 hours to get the wrong shadow that appeas in night and on far away distances....getting fixed.

a805fb32a5e3b650-ps_replace.txt

//campfirelight or somewhat for cooking vessle // shadow broken moving away in the night from a shadow source...or somewhat --- FIXED !!!


//NEW
cbuffer PER_FRAME : register(b13)
{
row_major float4x4 g_VS_ViewProjMatr : packoffset(c0);
float4 g_VS_ScreenSize : packoffset(c7);
float4 g_VS_NearFarClipDist : packoffset(c9);
}



cbuffer PER_BATCH : register(b0)
{
float4 g_WorldViewPos : packoffset(c0);
float4 g_GeneralParams : packoffset(c1);
float4 g_ScreenScale : packoffset(c2);
float4 vWBasisX : packoffset(c3);
float4 vWBasisY : packoffset(c4);
float4 vWBasisZ : packoffset(c5);
row_major float4x4 g_mLightShadowProj : packoffset(c6);
float4 irreg_kernel_2d[8] : packoffset(c10);
float4 PS_NearFarClipDist : packoffset(c18);
float4 g_vLightPos : packoffset(c19);
float4 PS_ScreenSize : packoffset(c20);
}

cbuffer PER_INSTANCE : register(b1)
{
row_major float4x4 CompMatrix : packoffset(c0);
}

cbuffer PER_FRAME : register(b2)
{
float4 g_PS_ProjRatio : packoffset(c223);
}

SamplerState _tex0_s : register(s0);
SamplerState _tex2_s : register(s2);
SamplerState _tex7_s : register(s7);
SamplerComparisonState SAMPLER_STATE_depthMapSampler_s : register(s1);
Texture2D<float4> _tex0 : register(t0);
Texture2D<float4> ShadowMap : register(t1);
Texture2D<float4> _tex2 : register(t2);
Texture2D<float4> _tex7 : register(t7);


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

void main(
float4 v0 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = v0.xy * g_ScreenScale.xy + g_ScreenScale.zw;
r0.z = _tex0.Sample(_tex0_s, r0.xy).x;

//Fix
float4 stereo = StereoParams.Load(0);
float depth = r0.z * g_VS_NearFarClipDist.y;
v0.x -= stereo.x * (depth - stereo.y) / depth * g_VS_ScreenSize.x / 2;


r1.xyz = vWBasisX.xyz * v0.xxx + vWBasisZ.xyz;
r1.xyz = vWBasisY.xyz * v0.yyy + r1.xyz;
r2.xyz = r1.xyz * r0.zzz;
r2.w = 1;
r3.x = dot(g_mLightShadowProj._m00_m01_m02_m03, r2.xyzw);
r3.y = dot(g_mLightShadowProj._m10_m11_m12_m13, r2.xyzw);
r0.w = dot(g_mLightShadowProj._m20_m21_m22_m23, r2.xyzw);
r1.w = dot(g_mLightShadowProj._m30_m31_m32_m33, r2.xyzw);
r2.xyzw = r3.xyxy / r1.wwww;
r0.w = -g_GeneralParams.w + r0.w;
r3.xy = float2(1000,0.001953125) * g_GeneralParams.xx;
r3.xz = r3.xx * r2.zw;
r3.xz = _tex7.Sample(_tex7_s, r3.xz).xy;
r3.xyz = r3.zxx * r3.yyy;
r3.w = -r3.x;
r4.xyzw = irreg_kernel_2d[0].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[0].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r4.xyzw = irreg_kernel_2d[1].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[1].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r1.w = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625));
r4.xyzw = irreg_kernel_2d[2].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[2].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r4.xyzw = irreg_kernel_2d[3].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[3].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r4.x = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625));
r1.w = r4.x + r1.w;
r4.xyzw = irreg_kernel_2d[4].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[4].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r4.xyzw = irreg_kernel_2d[5].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[5].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r4.x = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625));
r1.w = r4.x + r1.w;
r4.xyzw = irreg_kernel_2d[6].yyzz * r3.xzzw;
r4.xyzw = r3.zwxz * irreg_kernel_2d[6].xxww + r4.xyzw;
r4.xyzw = r4.xyzw + r2.zwzw;
r5.x = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.xy, r0.w).x;
r5.y = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r4.zw, r0.w).x;
r4.xyzw = irreg_kernel_2d[7].yyzz * r3.xyzw;
r3.xyzw = r3.zwxz * irreg_kernel_2d[7].xxww + r4.xyzw;
r2.xyzw = r3.xyzw + r2.xyzw;
r5.z = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r2.xy, r0.w).x;
r5.w = ShadowMap.SampleCmpLevelZero(SAMPLER_STATE_depthMapSampler_s, r2.zw, r0.w).x;
r0.w = dot(r5.xyzw, float4(0.0625,0.0625,0.0625,0.0625));
r0.w = r1.w + r0.w;
r0.x = _tex2.Sample(_tex2_s, r0.xy).w;
r0.x = 3.99609375 * r0.x;
r0.x = floor(r0.x);
r0.x = (int)r0.x;
r0.x = cmp((int)r0.x != 1);


if (r0.x != 0) {
r1.xyz = r1.xyz * r0.zzz + g_WorldViewPos.xyz;
r1.w = 1;
r2.x = dot(CompMatrix._m00_m01_m02_m03, r1.xyzw);
r2.y = dot(CompMatrix._m10_m11_m12_m13, r1.xyzw);
r2.z = dot(CompMatrix._m20_m21_m22_m23, r1.xyzw);
r2.w = dot(CompMatrix._m30_m31_m32_m33, r1.xyzw);
r3.xyz = g_vLightPos.xyz + -r1.xyz;
r0.x = dot(r3.xyz, r3.xyz);
r0.x = rsqrt(r0.x);
r1.xyz = r3.xyz * r0.xxx + r1.xyz;
r1.w = 1;



r3.x = dot(CompMatrix._m00_m01_m02_m03, r1.xyzw);
r3.y = dot(CompMatrix._m10_m11_m12_m13, r1.xyzw);
r3.z = dot(CompMatrix._m20_m21_m22_m23, r1.xyzw);
r3.w = dot(CompMatrix._m30_m31_m32_m33, r1.xyzw);
r1.xyzw = r3.xyzw + -r2.xyzw;
r3.xyzw = float4(0.00150000001,0.00150000001,0.00150000001,0.00150000001) * r1.xyzw;
r1.xyzw = r1.xyzw * float4(0.00150000001,0.00150000001,0.00150000001,0.00150000001) + r2.xyzw;
r2.xyzw = r3.xyzw;
r4.xyzw = r1.xyzw;
r0.xy = float2(1,0);
while (true) {
r5.x = cmp((int)r0.y >= 16);
if (r5.x != 0) break;
r5.xyz = r4.xyz / r4.www;
r6.xy = r5.xy * float2(0.5,0.5) + float2(0.5,0.5);
r5.x = 1 + -r6.y;
r5.y = cmp(r6.x < 0);
r5.w = cmp(1 < r6.x);
r5.y = (int)r5.w | (int)r5.y;
r5.w = cmp(r5.x < 0);
r5.y = (int)r5.w | (int)r5.y;
r5.x = cmp(1 < r5.x);
r5.x = (int)r5.x | (int)r5.y;
if (r5.x != 0) {
break;
}
r6.z = 1 + -r6.y;
r5.x = _tex0.SampleLevel(_tex0_s, r6.xz, 0).x;
r5.y = -g_PS_ProjRatio.x + r5.z;
r5.y = g_PS_ProjRatio.y / r5.y;
r5.y = r5.y * PS_NearFarClipDist.y + -0.00999999978;
r5.z = r5.x * PS_NearFarClipDist.y + -r5.y;
r5.x = -r5.x * PS_NearFarClipDist.y + r5.y;
r5.x = -0.0299999993 + r5.x;
r5.x = max(0, r5.x);
r5.x = 0.333333343 * r5.x;
r5.x = max(r5.z, r5.x);
r5.x = -r5.x * 200 + 1;
r5.x = 1 + -r5.x;
r0.x = min(r5.x, r0.x);
r4.xyzw = r4.xyzw + r2.xyzw;
r2.xyzw = float4(1.04999995,1.04999995,1.04999995,1.04999995) * r2.xyzw;
r0.y = (int)r0.y + 1;
}
r0.y = saturate(r0.z * PS_NearFarClipDist.y + -2);
r0.z = 1 + -r0.x;
r0.x = r0.y * r0.z + r0.x;
r0.w = min(r0.x, r0.w);
}
o0.xyzw = float4(1,1,1,1) + -r0.wwww;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.960.8229
//
// using 3Dmigoto v1.2.69 on Wed Feb 14 13:35:02 2018
//
//
// Note: shader requires additional functionality:
// Early depth-stencil
//
//
// Buffer Definitions:
//
// cbuffer PER_BATCH
// {
//
// float4 g_WorldViewPos; // Offset: 0 Size: 16
// float4 g_GeneralParams; // Offset: 16 Size: 16
// float4 g_ScreenScale; // Offset: 32 Size: 16
// float4 vWBasisX; // Offset: 48 Size: 16
// float4 vWBasisY; // Offset: 64 Size: 16
// float4 vWBasisZ; // Offset: 80 Size: 16
// row_major float4x4 g_mLightShadowProj;// Offset: 96 Size: 64
// float4 irreg_kernel_2d[8]; // Offset: 160 Size: 128
// float4 PS_NearFarClipDist; // Offset: 288 Size: 16
// float4 g_vLightPos; // Offset: 304 Size: 16
// float4 PS_ScreenSize; // Offset: 320 Size: 16 [unused]
//
// }
//
// cbuffer PER_INSTANCE
// {
//
// row_major float4x4 CompMatrix; // Offset: 0 Size: 64
//
// }
//
// cbuffer PER_FRAME
// {
//
// float4 g_PS_ProjRatio; // Offset: 3568 Size: 16
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// _tex0 sampler NA NA 0 1
// SAMPLER_STATE_depthMapSampler sampler_c NA NA 1 1
// _tex2 sampler NA NA 2 1
// _tex7 sampler NA NA 7 1
// _tex0 texture float4 2d 0 1
// ShadowMap texture float4 2d 1 1
// _tex2 texture float4 2d 2 1
// _tex7 texture float4 2d 7 1
// PER_BATCH cbuffer NA NA 0 1
// PER_INSTANCE cbuffer NA NA 1 1
// PER_FRAME cbuffer NA NA 2 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed | forceEarlyDepthStencil
dcl_constantbuffer cb0[20], immediateIndexed
dcl_constantbuffer cb1[4], immediateIndexed
dcl_constantbuffer cb2[224], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_comparison
dcl_sampler s2, mode_default
dcl_sampler s7, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t7
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 7
mad r0.xy, v0.xyxx, cb0[2].xyxx, cb0[2].zwzz
sample_indexable(texture2d)(float,float,float,float) r0.z, r0.xyxx, t0.yzxw, s0
mad r1.xyz, cb0[3].xyzx, v0.xxxx, cb0[5].xyzx
mad r1.xyz, cb0[4].xyzx, v0.yyyy, r1.xyzx
mul r2.xyz, r0.zzzz, r1.xyzx
mov r2.w, l(1.000000)
dp4 r3.x, cb0[6].xyzw, r2.xyzw
dp4 r3.y, cb0[7].xyzw, r2.xyzw
dp4 r0.w, cb0[8].xyzw, r2.xyzw
dp4 r1.w, cb0[9].xyzw, r2.xyzw
div r2.xyzw, r3.xyxy, r1.wwww
add r0.w, r0.w, -cb0[1].w
mul r3.xy, cb0[1].xxxx, l(1000.000000, 0.00195312500, 0.000000, 0.000000)
mul r3.xz, r2.zzwz, r3.xxxx
sample_indexable(texture2d)(float,float,float,float) r3.xz, r3.xzxx, t7.xzyw, s7
mul r3.xyz, r3.yyyy, r3.zxxz
mov r3.w, -r3.x
mul r4.xyzw, r3.xzzw, cb0[10].yyzz
mad r4.xyzw, r3.zwxz, cb0[10].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w
mul r4.xyzw, r3.xzzw, cb0[11].yyzz
mad r4.xyzw, r3.zwxz, cb0[11].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r4.zwzz, t1.xxxx, s1, r0.w
dp4 r1.w, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500)
mul r4.xyzw, r3.xzzw, cb0[12].yyzz
mad r4.xyzw, r3.zwxz, cb0[12].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w
mul r4.xyzw, r3.xzzw, cb0[13].yyzz
mad r4.xyzw, r3.zwxz, cb0[13].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r4.zwzz, t1.xxxx, s1, r0.w
dp4 r4.x, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500)
add r1.w, r1.w, r4.x
mul r4.xyzw, r3.xzzw, cb0[14].yyzz
mad r4.xyzw, r3.zwxz, cb0[14].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w
mul r4.xyzw, r3.xzzw, cb0[15].yyzz
mad r4.xyzw, r3.zwxz, cb0[15].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r4.zwzz, t1.xxxx, s1, r0.w
dp4 r4.x, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500)
add r1.w, r1.w, r4.x
mul r4.xyzw, r3.xzzw, cb0[16].yyzz
mad r4.xyzw, r3.zwxz, cb0[16].xxww, r4.xyzw
add r4.xyzw, r2.zwzw, r4.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r4.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.y, r4.zwzz, t1.xxxx, s1, r0.w
mul r4.xyzw, r3.xyzw, cb0[17].yyzz
mad r3.xyzw, r3.zwxz, cb0[17].xxww, r4.xyzw
add r2.xyzw, r2.xyzw, r3.xyzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.z, r2.xyxx, t1.xxxx, s1, r0.w
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r2.zwzz, t1.xxxx, s1, r0.w
dp4 r0.w, r5.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500)
add r0.w, r0.w, r1.w
sample_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t2.wxyz, s2
mul r0.x, r0.x, l(3.99609375)
round_ni r0.x, r0.x
ftoi r0.x, r0.x
ine r0.x, r0.x, l(1)
if_nz r0.x
mad r1.xyz, r1.xyzx, r0.zzzz, cb0[0].xyzx
mov r1.w, l(1.000000)
dp4 r2.x, cb1[0].xyzw, r1.xyzw
dp4 r2.y, cb1[1].xyzw, r1.xyzw
dp4 r2.z, cb1[2].xyzw, r1.xyzw
dp4 r2.w, cb1[3].xyzw, r1.xyzw
add r3.xyz, -r1.xyzx, cb0[19].xyzx
dp3 r0.x, r3.xyzx, r3.xyzx
rsq r0.x, r0.x
mad r1.xyz, r3.xyzx, r0.xxxx, r1.xyzx
mov r1.w, l(1.000000)
dp4 r3.x, cb1[0].xyzw, r1.xyzw
dp4 r3.y, cb1[1].xyzw, r1.xyzw
dp4 r3.z, cb1[2].xyzw, r1.xyzw
dp4 r3.w, cb1[3].xyzw, r1.xyzw
add r1.xyzw, -r2.xyzw, r3.xyzw
mul r3.xyzw, r1.xyzw, l(0.001500, 0.001500, 0.001500, 0.001500)
mad r1.xyzw, r1.xyzw, l(0.001500, 0.001500, 0.001500, 0.001500), r2.xyzw
mov r2.xyzw, r3.xyzw
mov r4.xyzw, r1.xyzw
mov r0.xy, l(1.000000,0,0,0)
loop
ige r5.x, r0.y, l(16)
breakc_nz r5.x
div r5.xyz, r4.xyzx, r4.wwww
mad r6.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
add r5.x, -r6.y, l(1.000000)
lt r5.y, r6.x, l(0.000000)
lt r5.w, l(1.000000), r6.x
or r5.y, r5.w, r5.y
lt r5.w, r5.x, l(0.000000)
or r5.y, r5.w, r5.y
lt r5.x, l(1.000000), r5.x
or r5.x, r5.x, r5.y
if_nz r5.x
break
endif
add r6.z, -r6.y, l(1.000000)
sample_l_indexable(texture2d)(float,float,float,float) r5.x, r6.xzxx, t0.xyzw, s0, l(0.000000)
add r5.y, r5.z, -cb2[223].x
div r5.y, cb2[223].y, r5.y
mad r5.y, r5.y, cb0[18].y, l(-0.010000)
mad r5.z, r5.x, cb0[18].y, -r5.y
mad r5.x, -r5.x, cb0[18].y, r5.y
add r5.x, r5.x, l(-0.030000)
max r5.x, r5.x, l(0.000000)
mul r5.x, r5.x, l(0.333333343)
max r5.x, r5.x, r5.z
mad r5.x, -r5.x, l(200.000000), l(1.000000)
add r5.x, -r5.x, l(1.000000)
min r0.x, r0.x, r5.x
add r4.xyzw, r2.xyzw, r4.xyzw
mul r2.xyzw, r2.xyzw, l(1.050000, 1.050000, 1.050000, 1.050000)
iadd r0.y, r0.y, l(1)
endloop
mad_sat r0.y, r0.z, cb0[18].y, l(-2.000000)
add r0.z, -r0.x, l(1.000000)
mad r0.x, r0.y, r0.z, r0.x
min r0.w, r0.w, r0.x
endif
add o0.xyzw, -r0.wwww, l(1.000000, 1.000000, 1.000000, 1.000000)
ret
// Approximately 132 instruction slots used

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

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/23/2018 05:56 PM   
Need some more time, will check back to here tomorrow. @ DJ: There is a lightening problem in dialoges using the your fix. in dialoges the lights on thefaces are broken. This is related to convergence and separation. Even the 0.3 in the line (mul ${tmp1}.w, l(0.3), ${tmp1}.w\n) wil not work for me at fare distances. I have to go with 0.45 or gihter but even with 0,3 .... the lights on faces indialoges are not OK. dialoges require a 0,05 value ...[s] but i cant make a toggle key for the hasl shader i only know it for ASM ^^ [/s] solved OK only a hint where to look @. Major problems can all bee seen in the savegame #139 .... you have some more savegames for dif. locations.... [url]Http://web396.inetseite.de/playline0.rar[/url]
Need some more time, will check back to here tomorrow.

@ DJ: There is a lightening problem in dialoges using the your fix. in dialoges the lights on thefaces are broken. This is related to convergence and separation. Even the 0.3 in the line (mul ${tmp1}.w, l(0.3), ${tmp1}.w\n) wil not work for me at fare distances. I have to go with 0.45 or gihter but even with 0,3 .... the lights on faces indialoges are not OK. dialoges require a 0,05 value ... but i cant make a toggle key for the hasl shader i only know it for ASM ^^
solved

OK only a hint where to look @.

Major problems can all bee seen in the savegame #139 .... you have some more savegames for dif. locations....

Http://web396.inetseite.de/playline0.rar

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/23/2018 10:04 PM   
OK i have pushed out a FixMerge including the fixed issues from DJ-RKs WIP. [url]https://forums.geforce.com/default/topic/969396/3d-vision/kingdom-come-deliverance/post/5291128/#5291128[/url] @DJ: You can take this version as a starting pint for your final fix. Even if some shaders are implementet that will be fixed by your SahderRegex i cant get all isses fixed without my old files. You missed some things ofcause you only had a quick look @it and you havnt seen many places. But its up to you ^^ This fix is near perfect, there are some minor issues left, and the major with the Reflection. So the fix will actually go with 30 % Depth and separation @ 2.0 or gigher if you want but not lower it. This is a compromise to get the reflections OK ... I will try to post screenshoots of the issues left that i can find and savegames. Major problems can all bee seen in the savegame #139 (see post above) I have set up a Dialog-Key that will correct the ligh @faces and remove the flickering shadow...i will see if i seperate these 2 things to 2 different keys may be... because "night becames day" removing the shadows ^^ [Key_STD_DisableFlickerShadow_correctfacelight] key = XB_LEFT_SHOULDER XB_DPAD_LEFT x3 = 1.0 X3 is used in 82c08ee7da67f710-cs.txt and 9bb2844afdaaf217-ps_replace.txt //PS: Added support for Auto-Depth Crosshair with the Very Unintrusive Reticle mod.
OK i have pushed out a FixMerge including the fixed issues from DJ-RKs WIP.

https://forums.geforce.com/default/topic/969396/3d-vision/kingdom-come-deliverance/post/5291128/#5291128

@DJ: You can take this version as a starting pint for your final fix. Even if some shaders are implementet that will be fixed by your SahderRegex i cant get all isses fixed without my old files. You missed some things ofcause you only had a quick look @it and you havnt seen many places. But its up to you ^^ This fix is near perfect, there are some minor issues left, and the major with the Reflection. So the fix will actually go with 30 % Depth and separation @ 2.0 or gigher if you want but not lower it. This is a compromise to get the reflections OK ...

I will try to post screenshoots of the issues left that i can find and savegames. Major problems can all bee seen in the savegame #139 (see post above)

I have set up a Dialog-Key that will correct the ligh @faces and remove the flickering shadow...i will see if i seperate these 2 things to 2 different keys may be... because "night becames day" removing the shadows ^^

[Key_STD_DisableFlickerShadow_correctfacelight]
key = XB_LEFT_SHOULDER XB_DPAD_LEFT
x3 = 1.0

X3 is used in 82c08ee7da67f710-cs.txt and 9bb2844afdaaf217-ps_replace.txt

//PS:
Added support for Auto-Depth Crosshair with the Very Unintrusive Reticle mod.

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/24/2018 01:33 PM   
great job, thanks to all, some shadow on the faces to be fixed but it is almost perfect
great job, thanks to all, some shadow on the faces to be fixed but it is almost perfect

Posted 02/24/2018 06:38 PM   
[quote="maurizioclaudio21"]great job, thanks to all, some shadow on the faces to be fixed but it is almost perfect[/quote] Yes i know but this is something strange because this is not a single shader this is something that depents on the shadows arround the object....you can disable it with the [Key_STD_DisableFlickerShadow_correctfacelight] key = XB_LEFT_SHOULDER XB_DPAD_LEFT ....but this will change the scene lightening/shadowing .... its OK @ the day but fatal @ night because the night will became lighten....but in the night the shadows are not that noticable.... I will release my new version within the next 20 minutes that will correct lightening while aiming and add a fighting mode that will deal with 100 % separation but lower convergence and will correct lightening and reflections in this mode !!! ==> i was near the complete correction of the reflections but noticed that in one area its perfect and the changes i did will leads to loosing reflections in other areas so i left it unchanged this moment...reflections are OK in the day and only in some puddles in the night they are noticable broken....so actually its a real good playing state of the game/fix i think. It is possible to correct the lightening with any convergence/separation setting you want, but it is actually not possible to do this with the reflections so i would leave it @ 30 % sep and 2,0 conv for normal gaming mode, otherwhise the broken reflections will become very anoing. //PS: V3 Released. Added lightening correction for aiming mode and added a fighting mode including also lightening and reflection correction. ==> You have to set your keyboard keys because i am @ gamepad so i dont know what keys are suitable. but you can tell me ^^ an i will implement it. //some update on page 2
maurizioclaudio21 said:great job, thanks to all, some shadow on the faces to be fixed but it is almost perfect


Yes i know but this is something strange because this is not a single shader this is something that depents on the shadows arround the object....you can disable it with the
[Key_STD_DisableFlickerShadow_correctfacelight]
key = XB_LEFT_SHOULDER XB_DPAD_LEFT

....but this will change the scene lightening/shadowing .... its OK @ the day but fatal @ night because the night will became lighten....but in the night the shadows are not that noticable....


I will release my new version within the next 20 minutes that will correct lightening while aiming and add a fighting mode that will deal with 100 % separation but lower convergence and will correct lightening and reflections in this mode !!!


==> i was near the complete correction of the reflections but noticed that in one area its perfect and the changes i did will leads to loosing reflections in other areas so i left it unchanged this moment...reflections are OK in the day and only in some puddles in the night they are noticable broken....so actually its a real good playing state of the game/fix i think.

It is possible to correct the lightening with any convergence/separation setting you want, but it is actually not possible to do this with the reflections so i would leave it @ 30 % sep and 2,0 conv for normal gaming mode, otherwhise the broken reflections will become very anoing.

//PS:

V3 Released. Added lightening correction for aiming mode and added a fighting mode including also lightening and reflection correction.

==> You have to set your keyboard keys because i am @ gamepad so i dont know what keys are suitable. but you can tell me ^^ an i will implement it.

//some update on page 2

Like my work? Donations can be made via PayPal to: rauti@inetmx.de

Posted 02/24/2018 07:54 PM   
  8 / 11    
Scroll To Top