Bo3b's School For Shaderhackers
  58 / 88    
Thanks for responding Helifax. Regarding your suggestions for method 1: I'm actually already quite familiar with the concept of taking a world space coordinate, using a VPM to convert to projection space, doing a stereo correction, and then using an iVPM to convert back to world space after the correction. Wouldn't have been able to complete most of my existing fixes without that! ;) Assuming you're referring to the matrix multiplication that occurs on lines 72-75, you'd actually be incorrect: That is definitely not an inverse view projection matrix, that is either a projection or view projection matrix that is converting the coordinates to projection space. I'm certain of this because of the following calculations on lines 80 and 81 (which as per DSS's comments that explains the various transformation calculations here: [url]https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers/post/4715553/#4715553[/url]) are converting from projection space into pixel coordinates (I should also mention that from using frame analysis I could tell that cb1[15] that was used on line 81 was the resolution, which helped me to confirm this). Strangely enough, theoretically a standard stereo fix there should be exactly what is needed right after that, but as per my comments in the code for some reason a) the X and Y coordinates seem to be reversed, and b) the correction value was way more than it should have been. I also attempted to do a VPM/iVPM fix at the line 57 section as well, but that just broke things big time! As for your suggestion to use your ROTTR fix as a study measure for scenario 2, I would love to, however there's what, like 25000 shaders in that fix? It would be like finding a needle in a haystack for me to find which shader you're referring to! LOL.
Thanks for responding Helifax.

Regarding your suggestions for method 1: I'm actually already quite familiar with the concept of taking a world space coordinate, using a VPM to convert to projection space, doing a stereo correction, and then using an iVPM to convert back to world space after the correction. Wouldn't have been able to complete most of my existing fixes without that! ;)

Assuming you're referring to the matrix multiplication that occurs on lines 72-75, you'd actually be incorrect: That is definitely not an inverse view projection matrix, that is either a projection or view projection matrix that is converting the coordinates to projection space. I'm certain of this because of the following calculations on lines 80 and 81 (which as per DSS's comments that explains the various transformation calculations here: https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers/post/4715553/#4715553) are converting from projection space into pixel coordinates (I should also mention that from using frame analysis I could tell that cb1[15] that was used on line 81 was the resolution, which helped me to confirm this). Strangely enough, theoretically a standard stereo fix there should be exactly what is needed right after that, but as per my comments in the code for some reason a) the X and Y coordinates seem to be reversed, and b) the correction value was way more than it should have been. I also attempted to do a VPM/iVPM fix at the line 57 section as well, but that just broke things big time!

As for your suggestion to use your ROTTR fix as a study measure for scenario 2, I would love to, however there's what, like 25000 shaders in that fix? It would be like finding a needle in a haystack for me to find which shader you're referring to! LOL.

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 06/28/2016 12:38 AM   
You can pick any of the Pixel Shaders in ROTTR and give it a look. Most of them are using the same patterns to fix things;) There should should be 2 correction points;) in the shaders;) Hope this helps.
You can pick any of the Pixel Shaders in ROTTR and give it a look.
Most of them are using the same patterns to fix things;) There should should be 2 correction points;) in the shaders;)
Hope this helps.

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

Posted 06/28/2016 10:34 AM   
[quote="DJ-RK"]Scenario 1: You apply a stereo correction, but it only works at certain depth and/or convergence values. My understanding was that this generally means the coordinates are in view space, rather than projection space, and therefore you also need to multiply by the FOV (in most cases either divide by a projection matrix m00 or multiply by an inverse_projection matrix m00). Sometimes the above works... but I've also come across a few occasions where it hasn't[/quote]Typically that is correct, but I always try to keep an open mind when I'm fixing a game so I don't get caught out by an incorrect assumption. I've also had corrections slightly out because of mixing up .w and .z for the depth values, or where there was some game specific scaling that was applied or where something needed to be normalised after a matrix multiplication (or not). [quote]or where it might not be possible to easily find a projection/inverse_projection matrix. What then? Are there alternative ways to obtain the FOV, or is there anything else that could be the cause/solution to this situation?[/quote]There's a few strategies I've used when the projection matrix is not available, depending on what is available: a) Use an inverse model-view matrix and a model-view-projection matrix to derive the projection matrix (e.g. old style Unity fixes) b) Use the camera frustum to derive the horizontal FOV (e.g. The Last Tinker) c) Use the absolute value of a world-space correction as a view-space correction (relies on the camera scale being 1:1) d) Find an alternate place that a fix can be applied in world-space coordinates instead (e.g. New style Unity fixes) or clip-space e) The FOV may be passed into another shader constant Depending on the game there might be other options - if there's nothing obvious study whatever is available or could be copied from elsewhere to see if there is anything that could be used. [quote] Here's an example of a lighting shader from Hard Reset Redux where finding the location to fix was simple enough, but it's as explained in scenario 1 as only being correct at certain depth/convergence values. No shader headers, so I had to use frame analysis constant buffer output to locate an inverse_projection matrix, but it's close but not quite right. [code]... r1.xyzw = t15.SampleLevel(s8_s, r0.xy, 0).xyzw; r1.x = r1.x * cb0[18].x + cb0[18].z; r1.x = 1 / r1.x; r2.xy = v0.xy * cb0[16].zw + cb0[17].zw; r2.z = 1; r1.yzw = -r2.xyz * r1.xxx + cb1[8].xyz; r2.xyz = r2.xyz * r1.xxx; float4 stereo = StereoParams.Load(0); float4 params = IniParams.Load(0); r2.x += stereo.x * (r2.z - stereo.y)*cb0[0].x; // Standard stereo correction is not right. Need FOV. Found cb0[0] through frame analysis appears to be an inverse projection matrix, however it only brings it close, not correctly fixed [/code] [/quote]I notice the coordinate you are correcting is also used to calculate r1.yzw, so it might be worth trying the corrected coordinate there, by adding this after your stereo correction: [code] r1.yzw = -r2.xyz + cb1[8].xyz; [/code] [quote] Scenario 2: You need to stereo correct a set of coordinate with only an xy coordinate, no zw available. Basically, how do you obtain a correct depth value when one isn't immediately available? I've seen DSS derive a depth value in some pixel shaders before using other constant buffer values, but couldn't quite get a handle on how he figured that out. [/quote]If there's no depth value things get tricky - you might be looking at the wrong place to do a correction, or you might need to remove a stereo correction (if the driver applied one) or apply a correction at a fixed depth that is close enough. You may be able to use the depth buffer to get a depth value, but depending on the effect this may or may not be suitable (and may or may not be good enough - I've used this in a couple of UE3 games to approximate the depth of halos around lights to varying degrees of success). In at least one case (MGSV halos around lights) the depth value had been passed to the shader, but was in a separate constant. [quote] I just came across this one in Transformers - Devastation, where in this game shadows are correct, but create halos around characters & objects. I found the shader and the o1 output is the one needed to be correction, but it's only got an .xy output (Does this mean that these are pixel coordinates?) and the very first line sets the o1.xy output that needs to be corrected which doesn't leave much room to be corrected. [/quote]This one is a bit hard to call - from the code alone I would not expect that any adjustments would be needed in the vertex shader and everything should be done in the pixel shader, but depending on what has been passed in v0.w and v1.xy there might be something needed. Notably the output position is essentially being passed straight through from the input, which makes me suspect that is only a 2D coordinate and is unlikely the driver would be adjusting it.
DJ-RK said:Scenario 1: You apply a stereo correction, but it only works at certain depth and/or convergence values.

My understanding was that this generally means the coordinates are in view space, rather than projection space, and therefore you also need to multiply by the FOV (in most cases either divide by a projection matrix m00 or multiply by an inverse_projection matrix m00). Sometimes the above works... but I've also come across a few occasions where it hasn't
Typically that is correct, but I always try to keep an open mind when I'm fixing a game so I don't get caught out by an incorrect assumption. I've also had corrections slightly out because of mixing up .w and .z for the depth values, or where there was some game specific scaling that was applied or where something needed to be normalised after a matrix multiplication (or not).

or where it might not be possible to easily find a projection/inverse_projection matrix. What then? Are there alternative ways to obtain the FOV, or is there anything else that could be the cause/solution to this situation?
There's a few strategies I've used when the projection matrix is not available, depending on what is available:

a) Use an inverse model-view matrix and a model-view-projection matrix to derive the projection matrix (e.g. old style Unity fixes)
b) Use the camera frustum to derive the horizontal FOV (e.g. The Last Tinker)
c) Use the absolute value of a world-space correction as a view-space correction (relies on the camera scale being 1:1)
d) Find an alternate place that a fix can be applied in world-space coordinates instead (e.g. New style Unity fixes) or clip-space
e) The FOV may be passed into another shader constant

Depending on the game there might be other options - if there's nothing obvious study whatever is available or could be copied from elsewhere to see if there is anything that could be used.


Here's an example of a lighting shader from Hard Reset Redux where finding the location to fix was simple enough, but it's as explained in scenario 1 as only being correct at certain depth/convergence values. No shader headers, so I had to use frame analysis constant buffer output to locate an inverse_projection matrix, but it's close but not quite right.

...
r1.xyzw = t15.SampleLevel(s8_s, r0.xy, 0).xyzw;
r1.x = r1.x * cb0[18].x + cb0[18].z;
r1.x = 1 / r1.x;
r2.xy = v0.xy * cb0[16].zw + cb0[17].zw;
r2.z = 1;
r1.yzw = -r2.xyz * r1.xxx + cb1[8].xyz;
r2.xyz = r2.xyz * r1.xxx;
float4 stereo = StereoParams.Load(0);
float4 params = IniParams.Load(0);
r2.x += stereo.x * (r2.z - stereo.y)*cb0[0].x;
// Standard stereo correction is not right. Need FOV. Found cb0[0] through frame analysis appears to be an inverse projection matrix, however it only brings it close, not correctly fixed

I notice the coordinate you are correcting is also used to calculate r1.yzw, so it might be worth trying the corrected coordinate there, by adding this after your stereo correction:

r1.yzw = -r2.xyz + cb1[8].xyz;



Scenario 2: You need to stereo correct a set of coordinate with only an xy coordinate, no zw available.

Basically, how do you obtain a correct depth value when one isn't immediately available? I've seen DSS derive a depth value in some pixel shaders before using other constant buffer values, but couldn't quite get a handle on how he figured that out.
If there's no depth value things get tricky - you might be looking at the wrong place to do a correction, or you might need to remove a stereo correction (if the driver applied one) or apply a correction at a fixed depth that is close enough. You may be able to use the depth buffer to get a depth value, but depending on the effect this may or may not be suitable (and may or may not be good enough - I've used this in a couple of UE3 games to approximate the depth of halos around lights to varying degrees of success). In at least one case (MGSV halos around lights) the depth value had been passed to the shader, but was in a separate constant.


I just came across this one in Transformers - Devastation, where in this game shadows are correct, but create halos around characters & objects. I found the shader and the o1 output is the one needed to be correction, but it's only got an .xy output (Does this mean that these are pixel coordinates?) and the very first line sets the o1.xy output that needs to be corrected which doesn't leave much room to be corrected.
This one is a bit hard to call - from the code alone I would not expect that any adjustments would be needed in the vertex shader and everything should be done in the pixel shader, but depending on what has been passed in v0.w and v1.xy there might be something needed. Notably the output position is essentially being passed straight through from the input, which makes me suspect that is only a 2D coordinate and is unlikely the driver would be adjusting it.

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 07/02/2016 10:45 AM   
Hi, just asking in future if people can use either 3dvisionlive or different service for image hosting. I am going to be moving most of the embeded stereoscopic images that are on my host[amazon] currently on mainsite to 3dvisionlive. If you want to link to image or just store images thats 100% fine but 10+ megs for every time someone visits site is crazy [3840x1080 is huge and theree is 0 compression on these images]. Especially since some of these images wind up tracking a 100,000ish loads according to 3dvisionlive. If other admins can do there best to try reinforce that I'd be grateful.
Hi, just asking in future if people can use either 3dvisionlive or different service for image hosting.

I am going to be moving most of the embeded stereoscopic images that are on my host[amazon] currently on mainsite to 3dvisionlive.

If you want to link to image or just store images thats 100% fine but 10+ megs for every time someone visits site is crazy [3840x1080 is huge and theree is 0 compression on these images]. Especially since some of these images wind up tracking a 100,000ish loads according to 3dvisionlive.

If other admins can do there best to try reinforce that I'd be grateful.

Co-founder/Web host of helixmod.blog.com

Donations for web hosting @ paypal -eqzitara@yahoo.com
or
https://www.patreon.com/user?u=791918

Posted 07/03/2016 03:14 AM   
hi, i am working with totalwar Warhammer, i can fix shadows and lights but i have a problem with the particles, smoke, fire,.. i only can see them for one eye, the problem it is that it affect to a lots effects. i found a verter shader that call to 3 pixel shaders, and i think it is the responsible, because i disable it and disable all the effects. i have can fix 5204e031b4a1009d and 4831160c5c836214, but imposible put in stereo e9617846f5ecf04d, i have try a lot combinations in the vs, and i only have move the the effect at the left or center Testing frame analysis ( i would like some tips ), TEST 1: --------- o1-001500=868ffd29-vs=61cfe8e9ff44f072-ps=5204e031b4a1009d OK o2-001500=07f0c88e-vs=61cfe8e9ff44f072-ps=5204e031b4a1009d OK (...) o0-001509=4ce8bfab-vs=61cfe8e9ff44f072-ps=e9617846f5ecf04d NO STEREO MONO grrr i see that o0 output from VS in mono ( black backgroung with the flames ), result: effects MONO shadows OK Fantastics !! The game would be playable if i disable the particles effects but grrrrrr. TEST 2: -------- (...) using stereoflagDX10 in profile, and fame analysis again Setting ID_0x702442fc = 0x1c220024 InternalSettingFlag=V0 o0-001509=4ce8bfab-vs=61cfe8e9ff44f072-ps=e9617846f5ecf04d OK in stereo !!!!!! result: effects OK Fantastics!!!!!! shadows but shadows are now totally broken imposible to fix them, in MONO GRRRRRR The game would be playable if i disable shadows in options. I try different combinations and different profiles, maxpayne3, battlefield,.... and combinations ( bono loto ), but the result it is always the same, either fix the particles or shadows, but not both at the same time. - is is problem of the driver? any idea, i am using windows 10 with last version from nvidia - If i try, [TextureOverrideAAAAAA] hash = 4ce8bfab StereoMode=2 the result it is, the effect, particles, smoke, fire... at screen depth - if 4ce8bfab it is a rendertarget as can i put it in stereo, some tips or override or i would must continue searching for another shader ? - i found 1 Geometry GS and 2 Computer Shaders CS, with EMITTER_CONSTANTS... but i have not idea as to change it. playing with the CS i disabled all the effects too. - some tips for frameanalys,? i can not open the dds, with gimp, and anothers viewers,. - i read a post with DDS talking about monobuffers and mono textures, how can put them in stereo, and how i know if are in stereo or not? thanks i am learning yet and a lot question uff [code] <VertexShader hash="61cfe8e9ff44f072"> <CalledPixelShaders>4831160c5c836214 5204e031b4a1009d e9617846f5ecf04d </CalledPixelShaders> <Register id=0 handle=000000002D6F32E0>00000000</Register> <Register id=0 handle=000000006C26C1A0>00000000</Register> <Register id=1 handle=000000002D74D6E0 hash_contaminated=true>2cd8eb18</Register> <Register id=1 handle=0000000059DEA6E0 hash_contaminated=true>2cd8eb18</Register> <Register id=2 handle=000000002D6F6F60 hash_contaminated=true>65c6faa8</Register> <Register id=2 handle=000000002D6F9060 hash_contaminated=true>65c6faa8</Register> <Register id=2 handle=000000006C27FDE0 hash_contaminated=true>65c6faa8</Register> <Register id=2 handle=000000006C280360 hash_contaminated=true>65c6faa8</Register> <Register id=3 handle=000000002D6F3B20>00000000</Register> <Register id=3 handle=000000006C274860>00000000</Register> <Register id=4 handle=000000002D7C8560 hash_contaminated=true>5eea0086</Register> <Register id=4 handle=0000000059DED2E0 hash_contaminated=true>24060f89</Register> <Register id=5 handle=000000002D6EDDA0>00000000</Register> <Register id=5 handle=000000006C271F20>00000000</Register> <Register id=6 handle=000000002D6F06E0>00000000</Register> <Register id=6 handle=000000006C2721E0>00000000</Register> <Register id=7 handle=000000002D6EEB60>00000000</Register> <Register id=7 handle=000000006C26D220>00000000</Register> <Register id=120 handle=0000000009CA5AA0>00000000</Register> <Register id=125 handle=0000000009CA3160>00000000</Register> </VertexShader> [/code] [code] <PixelShader hash="e9617846f5ecf04d"> <ParentVertexShaders>61cfe8e9ff44f072 </ParentVertexShaders> <Register id=0 handle=000000002857C560>a6590a8c</Register> <Register id=0 handle=000000002B5C3060>a6590a8c</Register> <Register id=0 handle=000000002C271BE0>a6590a8c</Register> <Register id=0 handle=000000007003D460 hash_contaminated=true>1ea77b2e</Register> <Register id=0 handle=0000000071CEA9E0 hash_contaminated=true>1ea77b2e</Register> <Register id=0 handle=00000000CE895B60>a6590a8c</Register> <Register id=1 handle=0000000028468220 hash_contaminated=true>feec5928</Register> <Register id=1 handle=000000002C275860 hash_contaminated=true>feec5928</Register> <Register id=1 handle=000000006F747560 hash_contaminated=true>bb69f036</Register> <Register id=1 handle=0000000070036EA0 hash_contaminated=true>bb69f036</Register> <Register id=1 handle=00000000700447E0 hash_contaminated=true>daf33d21</Register> <Register id=1 handle=0000000071CEEEA0 hash_contaminated=true>daf33d21</Register> <Register id=2 handle=00000000275010A0 hash_contaminated=true>1568e74d</Register> <Register id=2 handle=000000002C138D20 hash_contaminated=true>1568e74d</Register> <Register id=2 handle=000000006F73FC60 hash_contaminated=true>f039a77d</Register> <Register id=2 handle=000000007003ADE0 hash_contaminated=true>f039a77d</Register> <Register id=2 handle=0000000070048F60 hash_contaminated=true>7def45c7</Register> <Register id=2 handle=0000000071CF7820 hash_contaminated=true>7def45c7</Register> <Register id=3 handle=000000002C222860>d3921c3e</Register> <Register id=3 handle=0000000070068EE0>d3921c3e</Register> <Register id=3 handle=0000000071CD49E0>d3921c3e</Register> <Register id=3 handle=0000000071D6E0E0>d3921c3e</Register> <Register id=3 handle=00000000ED3A53E0>d3921c3e</Register> <Register id=3 handle=000000011086AB60>d3921c3e</Register> <Register id=4 handle=000000002C215A20>00000000</Register> <Register id=4 handle=000000002C28C2E0 hash_contaminated=true>43021c79</Register> <Register id=4 handle=000000007005CBA0>00000000</Register> <Register id=4 handle=0000000071D9E020>00000000</Register> <Register id=4 handle=000000011085F5E0>00000000</Register> <Register id=120 handle=0000000009E5E720>00000000</Register> <Register id=125 handle=0000000009E5D3E0>00000000</Register> <RenderTarget id=0 handle=000000002C21EBE0>4ce8bfab</RenderTarget> <RenderTarget id=0 handle=00000000700618A0>4ce8bfab</RenderTarget> <RenderTarget id=0 handle=0000000071D0EE20>4ce8bfab</RenderTarget> <RenderTarget id=0 handle=0000000071DA7CE0>4ce8bfab</RenderTarget> <RenderTarget id=0 handle=00000000ED39DAE0>4ce8bfab</RenderTarget> <RenderTarget id=0 handle=0000000110865620>4ce8bfab</RenderTarget> <DepthTarget handle=000000002C222860>d3921c3e</DepthTarget> <DepthTarget handle=0000000070068EE0>d3921c3e</DepthTarget> <DepthTarget handle=0000000071CD49E0>d3921c3e</DepthTarget> <DepthTarget handle=0000000071D6E0E0>d3921c3e</DepthTarget> <DepthTarget handle=00000000ED3A53E0>d3921c3e</DepthTarget> <DepthTarget handle=000000011086AB60>d3921c3e</DepthTarget> </PixelShader> [/code] <RenderTarget orig_hash=4ce8bfab type=Texture2D Width=960 Height=540 MipLevels=1 ArraySize=1 RawFormat=10 Format="R16G16B16A16_FLOAT" SampleDesc.Count=1 SampleDesc.Quality=0 Usage=0 BindFlags=0x28 CPUAccessFlags=0x0 MiscFlags=0x0></RenderTarget> SHADER 61cfe8e9ff44f072-vs.txt [code] // // Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.0 // // using 3Dmigoto v1.2.37 on Thu Jun 30 18:23:30 2016 // // // Buffer Definitions: // // cbuffer camera // { // // float3 camera_position; // Offset: 0 Size: 12 // float4x4 view; // Offset: 16 Size: 64 // float4x4 projection; // Offset: 80 Size: 64 // float4x4 view_projection; // Offset: 144 Size: 64 // float4x4 inv_view; // Offset: 208 Size: 64 // float4x4 inv_projection; // Offset: 272 Size: 64 [unused] // float4x4 inv_view_projection; // Offset: 336 Size: 64 [unused] // float4 camera_near_far; // Offset: 400 Size: 16 [unused] // float time_in_sec; // Offset: 416 Size: 4 [unused] // float2 g_inverse_focal_length; // Offset: 420 Size: 8 [unused] // float g_vertical_fov; // Offset: 428 Size: 4 [unused] // float4 g_screen_size; // Offset: 432 Size: 16 [unused] // float g_vpos_texel_offset; // Offset: 448 Size: 4 [unused] // float4 g_viewport_dimensions; // Offset: 464 Size: 16 // float2 g_viewport_origin; // Offset: 480 Size: 8 [unused] // float4 g_render_target_dimensions; // Offset: 496 Size: 16 [unused] // float4 g_camera_temp0; // Offset: 512 Size: 16 [unused] // float4 g_camera_temp1; // Offset: 528 Size: 16 [unused] // float4 g_camera_temp2; // Offset: 544 Size: 16 [unused] // float4 g_clip_rect; // Offset: 560 Size: 16 [unused] // float3 g_vr_head_rotation; // Offset: 576 Size: 12 [unused] // int g_num_of_samples; // Offset: 588 Size: 4 [unused] // float g_supersampling; // Offset: 592 Size: 4 [unused] // float4 g_mouse_position; // Offset: 608 Size: 16 [unused] // // } // // cbuffer cb_vfx_shared // { // // float3 vfx_camera_position; // Offset: 0 Size: 12 [unused] // float g_emitter_instance_tex_width;// Offset: 12 Size: 4 // = 0x43800000 // float g_particle_instance_tex_width;// Offset: 16 Size: 4 // = 0x44800000 // float g_sorted_data_tex_width; // Offset: 20 Size: 4 [unused] // = 0x44800000 // float g_num_alive_particles; // Offset: 24 Size: 4 [unused] // = 0x00000000 // // } // // cbuffer cb_vfx // { // // int4 g_draw_flags; // Offset: 0 Size: 16 // float4 g_viewport_offset_scale; // Offset: 16 Size: 16 [unused] // // } // // Resource bind info for g_emitter_constant_buffer_shared // { // // struct EMITTER_CONSTANTS_VFX_SHARED // { // // float2 particle_loop_params; // Offset: 0 // float m_mem_padding[2]; // Offset: 8 // // } $Element; // Offset: 0 Size: 16 // // } // // Resource bind info for g_sorted_data_buffer // { // // struct SORTDATA // { // // float dist; // Offset: 0 // float pid; // Offset: 4 // // } $Element; // Offset: 0 Size: 8 // // } // // Resource bind info for g_constant_buffer_vs // { // // struct EMITTER_CONSTANTS_VS // { // // uint m_behaviour_mask; // Offset: 0 // uint m_diffuse_id; // Offset: 4 // uint m_normal_id; // Offset: 8 // uint m_draw_flags; // Offset: 12 // float4 m_vs_culling_distances; // Offset: 16 // float2 m_vs_scroll_uvs_scroll_rate_xy;// Offset: 32 // float m_vs_rendersize_limiter_pixelsize_limit;// Offset: 40 // float2 m_vs_atlas_texture_scale;// Offset: 44 // float2 m_vs_atlas_texture_offset;// Offset: 52 // uint2 m_vs_cell_texture_number_of_cells_xy;// Offset: 60 // uint m_vs_cell_texture_cell; // Offset: 68 // uint m_vs_cell_texture_randomize_cell;// Offset: 72 // uint m_vs_animated_texture_cell_blend;// Offset: 76 // uint m_vs_animated_texture_loop;// Offset: 80 // uint m_vs_animated_texture_row_restricted;// Offset: 84 // uint m_vs_animated_texture_randomize_row;// Offset: 88 // uint m_vs_animated_texture_row_restriction;// Offset: 92 // float m_vs_animated_texture_no_loops_start;// Offset: 96 // float m_vs_animated_texture_no_loops_end;// Offset: 100 // uint m_vs_translation_orientation_mode;// Offset: 104 // float m_mem_padding; // Offset: 108 // // } $Element; // Offset: 0 Size: 112 // // } // // Resource bind info for g_constant_buffer_gs // { // // struct EMITTER_CONSTANTS_GS // { // // uint m_behaviour_mask; // Offset: 0 // uint m_diffuse_id; // Offset: 4 // uint m_normal_id; // Offset: 8 // uint m_draw_flags; // Offset: 12 // float2 m_vs_translation_pivot_xy;// Offset: 16 // uint m_vs_translation_orientation_mode;// Offset: 24 // float m_vs_translation_depth_bias;// Offset: 28 // // } $Element; // Offset: 0 Size: 32 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // g_sam_emitter_constants sampler NA NA 0 1 // g_emitter_constant_buffer_shared texture struct r/o 0 1 // g_emitter_instances texture float4 2darray 1 1 // g_particle_instances texture float4 2darray 2 1 // g_sorted_data_buffer texture struct r/o 3 1 // g_tex_emitter_constants texture float4 2darray 4 1 // g_draw_indirect_buffer texture byte r/o 5 1 // g_constant_buffer_vs texture struct r/o 6 1 // g_constant_buffer_gs texture struct r/o 7 1 // camera cbuffer NA NA 0 1 // cb_vfx_shared cbuffer NA NA 1 1 // cb_vfx cbuffer NA NA 2 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyz 0 NONE float xyz // SV_InstanceID 0 x 1 INSTID uint x // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // COLOR 0 xyzw 1 NONE float xyzw // TEXCOORD 0 xyzw 2 NONE uint xyzw // TEXCOORD 1 xyzw 3 NONE float xyzw // TEXCOORD 2 xyzw 4 NONE float xyzw // TEXCOORD 3 xyz 5 NONE float xyz // TEXCOORD 4 xyzw 6 NONE float xyzw // TEXCOORD 5 xyzw 7 NONE float xyzw // TEXCOORD 6 xyzw 8 NONE float xyzw // TEXCOORD 7 xyzw 9 NONE float xyzw // TEXCOORD 8 xyz 10 NONE float xyz // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[30], immediateIndexed dcl_constantbuffer cb1[2], immediateIndexed dcl_constantbuffer cb2[1], immediateIndexed dcl_sampler s0, mode_default dcl_resource_structured t0, 16 dcl_resource_texture2darray (float,float,float,float) t1 dcl_resource_texture2darray (float,float,float,float) t2 dcl_resource_structured t3, 8 dcl_resource_texture2darray (float,float,float,float) t4 dcl_resource_raw t5 dcl_resource_structured t6, 112 dcl_resource_structured t7, 32 dcl_input v0.xyz dcl_input_sgv v1.x, instance_id 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.xyz dcl_output o6.xyzw dcl_output o7.xyzw dcl_output o8.xyzw dcl_output o9.xyzw dcl_output o10.xyz dcl_temps 22 and r0.xyz, cb2[0].xxxx, l(0x08000000, 0x20000000, 0x38000000, 0) ld_raw_indexable(raw_buffer)(mixed,mixed,mixed,mixed) r1.xyz, l(108), t5.xyzx movc r0.y, r0.y, r1.x, r1.z movc r0.x, r0.x, r1.y, r0.y movc r0.x, r0.z, r0.x, l(0) iadd r0.x, r0.x, -v1.x ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(4), t3.xxxx ftou r0.x, r0.x utof r0.x, r0.x mul r0.y, r0.x, cb1[1].x ge r0.y, r0.y, -r0.y movc r0.y, r0.y, cb1[1].x, -cb1[1].x div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y mul r0.z, r0.z, r0.x frc r0.z, r0.z mul r0.y, r0.z, r0.y div r0.x, r0.x, cb1[1].x ftou r1.xy, r0.yxyy mov r1.zw, l(0,0,1,0) ld_indexable(texture2darray)(float,float,float,float) r0.xyz, r1.xyww, t2.xywz ld_indexable(texture2darray)(float,float,float,float) r2.xyzw, r1.xyzw, t2.xyzw ftoi r0.x, r0.x utof r0.w, r0.x mul r3.x, r0.w, cb1[0].w ge r3.x, r3.x, -r3.x movc r3.x, r3.x, cb1[0].w, -cb1[0].w div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x mul r3.y, r0.w, r3.y frc r3.y, r3.y mul r3.x, r3.y, r3.x div r0.w, r0.w, cb1[0].w ftou r3.x, r3.x ftou r3.y, r0.w mov r3.zw, l(0,0,2,0) ld_indexable(texture2darray)(float,float,float,float) r4.xyzw, r3.xyzw, t1.xyzw mov r3.z, l(3) ld_indexable(texture2darray)(float,float,float,float) r5.xyzw, r3.xyzw, t1.xyzw ftoi r6.x, r5.x ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r7.xyzw, r6.x, l(12), t6.xyzw ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r8.w, r6.x, l(28), t6.xxxx and r0.w, r7.x, cb2[0].x ine r0.x, r0.x, l(-1) and r3.z, r0.w, l(0x07ffffff) ine r3.z, r3.z, l(0) and r0.x, r0.x, r3.z lt r3.z, l(0.010000), r4.w and r0.x, r0.x, r3.z add r9.xyz, r2.yzxy, -cb0[0].yzxy dp3 r3.z, r9.xyzx, r9.xyzx sqrt r10.z, r3.z mov r8.xyz, r7.yzwy mul r11.xyzw, r5.yyyy, r8.xyzw ge r7.yzw, r10.zzzz, r11.xxyz ge r12.xyz, r10.zzzz, r11.yzwy and r7.yzw, r7.yyzw, l(0, 0x3f800000, 0x3f800000, 0x3f800000) movc r7.yzw, r12.xxyz, l(0,0,0,0), r7.yyzw mad r5.x, -r8.x, r5.y, r10.z mad r8.xy, r8.ywyy, r5.yyyy, -r11.xzxx add r8.xy, r8.xyxx, l(0.000001, 0.000001, 0.000000, 0.000000) div_sat r11.x, r5.x, r8.x mad r5.x, r8.w, r5.y, -r10.z div_sat r11.z, r5.x, r8.y mov r11.y, l(1.000000) dp3 r5.x, r11.xyzx, r7.yzwy mov r8.xyz, r2.xyzx mov r8.w, l(1.000000) dp4 r2.x, r8.xyzw, cb0[9].xyzw dp4 r2.y, r8.xyzw, cb0[10].xyzw dp4 r2.z, r8.xyzw, cb0[11].xyzw dp4 r6.w, r8.xyzw, cb0[12].xyzw add r6.w, r6.w, l(5.000000) lt r7.y, r2.x, -r6.w lt r2.x, r6.w, r2.x or r2.x, r2.x, r7.y lt r7.y, r2.y, -r6.w or r2.x, r2.x, r7.y lt r2.y, r6.w, r2.y or r2.x, r2.y, r2.x lt r2.y, r2.z, l(-5.000000) or r2.x, r2.y, r2.x lt r2.y, r6.w, r2.z or r2.x, r2.y, r2.x movc r2.x, r2.x, l(0), r5.x and r0.x, r0.x, r2.x lt r2.x, l(0.000000), r0.x if_nz r2.x mov r1.z, l(2) ld_indexable(texture2darray)(float,float,float,float) r11.xyzw, r1.xyzw, t2.xyzw mov r1.z, l(3) ld_indexable(texture2darray)(float,float,float,float) r1.xyzw, r1.xyzw, t2.xyzw ld_indexable(texture2darray)(float,float,float,float) r2.x, r3.xyww, t1.wxyz ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r2.y, r6.x, l(0), t6.xxxx ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r12.xyzw, r6.x, l(40), t6.xyzw ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r13.xyzw, r6.x, l(56), t6.zywx ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r14.xyzw, r6.x, l(72), t6.xyzw ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.xy, r6.x, l(0), t0.xyxx ne r2.z, r3.y, l(0.000000) mad r3.xy, r3.xyxx, r11.wwww, r2.wwww add r3.y, -r3.x, r3.y eq r3.w, r5.w, l(0.000000) lt r5.x, r2.x, r3.x add r6.w, r2.x, -r3.x div r6.w, r6.w, r3.y ge r7.y, r6.w, -r6.w frc r6.w, |r6.w| movc r6.w, r7.y, r6.w, -r6.w mad r6.w, r6.w, r3.y, r3.x movc r5.x, r5.x, r2.x, r6.w add r3.x, -r3.x, r5.w div r3.x, r3.x, r3.y round_ni r3.x, r3.x mad r3.x, -r3.x, r3.y, r2.x movc r3.x, r3.w, r5.x, r3.x movc r2.x, r2.z, r3.x, r2.x add r2.x, -r2.w, r2.x add r2.z, r11.w, l(0.000001) div r15.x, r2.x, r2.z mad r15.y, r0.y, l(0.0714285746), l(0.321428567) utof r15.z, r6.x sample_l_indexable(texture2darray)(float,float,float,float) r2.xzw, r15.xyzx, t4.xwyz, s0, l(0.000000) mad r16.x, r5.z, l(0.0714285746), l(0.178571433) mov r16.y, r0.z mov r16.z, r15.z sample_l_indexable(texture2darray)(float,float,float,float) r3.xyw, r16.yxzy, t4.xywz, s0, l(0.000000) mul r2.xzw, r2.xxzw, r3.xxyw mul r17.xyw, r5.yyyy, r2.xzxw and r18.xyzw, r2.yyyy, l(512, 4096, 1, 4) if_nz r18.x ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r0.z, r6.x, l(104), t6.xxxx and r2.x, r7.x, l(0x80000000) mad r15.w, r0.y, l(0.0714285746), l(0.892857134) sample_l_indexable(texture2darray)(float,float,float,float) r2.z, r15.xwzx, t4.yzxw, s0, l(0.000000) dp3 r2.w, r11.xyzx, r11.xyzx sqrt r3.x, r2.w mul r2.z, r2.z, r3.x div r2.z, r2.z, r5.y add r3.x, r2.z, l(1.000000) movc r7.x, r2.x, r2.z, r3.x if_z r0.z rsq r2.x, r2.w mul r3.xyw, r2.xxxx, r11.xyxz mul r5.xyw, r3.ywyx, l(0.000000, 0.000000, 0.000000, 1.000000) mad r5.xyw, r3.wxwy, l(1.000000, 0.000000, 0.000000, 0.000000), -r5.xyxw dp2 r2.x, r5.xwxx, r5.xwxx rsq r2.x, r2.x mul r5.xyw, r2.xxxx, r5.xyxw else ieq r2.x, r0.z, l(1) if_nz r2.x rsq r2.x, r2.w mul r19.xyz, r2.xxxx, r11.yzxy mul r20.xyz, r19.xyzx, l(0.000000, 1.000000, 0.000000, 0.000000) mad r19.xyz, r19.zxyz, l(1.000000, 0.000000, 0.000000, 0.000000), -r20.xyzx mul r20.xyz, r19.xyzx, l(1.000000, 0.000000, 0.000000, 0.000000) mad r19.xyz, r19.zxyz, l(0.000000, 0.000000, 1.000000, 0.000000), -r20.xyzx dp2 r2.x, r19.xzxx, r19.xzxx rsq r2.x, r2.x mul r3.xyw, r2.xxxx, r19.xyxz mov r5.xyw, l(0,1.000000,0,0) else ieq r2.x, r0.z, l(2) if_nz r2.x rsq r2.x, r2.w mul r3.xyw, r2.xxxx, r11.xyxz rsq r2.x, r3.z mul r19.xyz, r2.xxxx, r9.yzxy mul r20.xyz, r3.ywxy, -r19.xyzx mad r19.xyz, -r19.zxyz, r3.wxyw, -r20.xyzx dp3 r2.x, r19.xyzx, r19.xyzx rsq r2.x, r2.x mul r5.xyw, r2.xxxx, r19.xyxz else ieq r2.x, r0.z, l(3) if_nz r2.x rsq r2.x, r2.w mul r19.xyz, r2.xxxx, r11.zxyz mul r20.xyz, r19.xyzx, l(1.000000, 0.000000, 0.000000, 0.000000) mad r19.xyz, r19.zxyz, l(0.000000, 0.000000, 1.000000, 0.000000), -r20.xyzx dp2 r2.x, r19.xzxx, r19.xzxx rsq r2.x, r2.x mul r5.xyw, r2.xxxx, r19.xyxz mov r3.xyw, l(0,1.000000,0,0) else rsq r2.x, r2.w mul r2.xzw, r2.xxxx, r11.xxyz mul r11.xyz, r2.wxzw, l(1.000000, 0.000000, 0.000000, 0.000000) mad r11.xyz, r2.zwxz, l(0.000000, 0.000000, 1.000000, 0.000000), -r11.xyzx dp2 r6.w, r11.xzxx, r11.xzxx rsq r6.w, r6.w mul r11.xyz, r6.wwww, r11.xyzx mul r19.xyzw, r11.zzxx, l(0.000000, 1.000000, 0.000000, 1.000000) mov r20.y, l(0) mov r20.zw, r19.xxxw mov r19.w, l(0) add r19.xyz, -r20.yzwy, r19.yzwy dp2 r6.w, r19.xzxx, r19.xzxx rsq r6.w, r6.w mul r7.yzw, r6.wwww, r19.xxyz ieq r19.xy, r0.zzzz, l(4, 5, 0, 0) rsq r0.z, r3.z mul r9.xyz, r0.zzzz, r9.xyzx mul r20.xyz, r2.zwxz, -r9.yzxy mad r20.xyz, -r9.xyzx, r2.wxzw, -r20.xyzx dp3 r0.z, cb0[1].xyzx, cb0[1].xyzx rsq r0.z, r0.z mul r21.xyz, r0.zzzz, cb0[1].xyzx dp3 r0.z, r20.xyzx, r20.xyzx rsq r3.z, r0.z sqrt r0.z, r0.z mul r0.z, r0.z, l(100.000000) min r0.z, r0.z, l(1.000000) mad r20.xyz, r20.xyzx, r3.zzzz, -r21.xyzx mad r20.xyz, r0.zzzz, r20.xyzx, r21.xyzx mul r21.xyz, -r9.xyzx, r20.zxyz mad r9.xyz, r20.yzxy, -r9.yzxy, -r21.xyzx dp3 r0.z, r9.xyzx, r9.xyzx rsq r0.z, r0.z mul r9.yzw, r0.zzzz, r9.xxyz dp3 r0.z, r2.xzwx, r9.yzwy mul r0.z, r0.z, r7.x max r0.z, r0.z, l(1.000000) movc r9.x, r19.y, r0.z, r7.x movc r5.xyw, r19.xxxx, r11.xyxz, r20.xyxz movc r7.xyzw, r19.xxxx, r7.xyzw, r9.xyzw mov r3.xyw, r7.yzyw endif endif endif endif else mov r5.xyw, l(0,0,0,0) mov r3.xyw, l(0,0,0,0) mov r7.x, l(1.000000) endif mov r7.y, l(1.000000) mul r10.xy, r7.yxyy, r17.xyxx mov r10.w, l(1.000000) dp4 r7.y, r10.xyzw, cb0[5].xyzw dp4 r7.z, r10.xyzw, cb0[6].xyzw dp4 r0.z, r10.xyzw, cb0[8].xyzw div r2.xz, r7.yyzy, r0.zzzz mul r2.xz, r2.xxzx, cb0[29].xxyx mul r2.xz, r2.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) div r2.xz, r12.xxxx, r2.xxzx max r2.xz, r2.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) mul r2.xz, r2.xxzx, r17.xxyx movc r17.yz, r18.yyyy, r2.xxzx, r17.xxyx if_nz r18.z mad r15.y, r0.y, l(0.0714285746), l(0.464285702) sample_l_indexable(texture2darray)(float,float,float,float) r9.xyz, r15.xyzx, t4.xyzw, s0, l(0.000000) mov r9.w, l(1.000000) mul r4.xyzw, r4.xyzw, r9.xyzw else mov r4.xyzw, l(0,0,0,0) endif imul null, r9.y, r13.x, r13.y utof r2.xz, r13.yyxy div r7.yz, l(1.000000, 1.000000, 1.000000, 1.000000), r2.xxzx mul r10.zw, r7.yyyz, r12.yyyz if_nz r18.w ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r11.xyzw, r6.x, l(88), t6.xyzw mul r0.z, r11.z, r15.x mad r2.w, r15.x, r11.w, -r0.z mad r0.z, r15.x, r2.w, r0.z movc r2.w, r14.x, r0.y, l(0) mov r13.x, r11.y mov r9.x, l(0) movc r9.xz, r14.wwww, r13.xxyx, r9.xxyx ge r3.z, r0.y, -r0.y frc r6.w, |r0.y| movc r3.z, r3.z, r6.w, -r6.w mul r2.z, r2.z, r3.z ftou r2.z, r2.z movc r2.z, r11.x, r2.z, r9.x imul null, r2.z, r13.y, r2.z add r0.z, r0.z, r2.w ge r2.w, r0.z, -r0.z frc r0.z, |r0.z| movc r0.z, r2.w, r0.z, -r0.z utof r2.w, r9.z mul r3.z, r0.z, r2.w round_z r3.z, r3.z mad r11.x, r0.z, r2.w, -r3.z utof r0.z, r2.z add r2.z, r3.z, r0.z ftou r2.z, r2.z utof r6.w, r2.z div r6.w, r6.w, r2.x ge r7.w, r6.w, -r6.w frc r6.w, r6.w movc r6.w, r7.w, r6.w, -r6.w mul r18.y, r2.x, r6.w udiv r2.z, null, r2.z, r13.y utof r18.z, r2.z mul r18.yz, r7.yyzy, r18.yyzy add r2.z, r3.z, l(1.000000) div r3.z, r2.z, r2.w ge r6.w, r3.z, -r3.z frc r3.z, |r3.z| movc r3.z, r6.w, r3.z, -r3.z mul r2.w, r2.w, r3.z iadd r3.z, r9.z, l(-1) utof r3.z, r3.z max r2.z, r2.z, l(0.000000) min r2.z, r3.z, r2.z movc r2.z, r14.z, r2.w, r2.z add r0.z, r0.z, r2.z div r0.z, r0.z, r2.x ge r2.z, r0.z, -r0.z frc r2.w, |r0.z| movc r2.z, r2.z, r2.w, -r2.w mul r19.y, r2.x, r2.z round_ni r19.z, r0.z mul r11.yz, r7.yyzy, r19.yyzy mov r18.x, l(0) movc r9.xzw, r14.yyyy, r11.yyzx, r18.yyzx mov r13.z, r12.w mad r10.xy, r18.yzyy, r12.yzyy, r13.zwzz mad r2.zw, r9.xxxz, r12.yyyz, r13.zzzw else and r0.z, r2.y, l(2) utof r3.z, r9.y utof r6.w, r13.z mad r6.w, r0.y, r3.z, r6.w div r6.w, r6.w, r3.z ge r7.w, r6.w, -r6.w frc r6.w, |r6.w| movc r6.w, r7.w, r6.w, -r6.w mul r3.z, r3.z, r6.w ftou r3.z, r3.z movc r3.z, r14.x, r3.z, r13.z utof r6.w, r3.z div r6.w, r6.w, r2.x ge r7.w, r6.w, -r6.w frc r6.w, r6.w movc r6.w, r7.w, r6.w, -r6.w mul r11.x, r2.x, r6.w udiv r2.x, null, r3.z, r13.y utof r11.y, r2.x mul r7.yz, r7.yyzy, r11.xxyx mov r13.y, r12.w mad r10.xy, r7.yzyy, r12.yzyy, r13.ywyy movc r10.xyzw, r0.zzzz, r10.xyzw, l(0,0,1.000000,1.000000) mov r2.zw, l(0,0,0,0) mov r9.w, l(0) endif and r0.z, r2.y, l(8) if_nz r0.z mad r15.y, r0.y, l(0.0714285746), l(0.750000) sample_l_indexable(texture2darray)(float,float,float,float) r0.z, r15.xyzx, t4.yzxw, s0, l(0.000000) mad r16.w, r5.z, l(0.0714285746), l(0.607142866) sample_l_indexable(texture2darray)(float,float,float,float) r2.x, r16.ywzy, t4.xyzw, s0, l(0.000000) mul r0.z, r0.z, r2.x mul r4.w, r0.z, r4.w endif mov r17.x, r0.y mov o6.w, r15.x else mov r5.xyw, l(0,0,0,0) mov r7.x, l(1.000000) mov r10.xyzw, l(0,0,0,0) mov r17.xyzw, l(0,0,0,0) mov r1.xyzw, l(0,0,0,1.000000) mov r3.xyw, l(0,0,0,0) mov r2.zw, l(0,0,0,0) mov r9.w, l(0) mov r6.x, l(0) mov r8.xyz, l(0,0,0,0) mov o6.w, l(0) mov r4.xyzw, l(0,0,0,0) endif mul r4.w, r0.x, r4.w lt r0.x, l(0.010000), r4.w if_nz r0.x add r11.xyzw, r1.zxyx, r1.zxyx mul r12.xyzw, r1.wwwx, r11.xyzw mul r0.x, r1.z, r11.x mad r0.y, r1.y, r11.z, r0.x add r13.x, -r0.y, l(1.000000) mad r0.x, r1.x, r11.w, r0.x add r0.y, -r0.x, l(1.000000) mad r7.yzw, r1.xxyx, r11.xxxz, -r12.zzyx mad r11.xyzw, r1.xyxy, r11.zxxz, r12.xyzw and r6.yz, r0.wwww, l(0, 0x38000000, 0x10000000, 0) if_nz r6.z mad r2.xy, v0.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r3.z, r6.x, l(0), t7.xxxx ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r12.xyzw, r6.x, l(16), t7.xyzw and r5.z, r3.z, l(256) if_nz r5.z utof r5.z, r12.z add r6.zw, -r12.xxxy, v0.xxxy mul r6.zw, r17.yyyz, r6.zzzw mul r14.xyz, -r1.zxyz, r6.wwww mad r9.y, r6.z, r1.w, r14.x dp2 r6.w, r6.zwzz, r1.zwzz mad r12.z, r6.z, -r1.y, -r14.y mad r6.z, r6.z, r1.x, -r14.z mul r13.w, r1.x, r6.z mad r13.w, r1.w, r9.y, r13.w mul r14.x, r1.x, r12.z mad r12.z, r1.y, r12.z, r13.w mad r15.x, -r1.z, r6.w, r12.z mad r6.w, r1.w, r6.w, -r14.x mad r6.z, r1.y, r6.z, r6.w mad r15.z, r1.z, r9.y, r6.z mov r8.w, l(1.000000) dp4 r14.x, r8.xyzw, cb0[1].xyzw dp4 r14.y, r8.xyzw, cb0[2].xyzw dp4 r16.z, r8.xyzw, cb0[3].xyzw dp4 r16.w, r8.xyzw, cb0[4].xyzw add r16.xy, r15.xzxx, r14.xyxx dp4 r14.x, r16.xyzw, cb0[13].xyzw dp4 r14.y, r16.xyzw, cb0[14].xyzw dp4 r14.z, r16.xyzw, cb0[15].xyzw add r18.y, r8.y, r15.z mov r18.xzw, r8.xxzw dp4 r6.z, r18.xyzw, cb0[1].xyzw dp4 r19.y, r18.xyzw, cb0[2].xyzw dp4 r19.z, r18.xyzw, cb0[3].xyzw dp4 r19.w, r18.xyzw, cb0[4].xyzw add r19.x, r15.x, r6.z dp4 r18.x, r19.xyzw, cb0[13].xyzw dp4 r18.y, r19.xyzw, cb0[14].xyzw dp4 r18.z, r19.xyzw, cb0[15].xyzw eq r20.xyz, r5.zzzz, l(0.000000, 1.000000, 2.000000, 0.000000) add r8.xz, r8.xxzx, r15.xxzx dp4 r15.x, r8.xyzw, cb0[1].xyzw dp4 r15.y, r8.xyzw, cb0[2].xyzw dp4 r15.z, r8.xyzw, cb0[3].xyzw dp4 r15.w, r8.xyzw, cb0[4].xyzw and r15.xyzw, r15.xyzw, r20.zzzz and r21.xyz, r8.xyzx, r20.zzzz movc r15.xyzw, r20.yyyy, r19.xyzw, r15.xyzw movc r18.xyz, r20.yyyy, r18.xyzx, r21.xyzx movc r15.xyzw, r20.xxxx, r16.xyzw, r15.xyzw movc o6.xyz, r20.xxxx, r14.xyzx, r18.xyzx dp4 o0.x, r15.xyzw, cb0[5].xyzw dp4 o0.y, r15.xyzw, cb0[6].xyzw dp4 o0.z, r15.xyzw, cb0[7].xyzw dp4 o0.w, r15.xyzw, cb0[8].xyzw else and r5.z, r3.z, l(512) if_nz r5.z add r6.zw, -r12.xxxy, v0.xxxy mul r6.zw, r17.yyyz, r6.zzzw mul r14.xyz, -r1.zxyz, r6.wwww mad r5.z, r6.z, r1.w, r14.x dp2 r6.w, r6.zwzz, r1.zwzz mad r8.w, r6.z, -r1.y, -r14.y mad r6.z, r6.z, r1.x, -r14.z mul r9.y, r1.x, r6.z mad r9.y, r1.w, r5.z, r9.y mul r12.z, r1.x, r8.w mad r8.w, r1.y, r8.w, r9.y mad r8.w, -r1.z, r6.w, r8.w mad r6.w, r1.w, r6.w, -r12.z mad r6.z, r1.y, r6.z, r6.w mad r5.z, r1.z, r5.z, r6.z mul r5.z, r7.x, r5.z mul r3.xyw, r3.xyxw, r5.zzzz mad r3.xyw, r5.xyxw, r8.wwww, r3.xyxw add r5.xyz, r3.xywx, r8.xyzx mov r5.w, l(1.000000) dp4 o0.x, r5.xyzw, cb0[9].xyzw dp4 o0.y, r5.xyzw, cb0[10].xyzw dp4 r3.x, r5.xyzw, cb0[12].xyzw dp3 r3.y, cb0[3].xyzx, cb0[3].xyzx rsq r3.y, r3.y mul r14.xyz, r3.yyyy, cb0[3].xyzx mad r5.xyz, -r14.xyzx, r12.wwww, r5.xyzx mov r5.w, l(1.000000) dp4 r3.y, r5.xyzw, cb0[11].xyzw dp4 r3.w, r5.xyzw, cb0[12].xyzw mul r3.y, r3.x, r3.y div o0.z, r3.y, r3.w mov o0.w, r3.x mov o6.xyz, r5.xyzx else and r3.x, r3.z, l(1024) if_nz r3.x mul r3.x, cb0[29].z, cb0[29].y mul r3.x, r3.x, r17.y add r5.xy, -r12.xyxx, v0.xyxx mul r14.xyz, -r1.zxyz, r5.yyyy mad r3.w, r5.x, r1.w, r14.x dp2 r5.y, r5.xyxx, r1.zwzz mad r5.z, r5.x, -r1.y, -r14.y mad r5.x, r5.x, r1.x, -r14.z mul r5.w, r1.x, r5.x mad r5.w, r1.w, r3.w, r5.w mul r6.z, r1.x, r5.z mad r5.z, r1.y, r5.z, r5.w mad r14.x, -r1.z, r5.y, r5.z mad r5.y, r1.w, r5.y, -r6.z mad r5.x, r1.y, r5.x, r5.y mad r14.y, r1.z, r3.w, r5.x mov r3.y, r17.z mad r5.xy, r14.xyxx, r3.xyxx, r8.xyxx mov r5.z, l(1.000000) else and r3.x, r3.z, l(2048) mad r3.yz, r8.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000) frc r3.yz, r3.yyzy mad r3.yz, r3.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) mul r3.w, cb0[29].z, cb0[29].y mul r14.x, r3.w, r17.y add r6.zw, -r12.xxxy, v0.xxxy mul r12.xyz, -r1.zxyz, r6.wwww mad r3.w, r6.z, r1.w, r12.x dp2 r5.w, r6.zwzz, r1.zwzz mad r6.w, r6.z, -r1.y, -r12.y mad r6.z, r6.z, r1.x, -r12.z mul r7.x, r1.x, r6.z mad r7.x, r1.w, r3.w, r7.x mul r8.w, r1.x, r6.w mad r6.w, r1.y, r6.w, r7.x mad r12.x, -r1.z, r5.w, r6.w mad r5.w, r1.w, r5.w, -r8.w mad r5.w, r1.y, r6.z, r5.w mad r12.y, r1.z, r3.w, r5.w mov r14.y, r17.z mad r12.xy, r12.xyxx, r14.xyxx, r3.yzyy mov r12.z, l(1.000000) movc r5.xyz, r3.xxxx, r12.xyzx, l(0,0,0,0) endif mov o0.xyw, r5.xyxz mov o0.z, l(0) mov o6.xyz, l(0,0,0,0) endif endif mad o3.xy, r2.xyxx, r10.zwzz, r10.xyxx mad r9.xz, r2.xxyx, r10.zzwz, r2.zzwz mov o3.zw, l(0,0,0,0) mov o10.xy, v0.xyxx mov o10.z, l(0) else and r0.w, r0.w, l(0x28000000) if_nz r0.w ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r0.w, r6.x, l(0), t7.xxxx ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r2.xy, r6.x, l(16), t7.xyxx and r0.w, r0.w, l(256) mov r2.z, l(0) add r2.xyzw, -r2.yzzx, v0.yzzx mul r2.xyzw, r17.zwwy, r2.xyzw mul r3.xyz, -r1.zxyz, r2.xxxx mad r3.x, r2.w, r1.w, r3.x mad r2.y, -r2.y, -r1.y, r3.x dp2 r3.x, r2.wxww, r1.zwzz mad r3.x, r2.z, -r1.x, r3.x mad r2.x, r2.w, -r1.y, -r3.y mad r2.x, r2.z, r1.w, r2.x mad r2.w, r2.w, r1.x, -r3.z mad r2.z, -r2.z, -r1.z, r2.w mul r2.w, r1.x, r2.z mad r2.w, r1.w, r2.y, r2.w mul r3.yz, r1.xxwx, r2.xxxx mad r2.x, r1.y, r2.x, r2.w mad r5.x, -r1.z, r3.x, r2.x mad r1.w, r1.w, r3.x, -r3.y mad r1.w, r1.y, r2.z, r1.w mad r5.y, r1.z, r2.y, r1.w mad r1.x, r1.x, r3.x, r3.z mad r1.x, -r1.y, r2.y, r1.x mad r5.z, r1.z, r2.z, r1.x add r1.xyz, r5.xyzx, r8.xyzx mov r1.w, l(1.000000) dp4 r2.x, r1.xyzw, cb0[1].xyzw dp4 r2.y, r1.xyzw, cb0[2].xyzw dp4 r2.z, r1.xyzw, cb0[3].xyzw dp4 r2.w, r1.xyzw, cb0[4].xyzw dp4 r1.x, r2.xyzw, cb0[5].xyzw dp4 r1.y, r2.xyzw, cb0[6].xyzw dp4 r1.z, r2.xyzw, cb0[7].xyzw dp4 r1.w, r2.xyzw, cb0[8].xyzw movc o0.xyzw, r0.wwww, r1.xyzw, l(0,0,0,0) mov o3.xyzw, r10.xyzw mov o10.xyz, v0.xyzx else mov o0.xyzw, l(-10.000000,-10.000000,-10.000000,0) mov o3.xyzw, l(0,0,0,0) mov o10.xyz, l(0,0,0,0) endif mov o6.xyz, r8.xyzx mov r9.xz, l(0,0,0,0) endif mov o1.xyzw, r4.xyzw mov o4.xyzw, r17.yzwx mov r13.y, r11.x mov r13.z, r7.y mov r0.x, r7.w mov r0.z, r11.y mad r7.yw, r11.zzzw, l(0.000000, 1.000000, 0.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000) mov o5.xyz, r9.xzwx else mov o0.xyzw, l(-10.000000,-10.000000,-10.000000,0) mov o1.xyzw, l(0,0,0,0) mov r6.xy, l(0,0,0,0) mov o3.xyzw, l(0,0,0,0) mov o4.xyzw, l(0,0,0,0) mov o6.xyzw, l(0,0,0,0) mov r13.xyz, l(0,0,0,0) mov r0.xyz, l(0,0,0,0) mov r7.yzw, l(0,0,0,0) mov o5.xyz, l(0,0,0,0) mov o10.xyz, l(0,0,0,0) endif mov o2.xy, r6.xyxx mov o2.zw, l(0,0,0,0) mov o7.xyz, r13.xyzx mov o7.w, l(0) mov o8.xyz, r0.xyzx mov o8.w, l(0) mov o9.xyz, r7.yzwy mov o9.w, l(0) ret // Approximately 616 instruction slots used [/code]
hi, i am working with totalwar Warhammer,
i can fix shadows and lights but i have a problem with the particles, smoke, fire,.. i only can see them for one eye,
the problem it is that it affect to a lots effects.

i found a verter shader that call to 3 pixel shaders, and i think it is the responsible, because i disable it and disable all the effects.

i have can fix 5204e031b4a1009d and 4831160c5c836214, but imposible put in stereo e9617846f5ecf04d, i have try a lot combinations in the vs, and i only have move the the effect at the left or center


Testing frame analysis ( i would like some tips ),

TEST 1:
---------
o1-001500=868ffd29-vs=61cfe8e9ff44f072-ps=5204e031b4a1009d OK
o2-001500=07f0c88e-vs=61cfe8e9ff44f072-ps=5204e031b4a1009d OK
(...)
o0-001509=4ce8bfab-vs=61cfe8e9ff44f072-ps=e9617846f5ecf04d NO STEREO MONO grrr

i see that o0 output from VS in mono ( black backgroung with the flames ),
result:
effects MONO
shadows OK Fantastics !!
The game would be playable if i disable the particles effects but grrrrrr.



TEST 2:
--------
(...)
using stereoflagDX10 in profile, and fame analysis again
Setting ID_0x702442fc = 0x1c220024 InternalSettingFlag=V0

o0-001509=4ce8bfab-vs=61cfe8e9ff44f072-ps=e9617846f5ecf04d OK in stereo !!!!!!

result:
effects OK Fantastics!!!!!!
shadows but shadows are now totally broken imposible to fix them, in MONO GRRRRRR
The game would be playable if i disable shadows in options.

I try different combinations and different profiles, maxpayne3, battlefield,.... and combinations ( bono loto ), but the result it is always the same, either fix the particles or shadows, but not both at the same time.




- is is problem of the driver? any idea, i am using windows 10 with last version from nvidia
- If i try,
[TextureOverrideAAAAAA]
hash = 4ce8bfab
StereoMode=2

the result it is, the effect, particles, smoke, fire... at screen depth

- if 4ce8bfab it is a rendertarget as can i put it in stereo, some tips or override or
i would must continue searching for another shader ?

- i found 1 Geometry GS and 2 Computer Shaders CS, with EMITTER_CONSTANTS... but i have not idea as to change it.
playing with the CS i disabled all the effects too.

- some tips for frameanalys,? i can not open the dds, with gimp, and anothers viewers,.

- i read a post with DDS talking about monobuffers and mono textures, how can put them in stereo, and how i know if are in stereo or not?


thanks i am learning yet and a lot question uff


<VertexShader hash="61cfe8e9ff44f072">
<CalledPixelShaders>4831160c5c836214 5204e031b4a1009d e9617846f5ecf04d </CalledPixelShaders>
<Register id=0 handle=000000002D6F32E0>00000000</Register>
<Register id=0 handle=000000006C26C1A0>00000000</Register>
<Register id=1 handle=000000002D74D6E0 hash_contaminated=true>2cd8eb18</Register>
<Register id=1 handle=0000000059DEA6E0 hash_contaminated=true>2cd8eb18</Register>
<Register id=2 handle=000000002D6F6F60 hash_contaminated=true>65c6faa8</Register>
<Register id=2 handle=000000002D6F9060 hash_contaminated=true>65c6faa8</Register>
<Register id=2 handle=000000006C27FDE0 hash_contaminated=true>65c6faa8</Register>
<Register id=2 handle=000000006C280360 hash_contaminated=true>65c6faa8</Register>
<Register id=3 handle=000000002D6F3B20>00000000</Register>
<Register id=3 handle=000000006C274860>00000000</Register>
<Register id=4 handle=000000002D7C8560 hash_contaminated=true>5eea0086</Register>
<Register id=4 handle=0000000059DED2E0 hash_contaminated=true>24060f89</Register>
<Register id=5 handle=000000002D6EDDA0>00000000</Register>
<Register id=5 handle=000000006C271F20>00000000</Register>
<Register id=6 handle=000000002D6F06E0>00000000</Register>
<Register id=6 handle=000000006C2721E0>00000000</Register>
<Register id=7 handle=000000002D6EEB60>00000000</Register>
<Register id=7 handle=000000006C26D220>00000000</Register>
<Register id=120 handle=0000000009CA5AA0>00000000</Register>
<Register id=125 handle=0000000009CA3160>00000000</Register>
</VertexShader>


<PixelShader hash="e9617846f5ecf04d">
<ParentVertexShaders>61cfe8e9ff44f072 </ParentVertexShaders>
<Register id=0 handle=000000002857C560>a6590a8c</Register>
<Register id=0 handle=000000002B5C3060>a6590a8c</Register>
<Register id=0 handle=000000002C271BE0>a6590a8c</Register>
<Register id=0 handle=000000007003D460 hash_contaminated=true>1ea77b2e</Register>
<Register id=0 handle=0000000071CEA9E0 hash_contaminated=true>1ea77b2e</Register>
<Register id=0 handle=00000000CE895B60>a6590a8c</Register>
<Register id=1 handle=0000000028468220 hash_contaminated=true>feec5928</Register>
<Register id=1 handle=000000002C275860 hash_contaminated=true>feec5928</Register>
<Register id=1 handle=000000006F747560 hash_contaminated=true>bb69f036</Register>
<Register id=1 handle=0000000070036EA0 hash_contaminated=true>bb69f036</Register>
<Register id=1 handle=00000000700447E0 hash_contaminated=true>daf33d21</Register>
<Register id=1 handle=0000000071CEEEA0 hash_contaminated=true>daf33d21</Register>
<Register id=2 handle=00000000275010A0 hash_contaminated=true>1568e74d</Register>
<Register id=2 handle=000000002C138D20 hash_contaminated=true>1568e74d</Register>
<Register id=2 handle=000000006F73FC60 hash_contaminated=true>f039a77d</Register>
<Register id=2 handle=000000007003ADE0 hash_contaminated=true>f039a77d</Register>
<Register id=2 handle=0000000070048F60 hash_contaminated=true>7def45c7</Register>
<Register id=2 handle=0000000071CF7820 hash_contaminated=true>7def45c7</Register>
<Register id=3 handle=000000002C222860>d3921c3e</Register>
<Register id=3 handle=0000000070068EE0>d3921c3e</Register>
<Register id=3 handle=0000000071CD49E0>d3921c3e</Register>
<Register id=3 handle=0000000071D6E0E0>d3921c3e</Register>
<Register id=3 handle=00000000ED3A53E0>d3921c3e</Register>
<Register id=3 handle=000000011086AB60>d3921c3e</Register>
<Register id=4 handle=000000002C215A20>00000000</Register>
<Register id=4 handle=000000002C28C2E0 hash_contaminated=true>43021c79</Register>
<Register id=4 handle=000000007005CBA0>00000000</Register>
<Register id=4 handle=0000000071D9E020>00000000</Register>
<Register id=4 handle=000000011085F5E0>00000000</Register>
<Register id=120 handle=0000000009E5E720>00000000</Register>
<Register id=125 handle=0000000009E5D3E0>00000000</Register>
<RenderTarget id=0 handle=000000002C21EBE0>4ce8bfab</RenderTarget>
<RenderTarget id=0 handle=00000000700618A0>4ce8bfab</RenderTarget>
<RenderTarget id=0 handle=0000000071D0EE20>4ce8bfab</RenderTarget>
<RenderTarget id=0 handle=0000000071DA7CE0>4ce8bfab</RenderTarget>
<RenderTarget id=0 handle=00000000ED39DAE0>4ce8bfab</RenderTarget>
<RenderTarget id=0 handle=0000000110865620>4ce8bfab</RenderTarget>
<DepthTarget handle=000000002C222860>d3921c3e</DepthTarget>
<DepthTarget handle=0000000070068EE0>d3921c3e</DepthTarget>
<DepthTarget handle=0000000071CD49E0>d3921c3e</DepthTarget>
<DepthTarget handle=0000000071D6E0E0>d3921c3e</DepthTarget>
<DepthTarget handle=00000000ED3A53E0>d3921c3e</DepthTarget>
<DepthTarget handle=000000011086AB60>d3921c3e</DepthTarget>
</PixelShader>


<RenderTarget orig_hash=4ce8bfab type=Texture2D Width=960 Height=540 MipLevels=1 ArraySize=1 RawFormat=10 Format="R16G16B16A16_FLOAT" SampleDesc.Count=1 SampleDesc.Quality=0 Usage=0 BindFlags=0x28 CPUAccessFlags=0x0 MiscFlags=0x0></RenderTarget>




SHADER 61cfe8e9ff44f072-vs.txt
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.0
//
// using 3Dmigoto v1.2.37 on Thu Jun 30 18:23:30 2016
//
//
// Buffer Definitions:
//
// cbuffer camera
// {
//
// float3 camera_position; // Offset: 0 Size: 12
// float4x4 view; // Offset: 16 Size: 64
// float4x4 projection; // Offset: 80 Size: 64
// float4x4 view_projection; // Offset: 144 Size: 64
// float4x4 inv_view; // Offset: 208 Size: 64
// float4x4 inv_projection; // Offset: 272 Size: 64 [unused]
// float4x4 inv_view_projection; // Offset: 336 Size: 64 [unused]
// float4 camera_near_far; // Offset: 400 Size: 16 [unused]
// float time_in_sec; // Offset: 416 Size: 4 [unused]
// float2 g_inverse_focal_length; // Offset: 420 Size: 8 [unused]
// float g_vertical_fov; // Offset: 428 Size: 4 [unused]
// float4 g_screen_size; // Offset: 432 Size: 16 [unused]
// float g_vpos_texel_offset; // Offset: 448 Size: 4 [unused]
// float4 g_viewport_dimensions; // Offset: 464 Size: 16
// float2 g_viewport_origin; // Offset: 480 Size: 8 [unused]
// float4 g_render_target_dimensions; // Offset: 496 Size: 16 [unused]
// float4 g_camera_temp0; // Offset: 512 Size: 16 [unused]
// float4 g_camera_temp1; // Offset: 528 Size: 16 [unused]
// float4 g_camera_temp2; // Offset: 544 Size: 16 [unused]
// float4 g_clip_rect; // Offset: 560 Size: 16 [unused]
// float3 g_vr_head_rotation; // Offset: 576 Size: 12 [unused]
// int g_num_of_samples; // Offset: 588 Size: 4 [unused]
// float g_supersampling; // Offset: 592 Size: 4 [unused]
// float4 g_mouse_position; // Offset: 608 Size: 16 [unused]
//
// }
//
// cbuffer cb_vfx_shared
// {
//
// float3 vfx_camera_position; // Offset: 0 Size: 12 [unused]
// float g_emitter_instance_tex_width;// Offset: 12 Size: 4
// = 0x43800000
// float g_particle_instance_tex_width;// Offset: 16 Size: 4
// = 0x44800000
// float g_sorted_data_tex_width; // Offset: 20 Size: 4 [unused]
// = 0x44800000
// float g_num_alive_particles; // Offset: 24 Size: 4 [unused]
// = 0x00000000
//
// }
//
// cbuffer cb_vfx
// {
//
// int4 g_draw_flags; // Offset: 0 Size: 16
// float4 g_viewport_offset_scale; // Offset: 16 Size: 16 [unused]
//
// }
//
// Resource bind info for g_emitter_constant_buffer_shared
// {
//
// struct EMITTER_CONSTANTS_VFX_SHARED
// {
//
// float2 particle_loop_params; // Offset: 0
// float m_mem_padding[2]; // Offset: 8
//
// } $Element; // Offset: 0 Size: 16
//
// }
//
// Resource bind info for g_sorted_data_buffer
// {
//
// struct SORTDATA
// {
//
// float dist; // Offset: 0
// float pid; // Offset: 4
//
// } $Element; // Offset: 0 Size: 8
//
// }
//
// Resource bind info for g_constant_buffer_vs
// {
//
// struct EMITTER_CONSTANTS_VS
// {
//
// uint m_behaviour_mask; // Offset: 0
// uint m_diffuse_id; // Offset: 4
// uint m_normal_id; // Offset: 8
// uint m_draw_flags; // Offset: 12
// float4 m_vs_culling_distances; // Offset: 16
// float2 m_vs_scroll_uvs_scroll_rate_xy;// Offset: 32
// float m_vs_rendersize_limiter_pixelsize_limit;// Offset: 40
// float2 m_vs_atlas_texture_scale;// Offset: 44
// float2 m_vs_atlas_texture_offset;// Offset: 52
// uint2 m_vs_cell_texture_number_of_cells_xy;// Offset: 60
// uint m_vs_cell_texture_cell; // Offset: 68
// uint m_vs_cell_texture_randomize_cell;// Offset: 72
// uint m_vs_animated_texture_cell_blend;// Offset: 76
// uint m_vs_animated_texture_loop;// Offset: 80
// uint m_vs_animated_texture_row_restricted;// Offset: 84
// uint m_vs_animated_texture_randomize_row;// Offset: 88
// uint m_vs_animated_texture_row_restriction;// Offset: 92
// float m_vs_animated_texture_no_loops_start;// Offset: 96
// float m_vs_animated_texture_no_loops_end;// Offset: 100
// uint m_vs_translation_orientation_mode;// Offset: 104
// float m_mem_padding; // Offset: 108
//
// } $Element; // Offset: 0 Size: 112
//
// }
//
// Resource bind info for g_constant_buffer_gs
// {
//
// struct EMITTER_CONSTANTS_GS
// {
//
// uint m_behaviour_mask; // Offset: 0
// uint m_diffuse_id; // Offset: 4
// uint m_normal_id; // Offset: 8
// uint m_draw_flags; // Offset: 12
// float2 m_vs_translation_pivot_xy;// Offset: 16
// uint m_vs_translation_orientation_mode;// Offset: 24
// float m_vs_translation_depth_bias;// Offset: 28
//
// } $Element; // Offset: 0 Size: 32
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_sam_emitter_constants sampler NA NA 0 1
// g_emitter_constant_buffer_shared texture struct r/o 0 1
// g_emitter_instances texture float4 2darray 1 1
// g_particle_instances texture float4 2darray 2 1
// g_sorted_data_buffer texture struct r/o 3 1
// g_tex_emitter_constants texture float4 2darray 4 1
// g_draw_indirect_buffer texture byte r/o 5 1
// g_constant_buffer_vs texture struct r/o 6 1
// g_constant_buffer_gs texture struct r/o 7 1
// camera cbuffer NA NA 0 1
// cb_vfx_shared cbuffer NA NA 1 1
// cb_vfx cbuffer NA NA 2 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyz 0 NONE float xyz
// SV_InstanceID 0 x 1 INSTID uint x
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// COLOR 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xyzw 2 NONE uint xyzw
// TEXCOORD 1 xyzw 3 NONE float xyzw
// TEXCOORD 2 xyzw 4 NONE float xyzw
// TEXCOORD 3 xyz 5 NONE float xyz
// TEXCOORD 4 xyzw 6 NONE float xyzw
// TEXCOORD 5 xyzw 7 NONE float xyzw
// TEXCOORD 6 xyzw 8 NONE float xyzw
// TEXCOORD 7 xyzw 9 NONE float xyzw
// TEXCOORD 8 xyz 10 NONE float xyz
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[30], immediateIndexed
dcl_constantbuffer cb1[2], immediateIndexed
dcl_constantbuffer cb2[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_structured t0, 16
dcl_resource_texture2darray (float,float,float,float) t1
dcl_resource_texture2darray (float,float,float,float) t2
dcl_resource_structured t3, 8
dcl_resource_texture2darray (float,float,float,float) t4
dcl_resource_raw t5
dcl_resource_structured t6, 112
dcl_resource_structured t7, 32
dcl_input v0.xyz
dcl_input_sgv v1.x, instance_id
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.xyz
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_output o8.xyzw
dcl_output o9.xyzw
dcl_output o10.xyz
dcl_temps 22
and r0.xyz, cb2[0].xxxx, l(0x08000000, 0x20000000, 0x38000000, 0)
ld_raw_indexable(raw_buffer)(mixed,mixed,mixed,mixed) r1.xyz, l(108), t5.xyzx
movc r0.y, r0.y, r1.x, r1.z
movc r0.x, r0.x, r1.y, r0.y
movc r0.x, r0.z, r0.x, l(0)
iadd r0.x, r0.x, -v1.x
ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(4), t3.xxxx
ftou r0.x, r0.x
utof r0.x, r0.x
mul r0.y, r0.x, cb1[1].x
ge r0.y, r0.y, -r0.y
movc r0.y, r0.y, cb1[1].x, -cb1[1].x
div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
mul r0.z, r0.z, r0.x
frc r0.z, r0.z
mul r0.y, r0.z, r0.y
div r0.x, r0.x, cb1[1].x
ftou r1.xy, r0.yxyy
mov r1.zw, l(0,0,1,0)
ld_indexable(texture2darray)(float,float,float,float) r0.xyz, r1.xyww, t2.xywz
ld_indexable(texture2darray)(float,float,float,float) r2.xyzw, r1.xyzw, t2.xyzw
ftoi r0.x, r0.x
utof r0.w, r0.x
mul r3.x, r0.w, cb1[0].w
ge r3.x, r3.x, -r3.x
movc r3.x, r3.x, cb1[0].w, -cb1[0].w
div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x
mul r3.y, r0.w, r3.y
frc r3.y, r3.y
mul r3.x, r3.y, r3.x
div r0.w, r0.w, cb1[0].w
ftou r3.x, r3.x
ftou r3.y, r0.w
mov r3.zw, l(0,0,2,0)
ld_indexable(texture2darray)(float,float,float,float) r4.xyzw, r3.xyzw, t1.xyzw
mov r3.z, l(3)
ld_indexable(texture2darray)(float,float,float,float) r5.xyzw, r3.xyzw, t1.xyzw
ftoi r6.x, r5.x
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r7.xyzw, r6.x, l(12), t6.xyzw
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r8.w, r6.x, l(28), t6.xxxx
and r0.w, r7.x, cb2[0].x
ine r0.x, r0.x, l(-1)
and r3.z, r0.w, l(0x07ffffff)
ine r3.z, r3.z, l(0)
and r0.x, r0.x, r3.z
lt r3.z, l(0.010000), r4.w
and r0.x, r0.x, r3.z
add r9.xyz, r2.yzxy, -cb0[0].yzxy
dp3 r3.z, r9.xyzx, r9.xyzx
sqrt r10.z, r3.z
mov r8.xyz, r7.yzwy
mul r11.xyzw, r5.yyyy, r8.xyzw
ge r7.yzw, r10.zzzz, r11.xxyz
ge r12.xyz, r10.zzzz, r11.yzwy
and r7.yzw, r7.yyzw, l(0, 0x3f800000, 0x3f800000, 0x3f800000)
movc r7.yzw, r12.xxyz, l(0,0,0,0), r7.yyzw
mad r5.x, -r8.x, r5.y, r10.z
mad r8.xy, r8.ywyy, r5.yyyy, -r11.xzxx
add r8.xy, r8.xyxx, l(0.000001, 0.000001, 0.000000, 0.000000)
div_sat r11.x, r5.x, r8.x
mad r5.x, r8.w, r5.y, -r10.z
div_sat r11.z, r5.x, r8.y
mov r11.y, l(1.000000)
dp3 r5.x, r11.xyzx, r7.yzwy
mov r8.xyz, r2.xyzx
mov r8.w, l(1.000000)
dp4 r2.x, r8.xyzw, cb0[9].xyzw
dp4 r2.y, r8.xyzw, cb0[10].xyzw
dp4 r2.z, r8.xyzw, cb0[11].xyzw
dp4 r6.w, r8.xyzw, cb0[12].xyzw
add r6.w, r6.w, l(5.000000)
lt r7.y, r2.x, -r6.w
lt r2.x, r6.w, r2.x
or r2.x, r2.x, r7.y
lt r7.y, r2.y, -r6.w
or r2.x, r2.x, r7.y
lt r2.y, r6.w, r2.y
or r2.x, r2.y, r2.x
lt r2.y, r2.z, l(-5.000000)
or r2.x, r2.y, r2.x
lt r2.y, r6.w, r2.z
or r2.x, r2.y, r2.x
movc r2.x, r2.x, l(0), r5.x
and r0.x, r0.x, r2.x
lt r2.x, l(0.000000), r0.x
if_nz r2.x
mov r1.z, l(2)
ld_indexable(texture2darray)(float,float,float,float) r11.xyzw, r1.xyzw, t2.xyzw
mov r1.z, l(3)
ld_indexable(texture2darray)(float,float,float,float) r1.xyzw, r1.xyzw, t2.xyzw
ld_indexable(texture2darray)(float,float,float,float) r2.x, r3.xyww, t1.wxyz
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r2.y, r6.x, l(0), t6.xxxx
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r12.xyzw, r6.x, l(40), t6.xyzw
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r13.xyzw, r6.x, l(56), t6.zywx
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r14.xyzw, r6.x, l(72), t6.xyzw
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.xy, r6.x, l(0), t0.xyxx
ne r2.z, r3.y, l(0.000000)
mad r3.xy, r3.xyxx, r11.wwww, r2.wwww
add r3.y, -r3.x, r3.y
eq r3.w, r5.w, l(0.000000)
lt r5.x, r2.x, r3.x
add r6.w, r2.x, -r3.x
div r6.w, r6.w, r3.y
ge r7.y, r6.w, -r6.w
frc r6.w, |r6.w|
movc r6.w, r7.y, r6.w, -r6.w
mad r6.w, r6.w, r3.y, r3.x
movc r5.x, r5.x, r2.x, r6.w
add r3.x, -r3.x, r5.w
div r3.x, r3.x, r3.y
round_ni r3.x, r3.x
mad r3.x, -r3.x, r3.y, r2.x
movc r3.x, r3.w, r5.x, r3.x
movc r2.x, r2.z, r3.x, r2.x
add r2.x, -r2.w, r2.x
add r2.z, r11.w, l(0.000001)
div r15.x, r2.x, r2.z
mad r15.y, r0.y, l(0.0714285746), l(0.321428567)
utof r15.z, r6.x
sample_l_indexable(texture2darray)(float,float,float,float) r2.xzw, r15.xyzx, t4.xwyz, s0, l(0.000000)
mad r16.x, r5.z, l(0.0714285746), l(0.178571433)
mov r16.y, r0.z
mov r16.z, r15.z
sample_l_indexable(texture2darray)(float,float,float,float) r3.xyw, r16.yxzy, t4.xywz, s0, l(0.000000)
mul r2.xzw, r2.xxzw, r3.xxyw
mul r17.xyw, r5.yyyy, r2.xzxw
and r18.xyzw, r2.yyyy, l(512, 4096, 1, 4)
if_nz r18.x
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r0.z, r6.x, l(104), t6.xxxx
and r2.x, r7.x, l(0x80000000)
mad r15.w, r0.y, l(0.0714285746), l(0.892857134)
sample_l_indexable(texture2darray)(float,float,float,float) r2.z, r15.xwzx, t4.yzxw, s0, l(0.000000)
dp3 r2.w, r11.xyzx, r11.xyzx
sqrt r3.x, r2.w
mul r2.z, r2.z, r3.x
div r2.z, r2.z, r5.y
add r3.x, r2.z, l(1.000000)
movc r7.x, r2.x, r2.z, r3.x
if_z r0.z
rsq r2.x, r2.w
mul r3.xyw, r2.xxxx, r11.xyxz
mul r5.xyw, r3.ywyx, l(0.000000, 0.000000, 0.000000, 1.000000)
mad r5.xyw, r3.wxwy, l(1.000000, 0.000000, 0.000000, 0.000000), -r5.xyxw
dp2 r2.x, r5.xwxx, r5.xwxx
rsq r2.x, r2.x
mul r5.xyw, r2.xxxx, r5.xyxw
else
ieq r2.x, r0.z, l(1)
if_nz r2.x
rsq r2.x, r2.w
mul r19.xyz, r2.xxxx, r11.yzxy
mul r20.xyz, r19.xyzx, l(0.000000, 1.000000, 0.000000, 0.000000)
mad r19.xyz, r19.zxyz, l(1.000000, 0.000000, 0.000000, 0.000000), -r20.xyzx
mul r20.xyz, r19.xyzx, l(1.000000, 0.000000, 0.000000, 0.000000)
mad r19.xyz, r19.zxyz, l(0.000000, 0.000000, 1.000000, 0.000000), -r20.xyzx
dp2 r2.x, r19.xzxx, r19.xzxx
rsq r2.x, r2.x
mul r3.xyw, r2.xxxx, r19.xyxz
mov r5.xyw, l(0,1.000000,0,0)
else
ieq r2.x, r0.z, l(2)
if_nz r2.x
rsq r2.x, r2.w
mul r3.xyw, r2.xxxx, r11.xyxz
rsq r2.x, r3.z
mul r19.xyz, r2.xxxx, r9.yzxy
mul r20.xyz, r3.ywxy, -r19.xyzx
mad r19.xyz, -r19.zxyz, r3.wxyw, -r20.xyzx
dp3 r2.x, r19.xyzx, r19.xyzx
rsq r2.x, r2.x
mul r5.xyw, r2.xxxx, r19.xyxz
else
ieq r2.x, r0.z, l(3)
if_nz r2.x
rsq r2.x, r2.w
mul r19.xyz, r2.xxxx, r11.zxyz
mul r20.xyz, r19.xyzx, l(1.000000, 0.000000, 0.000000, 0.000000)
mad r19.xyz, r19.zxyz, l(0.000000, 0.000000, 1.000000, 0.000000), -r20.xyzx
dp2 r2.x, r19.xzxx, r19.xzxx
rsq r2.x, r2.x
mul r5.xyw, r2.xxxx, r19.xyxz
mov r3.xyw, l(0,1.000000,0,0)
else
rsq r2.x, r2.w
mul r2.xzw, r2.xxxx, r11.xxyz
mul r11.xyz, r2.wxzw, l(1.000000, 0.000000, 0.000000, 0.000000)
mad r11.xyz, r2.zwxz, l(0.000000, 0.000000, 1.000000, 0.000000), -r11.xyzx
dp2 r6.w, r11.xzxx, r11.xzxx
rsq r6.w, r6.w
mul r11.xyz, r6.wwww, r11.xyzx
mul r19.xyzw, r11.zzxx, l(0.000000, 1.000000, 0.000000, 1.000000)
mov r20.y, l(0)
mov r20.zw, r19.xxxw
mov r19.w, l(0)
add r19.xyz, -r20.yzwy, r19.yzwy
dp2 r6.w, r19.xzxx, r19.xzxx
rsq r6.w, r6.w
mul r7.yzw, r6.wwww, r19.xxyz
ieq r19.xy, r0.zzzz, l(4, 5, 0, 0)
rsq r0.z, r3.z
mul r9.xyz, r0.zzzz, r9.xyzx
mul r20.xyz, r2.zwxz, -r9.yzxy
mad r20.xyz, -r9.xyzx, r2.wxzw, -r20.xyzx
dp3 r0.z, cb0[1].xyzx, cb0[1].xyzx
rsq r0.z, r0.z
mul r21.xyz, r0.zzzz, cb0[1].xyzx
dp3 r0.z, r20.xyzx, r20.xyzx
rsq r3.z, r0.z
sqrt r0.z, r0.z
mul r0.z, r0.z, l(100.000000)
min r0.z, r0.z, l(1.000000)
mad r20.xyz, r20.xyzx, r3.zzzz, -r21.xyzx
mad r20.xyz, r0.zzzz, r20.xyzx, r21.xyzx
mul r21.xyz, -r9.xyzx, r20.zxyz
mad r9.xyz, r20.yzxy, -r9.yzxy, -r21.xyzx
dp3 r0.z, r9.xyzx, r9.xyzx
rsq r0.z, r0.z
mul r9.yzw, r0.zzzz, r9.xxyz
dp3 r0.z, r2.xzwx, r9.yzwy
mul r0.z, r0.z, r7.x
max r0.z, r0.z, l(1.000000)
movc r9.x, r19.y, r0.z, r7.x
movc r5.xyw, r19.xxxx, r11.xyxz, r20.xyxz
movc r7.xyzw, r19.xxxx, r7.xyzw, r9.xyzw
mov r3.xyw, r7.yzyw
endif
endif
endif
endif
else
mov r5.xyw, l(0,0,0,0)
mov r3.xyw, l(0,0,0,0)
mov r7.x, l(1.000000)
endif
mov r7.y, l(1.000000)
mul r10.xy, r7.yxyy, r17.xyxx
mov r10.w, l(1.000000)
dp4 r7.y, r10.xyzw, cb0[5].xyzw
dp4 r7.z, r10.xyzw, cb0[6].xyzw
dp4 r0.z, r10.xyzw, cb0[8].xyzw
div r2.xz, r7.yyzy, r0.zzzz
mul r2.xz, r2.xxzx, cb0[29].xxyx
mul r2.xz, r2.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000)
div r2.xz, r12.xxxx, r2.xxzx
max r2.xz, r2.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000)
mul r2.xz, r2.xxzx, r17.xxyx
movc r17.yz, r18.yyyy, r2.xxzx, r17.xxyx
if_nz r18.z
mad r15.y, r0.y, l(0.0714285746), l(0.464285702)
sample_l_indexable(texture2darray)(float,float,float,float) r9.xyz, r15.xyzx, t4.xyzw, s0, l(0.000000)
mov r9.w, l(1.000000)
mul r4.xyzw, r4.xyzw, r9.xyzw
else
mov r4.xyzw, l(0,0,0,0)
endif
imul null, r9.y, r13.x, r13.y
utof r2.xz, r13.yyxy
div r7.yz, l(1.000000, 1.000000, 1.000000, 1.000000), r2.xxzx
mul r10.zw, r7.yyyz, r12.yyyz
if_nz r18.w
ld_structured_indexable(structured_buffer, stride=112)(mixed,mixed,mixed,mixed) r11.xyzw, r6.x, l(88), t6.xyzw
mul r0.z, r11.z, r15.x
mad r2.w, r15.x, r11.w, -r0.z
mad r0.z, r15.x, r2.w, r0.z
movc r2.w, r14.x, r0.y, l(0)
mov r13.x, r11.y
mov r9.x, l(0)
movc r9.xz, r14.wwww, r13.xxyx, r9.xxyx
ge r3.z, r0.y, -r0.y
frc r6.w, |r0.y|
movc r3.z, r3.z, r6.w, -r6.w
mul r2.z, r2.z, r3.z
ftou r2.z, r2.z
movc r2.z, r11.x, r2.z, r9.x
imul null, r2.z, r13.y, r2.z
add r0.z, r0.z, r2.w
ge r2.w, r0.z, -r0.z
frc r0.z, |r0.z|
movc r0.z, r2.w, r0.z, -r0.z
utof r2.w, r9.z
mul r3.z, r0.z, r2.w
round_z r3.z, r3.z
mad r11.x, r0.z, r2.w, -r3.z
utof r0.z, r2.z
add r2.z, r3.z, r0.z
ftou r2.z, r2.z
utof r6.w, r2.z
div r6.w, r6.w, r2.x
ge r7.w, r6.w, -r6.w
frc r6.w, r6.w
movc r6.w, r7.w, r6.w, -r6.w
mul r18.y, r2.x, r6.w
udiv r2.z, null, r2.z, r13.y
utof r18.z, r2.z
mul r18.yz, r7.yyzy, r18.yyzy
add r2.z, r3.z, l(1.000000)
div r3.z, r2.z, r2.w
ge r6.w, r3.z, -r3.z
frc r3.z, |r3.z|
movc r3.z, r6.w, r3.z, -r3.z
mul r2.w, r2.w, r3.z
iadd r3.z, r9.z, l(-1)
utof r3.z, r3.z
max r2.z, r2.z, l(0.000000)
min r2.z, r3.z, r2.z
movc r2.z, r14.z, r2.w, r2.z
add r0.z, r0.z, r2.z
div r0.z, r0.z, r2.x
ge r2.z, r0.z, -r0.z
frc r2.w, |r0.z|
movc r2.z, r2.z, r2.w, -r2.w
mul r19.y, r2.x, r2.z
round_ni r19.z, r0.z
mul r11.yz, r7.yyzy, r19.yyzy
mov r18.x, l(0)
movc r9.xzw, r14.yyyy, r11.yyzx, r18.yyzx
mov r13.z, r12.w
mad r10.xy, r18.yzyy, r12.yzyy, r13.zwzz
mad r2.zw, r9.xxxz, r12.yyyz, r13.zzzw
else
and r0.z, r2.y, l(2)
utof r3.z, r9.y
utof r6.w, r13.z
mad r6.w, r0.y, r3.z, r6.w
div r6.w, r6.w, r3.z
ge r7.w, r6.w, -r6.w
frc r6.w, |r6.w|
movc r6.w, r7.w, r6.w, -r6.w
mul r3.z, r3.z, r6.w
ftou r3.z, r3.z
movc r3.z, r14.x, r3.z, r13.z
utof r6.w, r3.z
div r6.w, r6.w, r2.x
ge r7.w, r6.w, -r6.w
frc r6.w, r6.w
movc r6.w, r7.w, r6.w, -r6.w
mul r11.x, r2.x, r6.w
udiv r2.x, null, r3.z, r13.y
utof r11.y, r2.x
mul r7.yz, r7.yyzy, r11.xxyx
mov r13.y, r12.w
mad r10.xy, r7.yzyy, r12.yzyy, r13.ywyy
movc r10.xyzw, r0.zzzz, r10.xyzw, l(0,0,1.000000,1.000000)
mov r2.zw, l(0,0,0,0)
mov r9.w, l(0)
endif
and r0.z, r2.y, l(8)
if_nz r0.z
mad r15.y, r0.y, l(0.0714285746), l(0.750000)
sample_l_indexable(texture2darray)(float,float,float,float) r0.z, r15.xyzx, t4.yzxw, s0, l(0.000000)
mad r16.w, r5.z, l(0.0714285746), l(0.607142866)
sample_l_indexable(texture2darray)(float,float,float,float) r2.x, r16.ywzy, t4.xyzw, s0, l(0.000000)
mul r0.z, r0.z, r2.x
mul r4.w, r0.z, r4.w
endif
mov r17.x, r0.y
mov o6.w, r15.x
else
mov r5.xyw, l(0,0,0,0)
mov r7.x, l(1.000000)
mov r10.xyzw, l(0,0,0,0)
mov r17.xyzw, l(0,0,0,0)
mov r1.xyzw, l(0,0,0,1.000000)
mov r3.xyw, l(0,0,0,0)
mov r2.zw, l(0,0,0,0)
mov r9.w, l(0)
mov r6.x, l(0)
mov r8.xyz, l(0,0,0,0)
mov o6.w, l(0)
mov r4.xyzw, l(0,0,0,0)
endif
mul r4.w, r0.x, r4.w
lt r0.x, l(0.010000), r4.w
if_nz r0.x
add r11.xyzw, r1.zxyx, r1.zxyx
mul r12.xyzw, r1.wwwx, r11.xyzw
mul r0.x, r1.z, r11.x
mad r0.y, r1.y, r11.z, r0.x
add r13.x, -r0.y, l(1.000000)
mad r0.x, r1.x, r11.w, r0.x
add r0.y, -r0.x, l(1.000000)
mad r7.yzw, r1.xxyx, r11.xxxz, -r12.zzyx
mad r11.xyzw, r1.xyxy, r11.zxxz, r12.xyzw
and r6.yz, r0.wwww, l(0, 0x38000000, 0x10000000, 0)
if_nz r6.z
mad r2.xy, v0.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r3.z, r6.x, l(0), t7.xxxx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r12.xyzw, r6.x, l(16), t7.xyzw
and r5.z, r3.z, l(256)
if_nz r5.z
utof r5.z, r12.z
add r6.zw, -r12.xxxy, v0.xxxy
mul r6.zw, r17.yyyz, r6.zzzw
mul r14.xyz, -r1.zxyz, r6.wwww
mad r9.y, r6.z, r1.w, r14.x
dp2 r6.w, r6.zwzz, r1.zwzz
mad r12.z, r6.z, -r1.y, -r14.y
mad r6.z, r6.z, r1.x, -r14.z
mul r13.w, r1.x, r6.z
mad r13.w, r1.w, r9.y, r13.w
mul r14.x, r1.x, r12.z
mad r12.z, r1.y, r12.z, r13.w
mad r15.x, -r1.z, r6.w, r12.z
mad r6.w, r1.w, r6.w, -r14.x
mad r6.z, r1.y, r6.z, r6.w
mad r15.z, r1.z, r9.y, r6.z
mov r8.w, l(1.000000)
dp4 r14.x, r8.xyzw, cb0[1].xyzw
dp4 r14.y, r8.xyzw, cb0[2].xyzw
dp4 r16.z, r8.xyzw, cb0[3].xyzw
dp4 r16.w, r8.xyzw, cb0[4].xyzw
add r16.xy, r15.xzxx, r14.xyxx
dp4 r14.x, r16.xyzw, cb0[13].xyzw
dp4 r14.y, r16.xyzw, cb0[14].xyzw
dp4 r14.z, r16.xyzw, cb0[15].xyzw
add r18.y, r8.y, r15.z
mov r18.xzw, r8.xxzw
dp4 r6.z, r18.xyzw, cb0[1].xyzw
dp4 r19.y, r18.xyzw, cb0[2].xyzw
dp4 r19.z, r18.xyzw, cb0[3].xyzw
dp4 r19.w, r18.xyzw, cb0[4].xyzw
add r19.x, r15.x, r6.z
dp4 r18.x, r19.xyzw, cb0[13].xyzw
dp4 r18.y, r19.xyzw, cb0[14].xyzw
dp4 r18.z, r19.xyzw, cb0[15].xyzw
eq r20.xyz, r5.zzzz, l(0.000000, 1.000000, 2.000000, 0.000000)
add r8.xz, r8.xxzx, r15.xxzx
dp4 r15.x, r8.xyzw, cb0[1].xyzw
dp4 r15.y, r8.xyzw, cb0[2].xyzw
dp4 r15.z, r8.xyzw, cb0[3].xyzw
dp4 r15.w, r8.xyzw, cb0[4].xyzw
and r15.xyzw, r15.xyzw, r20.zzzz
and r21.xyz, r8.xyzx, r20.zzzz
movc r15.xyzw, r20.yyyy, r19.xyzw, r15.xyzw
movc r18.xyz, r20.yyyy, r18.xyzx, r21.xyzx
movc r15.xyzw, r20.xxxx, r16.xyzw, r15.xyzw
movc o6.xyz, r20.xxxx, r14.xyzx, r18.xyzx
dp4 o0.x, r15.xyzw, cb0[5].xyzw
dp4 o0.y, r15.xyzw, cb0[6].xyzw
dp4 o0.z, r15.xyzw, cb0[7].xyzw
dp4 o0.w, r15.xyzw, cb0[8].xyzw
else
and r5.z, r3.z, l(512)
if_nz r5.z
add r6.zw, -r12.xxxy, v0.xxxy
mul r6.zw, r17.yyyz, r6.zzzw
mul r14.xyz, -r1.zxyz, r6.wwww
mad r5.z, r6.z, r1.w, r14.x
dp2 r6.w, r6.zwzz, r1.zwzz
mad r8.w, r6.z, -r1.y, -r14.y
mad r6.z, r6.z, r1.x, -r14.z
mul r9.y, r1.x, r6.z
mad r9.y, r1.w, r5.z, r9.y
mul r12.z, r1.x, r8.w
mad r8.w, r1.y, r8.w, r9.y
mad r8.w, -r1.z, r6.w, r8.w
mad r6.w, r1.w, r6.w, -r12.z
mad r6.z, r1.y, r6.z, r6.w
mad r5.z, r1.z, r5.z, r6.z
mul r5.z, r7.x, r5.z
mul r3.xyw, r3.xyxw, r5.zzzz
mad r3.xyw, r5.xyxw, r8.wwww, r3.xyxw
add r5.xyz, r3.xywx, r8.xyzx
mov r5.w, l(1.000000)
dp4 o0.x, r5.xyzw, cb0[9].xyzw
dp4 o0.y, r5.xyzw, cb0[10].xyzw
dp4 r3.x, r5.xyzw, cb0[12].xyzw
dp3 r3.y, cb0[3].xyzx, cb0[3].xyzx
rsq r3.y, r3.y
mul r14.xyz, r3.yyyy, cb0[3].xyzx
mad r5.xyz, -r14.xyzx, r12.wwww, r5.xyzx
mov r5.w, l(1.000000)
dp4 r3.y, r5.xyzw, cb0[11].xyzw
dp4 r3.w, r5.xyzw, cb0[12].xyzw
mul r3.y, r3.x, r3.y
div o0.z, r3.y, r3.w
mov o0.w, r3.x
mov o6.xyz, r5.xyzx
else
and r3.x, r3.z, l(1024)
if_nz r3.x
mul r3.x, cb0[29].z, cb0[29].y
mul r3.x, r3.x, r17.y
add r5.xy, -r12.xyxx, v0.xyxx
mul r14.xyz, -r1.zxyz, r5.yyyy
mad r3.w, r5.x, r1.w, r14.x
dp2 r5.y, r5.xyxx, r1.zwzz
mad r5.z, r5.x, -r1.y, -r14.y
mad r5.x, r5.x, r1.x, -r14.z
mul r5.w, r1.x, r5.x
mad r5.w, r1.w, r3.w, r5.w
mul r6.z, r1.x, r5.z
mad r5.z, r1.y, r5.z, r5.w
mad r14.x, -r1.z, r5.y, r5.z
mad r5.y, r1.w, r5.y, -r6.z
mad r5.x, r1.y, r5.x, r5.y
mad r14.y, r1.z, r3.w, r5.x
mov r3.y, r17.z
mad r5.xy, r14.xyxx, r3.xyxx, r8.xyxx
mov r5.z, l(1.000000)
else
and r3.x, r3.z, l(2048)
mad r3.yz, r8.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
frc r3.yz, r3.yyzy
mad r3.yz, r3.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
mul r3.w, cb0[29].z, cb0[29].y
mul r14.x, r3.w, r17.y
add r6.zw, -r12.xxxy, v0.xxxy
mul r12.xyz, -r1.zxyz, r6.wwww
mad r3.w, r6.z, r1.w, r12.x
dp2 r5.w, r6.zwzz, r1.zwzz
mad r6.w, r6.z, -r1.y, -r12.y
mad r6.z, r6.z, r1.x, -r12.z
mul r7.x, r1.x, r6.z
mad r7.x, r1.w, r3.w, r7.x
mul r8.w, r1.x, r6.w
mad r6.w, r1.y, r6.w, r7.x
mad r12.x, -r1.z, r5.w, r6.w
mad r5.w, r1.w, r5.w, -r8.w
mad r5.w, r1.y, r6.z, r5.w
mad r12.y, r1.z, r3.w, r5.w
mov r14.y, r17.z
mad r12.xy, r12.xyxx, r14.xyxx, r3.yzyy
mov r12.z, l(1.000000)
movc r5.xyz, r3.xxxx, r12.xyzx, l(0,0,0,0)
endif
mov o0.xyw, r5.xyxz
mov o0.z, l(0)
mov o6.xyz, l(0,0,0,0)
endif
endif
mad o3.xy, r2.xyxx, r10.zwzz, r10.xyxx
mad r9.xz, r2.xxyx, r10.zzwz, r2.zzwz
mov o3.zw, l(0,0,0,0)
mov o10.xy, v0.xyxx
mov o10.z, l(0)
else
and r0.w, r0.w, l(0x28000000)
if_nz r0.w
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r0.w, r6.x, l(0), t7.xxxx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r2.xy, r6.x, l(16), t7.xyxx
and r0.w, r0.w, l(256)
mov r2.z, l(0)
add r2.xyzw, -r2.yzzx, v0.yzzx
mul r2.xyzw, r17.zwwy, r2.xyzw
mul r3.xyz, -r1.zxyz, r2.xxxx
mad r3.x, r2.w, r1.w, r3.x
mad r2.y, -r2.y, -r1.y, r3.x
dp2 r3.x, r2.wxww, r1.zwzz
mad r3.x, r2.z, -r1.x, r3.x
mad r2.x, r2.w, -r1.y, -r3.y
mad r2.x, r2.z, r1.w, r2.x
mad r2.w, r2.w, r1.x, -r3.z
mad r2.z, -r2.z, -r1.z, r2.w
mul r2.w, r1.x, r2.z
mad r2.w, r1.w, r2.y, r2.w
mul r3.yz, r1.xxwx, r2.xxxx
mad r2.x, r1.y, r2.x, r2.w
mad r5.x, -r1.z, r3.x, r2.x
mad r1.w, r1.w, r3.x, -r3.y
mad r1.w, r1.y, r2.z, r1.w
mad r5.y, r1.z, r2.y, r1.w
mad r1.x, r1.x, r3.x, r3.z
mad r1.x, -r1.y, r2.y, r1.x
mad r5.z, r1.z, r2.z, r1.x
add r1.xyz, r5.xyzx, r8.xyzx
mov r1.w, l(1.000000)
dp4 r2.x, r1.xyzw, cb0[1].xyzw
dp4 r2.y, r1.xyzw, cb0[2].xyzw
dp4 r2.z, r1.xyzw, cb0[3].xyzw
dp4 r2.w, r1.xyzw, cb0[4].xyzw
dp4 r1.x, r2.xyzw, cb0[5].xyzw
dp4 r1.y, r2.xyzw, cb0[6].xyzw
dp4 r1.z, r2.xyzw, cb0[7].xyzw
dp4 r1.w, r2.xyzw, cb0[8].xyzw
movc o0.xyzw, r0.wwww, r1.xyzw, l(0,0,0,0)
mov o3.xyzw, r10.xyzw
mov o10.xyz, v0.xyzx
else
mov o0.xyzw, l(-10.000000,-10.000000,-10.000000,0)
mov o3.xyzw, l(0,0,0,0)
mov o10.xyz, l(0,0,0,0)
endif
mov o6.xyz, r8.xyzx
mov r9.xz, l(0,0,0,0)
endif
mov o1.xyzw, r4.xyzw
mov o4.xyzw, r17.yzwx
mov r13.y, r11.x
mov r13.z, r7.y
mov r0.x, r7.w
mov r0.z, r11.y
mad r7.yw, r11.zzzw, l(0.000000, 1.000000, 0.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000)
mov o5.xyz, r9.xzwx
else
mov o0.xyzw, l(-10.000000,-10.000000,-10.000000,0)
mov o1.xyzw, l(0,0,0,0)
mov r6.xy, l(0,0,0,0)
mov o3.xyzw, l(0,0,0,0)
mov o4.xyzw, l(0,0,0,0)
mov o6.xyzw, l(0,0,0,0)
mov r13.xyz, l(0,0,0,0)
mov r0.xyz, l(0,0,0,0)
mov r7.yzw, l(0,0,0,0)
mov o5.xyz, l(0,0,0,0)
mov o10.xyz, l(0,0,0,0)
endif
mov o2.xy, r6.xyxx
mov o2.zw, l(0,0,0,0)
mov o7.xyz, r13.xyzx
mov o7.w, l(0)
mov o8.xyz, r0.xyzx
mov o8.w, l(0)
mov o9.xyz, r7.yzwy
mov o9.w, l(0)
ret
// Approximately 616 instruction slots used

Windows 7 64bit, i7, GTX680, 16GB, Benq 120hz

Posted 07/04/2016 03:44 PM   
Please use the [ code ] [ /code ] tags for code. No one likes to sit and scroll endless pages of text like that;) It makes the code much more readable as well...
Please use the [ code ] [ /code ] tags for code.
No one likes to sit and scroll endless pages of text like that;)
It makes the code much more readable as well...

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

Posted 07/04/2016 04:37 PM   
@kankgeforce99 Try using StereoMode=1, as 2 is for create mono surface. [TextureOverrideAAAAAA] hash = 4ce8bfab StereoMode=1 [code]; 0 = NVAPI_STEREO_SURFACECREATEMODE_AUTO - use driver registry profile settings. ; 1 = NVAPI_STEREO_SURFACECREATEMODE_FORCESTEREO - create stereo surface. ; 2 = NVAPI_STEREO_SURFACECREATEMODE_FORCEMONO - create mono surface.[/code]
@kankgeforce99

Try using StereoMode=1, as 2 is for create mono surface.

[TextureOverrideAAAAAA]
hash = 4ce8bfab
StereoMode=1

; 0 = NVAPI_STEREO_SURFACECREATEMODE_AUTO - use driver registry profile settings.
; 1 = NVAPI_STEREO_SURFACECREATEMODE_FORCESTEREO - create stereo surface.
; 2 = NVAPI_STEREO_SURFACECREATEMODE_FORCEMONO - create mono surface.

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/04/2016 05:00 PM   
thanks helifax )) DHR, yes i try and no effect, only stereomode=2 put it in screendepth different tests i was using by playing with the bits of stereoflagDX10 0x1c22..24 from 00,.. to FE Witcher3 .... looking for the dif, Setting ID_0x702442fc = 0x1c220e24 InternalSettingFlag=V0 [code] 0x1c220e24 0x1C220024 Metro: Last Light sombras particles ok 0x1C21FE24 Metro: Last Light sombras ok particles 0x1C22AE24 Passion Leads Army Benchmark sombras particles ok FE 1111 1110 AE 1010 1110 prueba1 11101110 EE sombras particles ok prueba3 10101110 AE sombras particles ok prueba3 00000000 00 sombras particles ok prueba2 10111110 BE sombras ok particles prueba3 11111110 FE sombras ok particles prueba3 11110000 F0 sombras ok particles prueba3 00010000 10 sombras ok particles prueba3 00100000 20 sombras ?F particles ok prueba3 00110000 30 sombras ok particles prueba3 01000000 40 sombras particles prueba3 01010000 50 sombras particles prueba3 01100000 60 sombras particles ok prueba3 01110000 0 sombras particles prueba3 10000000 0 sombras particles prueba3 10010000 0 sombras particles prueba3 10100000 A0 sombras particles ok prueba3 10110000 0 sombras particles prueba3 11000000 0 sombras particles prueba3 11010000 0 sombras particles prueba3 11100000 E0 sombras particles ok prueba3 11110000 F0 sombras ok particles [/code] I test too to disable tesselation in preferences_script of the game, but not result here it is the output with stereoflagdx10 0x1c220e24, the particles are ok but shadows bad [url]https://s3.amazonaws.com/kankgeforce99/STEREO+o0-001594%3D4ce8bfab-vs%3D61cfe8e9ff44f072-ps%3De9617846f5ecf04d.jps[/url] without stereoflag, default profile [url]https://s3.amazonaws.com/kankgeforce99/NOSTEREO+o0-001509%3D4ce8bfab-vs%3D61cfe8e9ff44f072-ps%3De9617846f5ecf04d.jps[/url] original photo without stereoflag, all fixes applied, shadows ok but ... [url]https://s3.amazonaws.com/kankgeforce99/Warhammer03_50.jps[/url] - hull geometry domain shaders go after verter shaders no? if vs output it is bad then?¿ - driver version?? i am using windows 10 and last driver from nvidia, why witcher3 for example need the before?, now thinking i have a similar problem with attila with the reflections in the sea, only in mono, i can not fix them, only disable another test with no result that i did.. [code] 0x00008000 STEREO_COMPUTE_SAME_RESOURCES_AS_GRAPHICS - "stereorize the same resources as for graphics (do not mark all UAVs as stereorizable)" 0x00004000 STEREO_COMPUTE_ENABLE - enables running compute shaders once for each eye. Fixes mono depth buffer issue in Far Cry 4 (SLI users can alternatively resolve this with custom SLI compatibility bits), Witcher 3, and other games [/code]
thanks helifax ))


DHR,

yes i try and no effect, only stereomode=2 put it in screendepth


different tests i was using by playing with the bits of stereoflagDX10 0x1c22..24 from 00,.. to FE Witcher3 .... looking for the dif,



Setting ID_0x702442fc = 0x1c220e24 InternalSettingFlag=V0

0x1c220e24

0x1C220024 Metro: Last Light sombras particles ok
0x1C21FE24 Metro: Last Light sombras ok particles
0x1C22AE24 Passion Leads Army Benchmark sombras particles ok

FE 1111 1110
AE 1010 1110

prueba1 11101110 EE sombras particles ok
prueba3 10101110 AE sombras particles ok
prueba3 00000000 00 sombras particles ok

prueba2 10111110 BE sombras ok particles
prueba3 11111110 FE sombras ok particles
prueba3 11110000 F0 sombras ok particles
prueba3 00010000 10 sombras ok particles
prueba3 00100000 20 sombras ?F particles ok
prueba3 00110000 30 sombras ok particles

prueba3 01000000 40 sombras particles
prueba3 01010000 50 sombras particles
prueba3 01100000 60 sombras particles ok

prueba3 01110000 0 sombras particles
prueba3 10000000 0 sombras particles
prueba3 10010000 0 sombras particles
prueba3 10100000 A0 sombras particles ok

prueba3 10110000 0 sombras particles
prueba3 11000000 0 sombras particles
prueba3 11010000 0 sombras particles
prueba3 11100000 E0 sombras particles ok

prueba3 11110000 F0 sombras ok particles



I test too to disable tesselation in preferences_script of the game, but not result


here it is the output with stereoflagdx10 0x1c220e24, the particles are ok but shadows bad

https://s3.amazonaws.com/kankgeforce99/STEREO+o0-001594%3D4ce8bfab-vs%3D61cfe8e9ff44f072-ps%3De9617846f5ecf04d.jps


without stereoflag, default profile

https://s3.amazonaws.com/kankgeforce99/NOSTEREO+o0-001509%3D4ce8bfab-vs%3D61cfe8e9ff44f072-ps%3De9617846f5ecf04d.jps


original photo without stereoflag, all fixes applied, shadows ok but ...
https://s3.amazonaws.com/kankgeforce99/Warhammer03_50.jps


- hull geometry domain shaders go after verter shaders no? if vs output it is bad then?¿
- driver version?? i am using windows 10 and last driver from nvidia, why witcher3 for example need the before?,
now thinking i have a similar problem with attila with the reflections in the sea, only in mono, i can not fix them, only disable




another test with no result that i did..

0x00008000	STEREO_COMPUTE_SAME_RESOURCES_AS_GRAPHICS - "stereorize the same resources as for graphics (do not mark all UAVs as stereorizable)"

0x00004000 STEREO_COMPUTE_ENABLE - enables running compute shaders once for each eye. Fixes mono depth buffer issue in Far Cry 4 (SLI users can alternatively resolve this with custom SLI compatibility bits), Witcher 3, and other games

Windows 7 64bit, i7, GTX680, 16GB, Benq 120hz

Posted 07/04/2016 05:19 PM   
For testing: If you use this code the particles are in mono and shadows OK, right: [code] [TextureOverrideAAAAAA] hash = 4ce8bfab StereoMode=2[/code] If you add some code to the VS? make all particles goes to a fixed depth? Works? For example: o0.x += stereo.x * 0.6; (o0 been the output) I see that in the VS you have the Inverse Proj Matrix, so if the expirement works you can pass that Matrix to the PS and fix the particles in the PS to the correct depth.
For testing:

If you use this code the particles are in mono and shadows OK, right:
[TextureOverrideAAAAAA]
hash = 4ce8bfab
StereoMode=2


If you add some code to the VS? make all particles goes to a fixed depth? Works?
For example: o0.x += stereo.x * 0.6; (o0 been the output)

I see that in the VS you have the Inverse Proj Matrix, so if the expirement works you can pass that Matrix to the PS and fix the particles in the PS to the correct depth.

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/04/2016 06:15 PM   
this it is the ps, more easy because it have too all the matrices but i am new fixing yet, and i dont know as apply it, all i try it didnt work, and when a see that doing changes in driver all was ok ( thanks to bob ),... i dont know as continue i dont know if mono at screen depth would can be corrected. That it is different to shogun2, or rome2 for example where i had to fix the vs before and after fix the ps to coorrect halos and ... i will try only with separation in vs not stereo.y... but the vs its complicated you see ))) i think i tried it before and after each view/inv projection and with different options and the more usual was not effect.. or broken all totally but no in stereo never i dont understand well as fix a simple vpos.xy that i have seen in many fixes grrrr in totalwar normally cb0[0] camera position cb0[1-4] view cb0[9-12] view-projection .... you can see in tags too the other output texcord from vs, o1 o2,.. for the others pixel shaders, i can see in frame analysis that are ok, in stereo, only o0 it is the problematic e9617846f5ecf04d-ps.txt [code] // // Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.0 // // using 3Dmigoto v1.2.37 on Fri Jun 24 23:06:32 2016 // // // Buffer Definitions: // // cbuffer camera // { // // float3 camera_position; // Offset: 0 Size: 12 // float4x4 view; // Offset: 16 Size: 64 // float4x4 projection; // Offset: 80 Size: 64 [unused] // float4x4 view_projection; // Offset: 144 Size: 64 [unused] // float4x4 inv_view; // Offset: 208 Size: 64 // float4x4 inv_projection; // Offset: 272 Size: 64 // float4x4 inv_view_projection; // Offset: 336 Size: 64 [unused] // float4 camera_near_far; // Offset: 400 Size: 16 [unused] // float time_in_sec; // Offset: 416 Size: 4 [unused] // float2 g_inverse_focal_length; // Offset: 420 Size: 8 [unused] // float g_vertical_fov; // Offset: 428 Size: 4 [unused] // float4 g_screen_size; // Offset: 432 Size: 16 // float g_vpos_texel_offset; // Offset: 448 Size: 4 // float4 g_viewport_dimensions; // Offset: 464 Size: 16 [unused] // float2 g_viewport_origin; // Offset: 480 Size: 8 [unused] // float4 g_render_target_dimensions; // Offset: 496 Size: 16 // float4 g_camera_temp0; // Offset: 512 Size: 16 [unused] // float4 g_camera_temp1; // Offset: 528 Size: 16 [unused] // float4 g_camera_temp2; // Offset: 544 Size: 16 [unused] // float4 g_clip_rect; // Offset: 560 Size: 16 [unused] // float3 g_vr_head_rotation; // Offset: 576 Size: 12 [unused] // int g_num_of_samples; // Offset: 588 Size: 4 [unused] // float g_supersampling; // Offset: 592 Size: 4 [unused] // float4 g_mouse_position; // Offset: 608 Size: 16 [unused] // // } // // cbuffer lighting_VS_PS // { // // bool g_apply_environment_specular; // Offset: 0 Size: 4 [unused] // float3 sun_direction; // Offset: 4 Size: 12 // float3 sun_colour; // Offset: 16 Size: 12 // float3 ambient_cube_lr[2]; // Offset: 32 Size: 28 // float3 ambient_cube_tb[2]; // Offset: 64 Size: 28 // float3 ambient_cube_fb[2]; // Offset: 96 Size: 28 // float3 g_deep_water_colour; // Offset: 128 Size: 12 [unused] // float3 g_shallow_water_colour; // Offset: 144 Size: 12 [unused] // float3 g_sea_bed_light_scatter; // Offset: 160 Size: 12 [unused] // float g_refraction_light_scatter; // Offset: 172 Size: 4 [unused] // float g_hdr_on; // Offset: 176 Size: 4 // int g_ssr_enabled; // Offset: 180 Size: 4 [unused] // int g_use_spherical_harmonics; // Offset: 184 Size: 4 [unused] // float2 g_cloud_shadow_direction; // Offset: 192 Size: 8 [unused] // float g_cloud_shadow_speed; // Offset: 200 Size: 4 [unused] // float g_cloud_shadow_scale; // Offset: 204 Size: 4 [unused] // float g_cloud_shadow_lerp; // Offset: 208 Size: 4 [unused] // float2 g_noise_uv_shift; // Offset: 212 Size: 8 [unused] // float2 g_skin_curvature_scale_bias;// Offset: 224 Size: 8 [unused] // float2 g_skin_translucency_scale_bias;// Offset: 232 Size: 8 [unused] // float3 g_skin_blood_colour; // Offset: 240 Size: 12 [unused] // float4 g_world_bounds; // Offset: 256 Size: 16 [unused] // float4 g_playable_area_bounds; // Offset: 272 Size: 16 [unused] // // } // // cbuffer fog_VS_PS // { // // float3 g_volume_fog_colour; // Offset: 0 Size: 12 // float g_fog_distance_start; // Offset: 12 Size: 4 // float g_fog_distance_strength; // Offset: 16 Size: 4 // float g_fog_distance_scale; // Offset: 20 Size: 4 // float g_fog_height_bottom; // Offset: 24 Size: 4 // float g_fog_height_top; // Offset: 28 Size: 4 // float g_fog_height_strength; // Offset: 32 Size: 4 // float g_fog_colour_blend; // Offset: 36 Size: 4 // float g_fog_clear_distance; // Offset: 40 Size: 4 // float2 g_force_fog; // Offset: 48 Size: 8 // // } // // Resource bind info for g_constant_buffer_ps // { // // struct EMITTER_CONSTANTS_PS // { // // uint m_behaviour_mask; // Offset: 0 // uint m_diffuse_id; // Offset: 4 // uint m_normal_id; // Offset: 8 // uint m_draw_flags; // Offset: 12 // float m_ps_receive_shadows_high_quality_attenuation;// Offset: 16 // float m_ps_receive_shadows_high_quality_shadow_volume_depth_scaler;// Offset: 20 // float m_ps_lighting_emissive; // Offset: 24 // float m_ps_lighting_directionality;// Offset: 28 // float m_ps_lighting_average_size;// Offset: 32 // float m_ps_lighting_additive_blend_mul;// Offset: 36 // float m_ps_lighting_small_particles;// Offset: 40 // float m_ps_lighting_large_particles;// Offset: 44 // uint m_ps_alpha_crush_sharp_transition;// Offset: 48 // float m_ps_alpha_crush_alpha_crush_min;// Offset: 52 // float m_ps_alpha_crush_alpha_crush_max;// Offset: 56 // float m_ps_alpha_crush_variation;// Offset: 60 // float m_ps_soft_edge_soft_factor;// Offset: 64 // uint m_ps_texture_overlay_colour;// Offset: 68 // float m_mem_padding[2]; // Offset: 72 // // } $Element; // Offset: 0 Size: 80 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // s_sky sampler NA NA 0 1 // gbuffer_channel_4_sampler sampler NA NA 1 1 // g_sam_diffuse sampler NA NA 2 1 // g_sam_normal sampler NA NA 3 1 // t_sky texture float4 cube 0 1 // g_tex_diffuse texture float4 2darray 1 1 // g_tex_normal texture float4 2darray 2 1 // g_tex_depth texture float4 2d 3 1 // g_constant_buffer_ps texture struct r/o 4 1 // camera cbuffer NA NA 0 1 // lighting_VS_PS cbuffer NA NA 1 1 // fog_VS_PS cbuffer NA NA 2 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xy // COLOR 0 xyzw 1 NONE float xyzw // TEXCOORD 0 xyzw 2 NONE uint x // TEXCOORD 1 xyzw 3 NONE float xy // TEXCOORD 2 xyzw 4 NONE float x w // TEXCOORD 3 xyz 5 NONE float xyz // TEXCOORD 4 xyzw 6 NONE float xyzw // TEXCOORD 5 xyzw 7 NONE float xyz // TEXCOORD 6 xyzw 8 NONE float xyz // TEXCOORD 7 xyzw 9 NONE float xyz // TEXCOORD 8 xyz 10 NONE float // // // 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[32], immediateIndexed dcl_constantbuffer cb1[12], immediateIndexed dcl_constantbuffer cb2[4], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default dcl_sampler s3, mode_default dcl_resource_texturecube (float,float,float,float) t0 dcl_resource_texture2darray (float,float,float,float) t1 dcl_resource_texture2darray (float,float,float,float) t2 dcl_resource_texture2d (float,float,float,float) t3 dcl_resource_structured t4, 80 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xyzw dcl_input_ps constant v2.x dcl_input_ps linear v3.xy dcl_input_ps linear v4.xw dcl_input_ps linear v5.xyz dcl_input_ps linear v6.xyzw dcl_input_ps constant v7.xyz dcl_input_ps constant v8.xyz dcl_input_ps constant v9.xyz dcl_output o0.xyzw dcl_temps 11 ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.xyzw, v2.x, l(0), t4.xyzw ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.xyzw, v2.x, l(24), t4.xyzw ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r2.xyzw, v2.x, l(40), t4.xyzw ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r3.xyzw, v2.x, l(56), t4.xyzw and r4.xyzw, r0.xxxw, l(0x00010000, 0x00100000, 0x00200000, 0x80000000) if_nz r4.x mul r5.xy, cb0[27].zwzz, cb0[31].xyxx deriv_rtx_coarse r6.x, v3.x deriv_rtx_coarse r6.y, v5.x mul r5.xz, r5.xxxx, r6.xxyx deriv_rty_coarse r6.x, v3.y deriv_rty_coarse r6.y, v5.y mul r5.yw, r5.yyyy, r6.xxxy utof r6.z, r0.y mov r6.xy, v3.xyxx sample_d_indexable(texture2darray)(float,float,float,float) r7.xyzw, r6.xyzx, t1.xyzw, s2, r5.xxxx, r5.yyyy mov r6.xy, v5.xyxx sample_d_indexable(texture2darray)(float,float,float,float) r5.xyzw, r6.xyzx, t1.xyzw, s2, r5.zzzz, r5.wwww add r5.xyzw, -r7.xyzw, r5.xyzw mad r5.xyzw, v5.zzzz, r5.xyzw, r7.xyzw ge r0.y, l(0.040450), r5.w mul r4.x, r5.w, l(0.0773993805) add r5.w, r5.w, l(0.055000) mul r5.w, r5.w, l(0.947867334) log r5.w, r5.w mul r5.w, r5.w, l(2.400000) exp r5.w, r5.w movc r0.y, r0.y, r4.x, r5.w min r6.xyz, r0.yyyy, r5.xyzx max r4.x, v1.y, v1.x max r4.x, r4.x, v1.z max r4.x, r4.x, l(1.000000) div r7.xyz, v1.xyzx, r4.xxxx lt r5.w, r0.y, l(0.500000) mul r8.xyz, r6.xyzx, r7.xyzx add r8.xyz, r8.xyzx, r8.xyzx add r9.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) add r9.xyz, r9.xyzx, r9.xyzx add r10.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mad r9.xyz, -r9.xyzx, r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) and r6.w, r5.w, l(0x3f800000) movc r5.w, r5.w, l(0), l(1.000000) mul r9.xyz, r9.xyzx, r5.wwww mad r8.xyz, r6.wwww, r8.xyzx, r9.xyzx mul r8.xyz, r4.xxxx, r8.xyzx mul r6.xyz, r6.xyzx, v1.xyzx movc r6.xyz, r3.wwww, r8.xyzx, r6.xyzx mul r6.xyz, r6.xyzx, v1.wwww mul r6.w, r0.y, v1.w add_sat r5.xyz, -r0.yyyy, r5.xyzx lt r8.xyz, r5.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mul r7.xyz, r5.xyzx, r7.xyzx add r7.xyz, r7.xyzx, r7.xyzx add r9.xyz, -r5.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mul r9.xyz, r9.xyzx, r10.xyzx mad r9.xyz, -r9.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) and r10.xyz, r8.xyzx, l(0x3f800000, 0x3f800000, 0x3f800000, 0) movc r8.xyz, r8.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0) mul r8.xyz, r9.xyzx, r8.xyzx mad r7.xyz, r10.xyzx, r7.xyzx, r8.xyzx mul r7.xyz, r4.xxxx, r7.xyzx mul r5.xyz, r5.xyzx, v1.xyzx movc r5.xyz, r3.wwww, r7.xyzx, r5.xyzx mul r5.xyz, r5.xyzx, v1.wwww else mov r6.xyzw, v1.xyzw mov r5.xyz, l(0,0,0,0) endif eq r0.y, r2.w, r3.x add r3.y, -r3.y, l(1.000000) max r3.w, r2.w, r3.y mul r7.xy, v4.wwww, l(3276.000000, 4099.000000, 0.000000, 0.000000) frc r7.xy, r7.xyxx add r3.w, r3.w, l(-1.000000) mad r3.w, r7.x, r3.w, l(1.000000) mul r3.y, r3.y, r3.x max r3.y, r2.w, r3.y add r3.y, -r3.x, r3.y mad r3.x, r7.y, r3.y, r3.x movc r0.y, r0.y, r3.w, r3.x add r0.y, -r2.w, r0.y max r0.y, r0.y, l(0.001000) add r2.w, -r2.w, v6.w div_sat r0.y, r2.w, r0.y add_sat r2.w, -r0.y, r6.w add r3.x, -r0.y, l(1.001000) div r2.w, r2.w, r3.x add r0.y, -r0.y, r2.w ge r0.y, r0.y, l(0.000000) and r0.y, r0.y, l(0x3f800000) mul r0.y, r2.w, r0.y movc r7.w, r2.z, r0.y, r2.w ne r0.y, r6.w, l(0.000000) div r2.z, r7.w, r6.w movc r0.y, r0.y, r2.z, l(1.000000) mul r7.xyz, r0.yyyy, r6.xyzx movc r6.xyzw, r4.yyyy, r7.xyzw, r6.xyzw if_nz r4.z mov r7.xyz, v6.xyzx mov r7.w, l(1.000000) dp4 r0.y, r7.xyzw, cb0[3].xyzw add r2.zw, v0.xxxy, cb0[28].xxxx mul r2.zw, r2.zzzw, cb0[31].zzzw sample_l_indexable(texture2d)(float,float,float,float) r7.z, r2.zwzz, t3.yzxw, s1, l(0.000000) mad r7.xy, r2.zwzz, l(2.000000, -2.000000, 0.000000, 0.000000), l(-1.000000, 1.000000, 0.000000, 0.000000) mov r7.w, l(1.000000) dp4 r2.z, r7.xyzw, cb0[19].xyzw dp4 r2.w, r7.xyzw, cb0[20].xyzw div r2.z, r2.z, r2.w add r0.y, -r0.y, r2.z div_sat r0.y, r0.y, r3.z mul r3.w, r0.y, r6.w else mov r3.w, r6.w mov r0.y, l(1.000000) endif add r3.xyz, r5.xyzx, r6.xyzx lt r7.xyzw, r3.xyzw, l(0.00392156886, 0.00392156886, 0.00392156886, 0.00392156886) and r2.zw, r7.zzzw, r7.xxxy and r2.z, r2.w, r2.z discard_nz r2.z lt r2.z, l(0.100000), r3.w if_nz r2.z and r2.w, r0.x, l(0x00020000) if_nz r2.w utof r3.z, r0.z mov r3.xy, v3.xyxx sample_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t2.xyzw, s3 mad r3.xyz, r3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) dp3 r0.z, r3.xyzx, r3.xyzx rsq r0.z, r0.z mul r3.xyz, r0.zzzz, r3.xyzx else mov r3.xyz, l(0,0,1.000000,0) endif else mov r3.xyz, l(0,0,1.000000,0) endif mul r4.xyz, -r3.yyyy, v8.xyzx mad r4.xyz, r3.xxxx, v7.xyzx, r4.xyzx mad r7.xyz, r3.zzzz, v9.xyzx, r4.xyzx if_nz r2.z and r0.z, r0.x, l(0x00080000) if_nz r0.z lt r0.z, r3.w, l(0.200000) mul r3.xyz, r7.xyzx, l(1.000000, 4.000000, -1.000000, 0.000000) movc r3.xyz, r4.wwww, l(0,4.000000,0,0), r3.xyzx dp3 r2.z, r3.xyzx, r3.xyzx rsq r2.z, r2.z mul r3.xyz, r2.zzzz, r3.xyzx lt r4.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) movc r8.xyz, r4.xxxx, cb1[3].xyzx, cb1[2].xyzx movc r9.xyz, r4.yyyy, cb1[5].xyzx, cb1[4].xyzx movc r4.xyz, r4.zzzz, cb1[7].xyzx, cb1[6].xyzx mul r3.xyz, r3.xyzx, r3.xyzx mul r9.xyz, r9.xyzx, r3.yyyy mad r8.xyz, r3.xxxx, r8.xyzx, r9.xyzx mad r3.xyz, r3.zzzz, r4.xyzx, r8.xyzx lt r2.z, l(0.000000), cb1[11].x movc r2.zw, r2.zzzz, l(0,0,0.010000,0.005000), l(0,0,1.000000,0.500000) mul r4.xyz, r2.wwww, cb1[1].xyzx movc r4.xyz, r4.wwww, l(0,0,0,0), r4.xyzx add r4.xyz, r3.xyzx, r4.xyzx mov_sat r2.w, r1.x add r8.xyz, r1.xxxx, -r4.xyzx mad r4.xyz, r2.wwww, r8.xyzx, r4.xyzx mul r8.xyz, r1.wwww, r5.xyzx mad r4.xyz, r4.xyzx, r6.xyzx, r8.xyzx movc r8.xyz, r0.zzzz, r4.xyzx, r6.xyzx mov r9.x, cb0[13].z mov r9.y, cb0[14].z mov r9.z, cb0[15].z dp3 r0.z, cb1[0].yzwy, r9.xyzx add r5.w, r2.y, r2.x mov r7.w, -r7.z dp3 r6.w, -cb1[0].yzwy, r7.xywx mad r6.w, r6.w, l(-0.500000), l(0.500000) mul r6.w, -r5.w, r6.w mul r1.z, r1.z, r6.w mul r1.z, r1.z, v4.x mul r1.z, r1.z, l(1.442695) exp r1.z, r1.z add r6.w, -r1.y, l(1.000000) mad r7.w, r1.y, r1.y, l(1.000000) dp2 r1.y, r0.zzzz, r1.yyyy add r1.y, -r1.y, r7.w max r1.y, r1.y, l(0.000000) mul r6.w, r6.w, r6.w mul r6.w, r6.w, l(0.0795774683) log r1.y, r1.y mul r1.y, r1.y, l(1.500000) exp r1.y, r1.y div r1.y, r6.w, r1.y mul r1.y, r2.y, r1.y mad r0.z, r0.z, r0.z, l(1.000000) mul r0.z, r0.z, r2.x mad r0.z, r0.z, l(0.0596831031), r1.y div r0.z, r0.z, r5.w add r1.y, -r1.z, l(1.000000) mad_sat r0.z, r0.z, r1.y, r1.z mul r9.xyz, r0.zzzz, cb1[1].xyzx mul r10.xyz, r2.zzzz, r9.xyzx mad r2.xyz, -r9.xyzx, r2.zzzz, r1.xxxx mad r2.xyz, r2.wwww, r2.xyzx, r10.xyzx mul r3.xyz, r6.xyzx, r3.xyzx mad r2.xyz, r2.xyzx, r6.xyzx, r3.xyzx mad r2.xyz, r5.xyzx, r1.wwww, r2.xyzx movc r2.xyz, r4.wwww, r4.xyzx, r2.xyzx mov r6.xyz, r8.xyzx else mov r2.xyz, r6.xyzx endif add r0.z, r3.w, l(-0.100000) mul_sat r0.z, r0.z, l(10.000000) add r2.xyz, r2.xyzx, -r6.xyzx mad r2.xyz, r0.zzzz, r2.xyzx, r6.xyzx else and r0.x, r0.x, l(0x00080000) mul r3.xyz, r7.xyzx, l(1.000000, 4.000000, -1.000000, 0.000000) movc r3.xyz, r4.wwww, l(0,4.000000,0,0), r3.xyzx dp3 r0.z, r3.xyzx, r3.xyzx rsq r0.z, r0.z mul r3.xyz, r0.zzzz, r3.xyzx lt r4.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) movc r7.xyz, r4.xxxx, cb1[3].xyzx, cb1[2].xyzx movc r8.xyz, r4.yyyy, cb1[5].xyzx, cb1[4].xyzx movc r4.xyz, r4.zzzz, cb1[7].xyzx, cb1[6].xyzx mul r3.xyz, r3.xyzx, r3.xyzx mul r8.xyz, r8.xyzx, r3.yyyy mad r7.xyz, r3.xxxx, r7.xyzx, r8.xyzx mad r3.xyz, r3.zzzz, r4.xyzx, r7.xyzx lt r0.z, l(0.000000), cb1[11].x movc r0.z, r0.z, l(0.005000), l(0.500000) mul r4.xyz, r0.zzzz, cb1[1].xyzx movc r4.xyz, r4.wwww, l(0,0,0,0), r4.xyzx add r3.xyz, r3.xyzx, r4.xyzx mov_sat r0.z, r1.x add r1.xyz, r1.xxxx, -r3.xyzx mad r1.xyz, r0.zzzz, r1.xyzx, r3.xyzx mul r3.xyz, r1.wwww, r5.xyzx mad r1.xyz, r1.xyzx, r6.xyzx, r3.xyzx movc r2.xyz, r0.xxxx, r1.xyzx, r6.xyzx endif and r0.x, r0.w, l(0x40000000) if_nz r0.x add r1.xyz, v6.xyzx, -cb0[0].xyzx dp3 r0.x, r1.xyzx, r1.xyzx sqrt r0.x, r0.x mov_sat r0.z, cb2[0].w add r0.z, -r0.z, l(1.000000) mad r0.z, r0.z, l(8.000000), l(-4.000000) mov_sat r0.w, cb2[1].x add r0.w, -r0.w, l(1.000000) mul r0.w, r0.w, l(1000.000000) div r0.w, r0.x, r0.w add r0.z, r0.w, r0.z mul r0.z, r0.z, l(1.442695) exp r0.z, r0.z div r0.z, cb2[1].y, r0.z add_sat r0.z, -r0.z, cb2[1].y add r0.w, -v6.y, cb2[1].w add r2.w, -cb2[1].z, cb2[1].w add r0.w, r0.w, -cb2[1].z div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w mul_sat r0.w, r0.w, r2.w mad r2.w, r0.w, l(-2.000000), l(3.000000) mul r0.w, r0.w, r0.w mul r0.w, r0.w, r2.w dp2 r2.w, r1.xzxx, r1.xzxx sqrt r2.w, r2.w max r3.x, cb2[2].z, l(0.001000) div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x mul r2.w, r2.w, r3.x min r2.w, r2.w, l(1.000000) mad r3.x, r2.w, l(-2.000000), l(3.000000) mul r2.w, r2.w, r2.w mul r2.w, r2.w, r3.x mad r0.z, cb2[2].x, r0.w, r0.z mul r3.xyz, cb1[1].xyzx, cb2[0].xyzx mul r3.xyz, r3.xyzx, l(1.500000, 1.500000, 1.500000, 0.000000) mul r3.xyz, r3.xyzx, |cb1[0].zzzz| lt r0.w, l(0.000000), cb1[11].x movc r0.w, r0.w, l(0.010000), l(1.000000) mul r4.xyz, r0.wwww, r3.xyzx max r1.w, r1.y, l(0.000000) sample_indexable(texturecube)(float,float,float,float) r1.xyz, r1.xwzx, t0.xyzw, s0 dp2_sat r1.w, r0.zzzz, cb2[2].yyyy mad r1.xyz, -r3.xyzx, r0.wwww, r1.xyzx mad r1.xyz, r1.wwww, r1.xyzx, r4.xyzx mul_sat r0.z, r0.z, r2.w add r0.w, -cb2[3].x, cb2[3].y add r0.x, r0.x, -cb2[3].x div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w mul_sat r0.x, r0.w, r0.x mad r0.w, r0.x, l(-2.000000), l(3.000000) mul r0.x, r0.x, r0.x mul r0.x, r0.x, r0.w add r0.w, -r0.z, l(1.000000) mad r0.x, r0.x, r0.w, r0.z mad r1.xyz, r1.xyzx, r3.wwww, -r2.xyzx mad r2.xyz, r0.xxxx, r1.xyzx, r2.xyzx endif mul o0.xyz, r0.yyyy, r2.xyzx mov o0.w, r3.w ret // Approximately 305 instruction slots used [/code]
this it is the ps, more easy because it have too all the matrices

but i am new fixing yet, and i dont know as apply it, all i try it didnt work,
and when a see that doing changes in driver all was ok ( thanks to bob ),... i dont know as continue

i dont know if mono at screen depth would can be corrected.
That it is different to shogun2, or rome2 for example where i had to fix the vs before and after fix the ps to coorrect halos and ...


i will try only with separation in vs not stereo.y... but the vs its complicated you see )))
i think i tried it before and after each view/inv projection and with different options and the more usual was not effect.. or broken all totally but no in stereo never


i dont understand well as fix a simple vpos.xy that i have seen in many fixes grrrr


in totalwar normally
cb0[0] camera position
cb0[1-4] view
cb0[9-12] view-projection ....
you can see in tags



too the other output texcord from vs, o1 o2,.. for the others pixel shaders, i can see in frame analysis that are ok, in stereo, only o0 it is the problematic


e9617846f5ecf04d-ps.txt

//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.0
//
// using 3Dmigoto v1.2.37 on Fri Jun 24 23:06:32 2016
//
//
// Buffer Definitions:
//
// cbuffer camera
// {
//
// float3 camera_position; // Offset: 0 Size: 12
// float4x4 view; // Offset: 16 Size: 64
// float4x4 projection; // Offset: 80 Size: 64 [unused]
// float4x4 view_projection; // Offset: 144 Size: 64 [unused]
// float4x4 inv_view; // Offset: 208 Size: 64
// float4x4 inv_projection; // Offset: 272 Size: 64
// float4x4 inv_view_projection; // Offset: 336 Size: 64 [unused]
// float4 camera_near_far; // Offset: 400 Size: 16 [unused]
// float time_in_sec; // Offset: 416 Size: 4 [unused]
// float2 g_inverse_focal_length; // Offset: 420 Size: 8 [unused]
// float g_vertical_fov; // Offset: 428 Size: 4 [unused]
// float4 g_screen_size; // Offset: 432 Size: 16
// float g_vpos_texel_offset; // Offset: 448 Size: 4
// float4 g_viewport_dimensions; // Offset: 464 Size: 16 [unused]
// float2 g_viewport_origin; // Offset: 480 Size: 8 [unused]
// float4 g_render_target_dimensions; // Offset: 496 Size: 16
// float4 g_camera_temp0; // Offset: 512 Size: 16 [unused]
// float4 g_camera_temp1; // Offset: 528 Size: 16 [unused]
// float4 g_camera_temp2; // Offset: 544 Size: 16 [unused]
// float4 g_clip_rect; // Offset: 560 Size: 16 [unused]
// float3 g_vr_head_rotation; // Offset: 576 Size: 12 [unused]
// int g_num_of_samples; // Offset: 588 Size: 4 [unused]
// float g_supersampling; // Offset: 592 Size: 4 [unused]
// float4 g_mouse_position; // Offset: 608 Size: 16 [unused]
//
// }
//
// cbuffer lighting_VS_PS
// {
//
// bool g_apply_environment_specular; // Offset: 0 Size: 4 [unused]
// float3 sun_direction; // Offset: 4 Size: 12
// float3 sun_colour; // Offset: 16 Size: 12
// float3 ambient_cube_lr[2]; // Offset: 32 Size: 28
// float3 ambient_cube_tb[2]; // Offset: 64 Size: 28
// float3 ambient_cube_fb[2]; // Offset: 96 Size: 28
// float3 g_deep_water_colour; // Offset: 128 Size: 12 [unused]
// float3 g_shallow_water_colour; // Offset: 144 Size: 12 [unused]
// float3 g_sea_bed_light_scatter; // Offset: 160 Size: 12 [unused]
// float g_refraction_light_scatter; // Offset: 172 Size: 4 [unused]
// float g_hdr_on; // Offset: 176 Size: 4
// int g_ssr_enabled; // Offset: 180 Size: 4 [unused]
// int g_use_spherical_harmonics; // Offset: 184 Size: 4 [unused]
// float2 g_cloud_shadow_direction; // Offset: 192 Size: 8 [unused]
// float g_cloud_shadow_speed; // Offset: 200 Size: 4 [unused]
// float g_cloud_shadow_scale; // Offset: 204 Size: 4 [unused]
// float g_cloud_shadow_lerp; // Offset: 208 Size: 4 [unused]
// float2 g_noise_uv_shift; // Offset: 212 Size: 8 [unused]
// float2 g_skin_curvature_scale_bias;// Offset: 224 Size: 8 [unused]
// float2 g_skin_translucency_scale_bias;// Offset: 232 Size: 8 [unused]
// float3 g_skin_blood_colour; // Offset: 240 Size: 12 [unused]
// float4 g_world_bounds; // Offset: 256 Size: 16 [unused]
// float4 g_playable_area_bounds; // Offset: 272 Size: 16 [unused]
//
// }
//
// cbuffer fog_VS_PS
// {
//
// float3 g_volume_fog_colour; // Offset: 0 Size: 12
// float g_fog_distance_start; // Offset: 12 Size: 4
// float g_fog_distance_strength; // Offset: 16 Size: 4
// float g_fog_distance_scale; // Offset: 20 Size: 4
// float g_fog_height_bottom; // Offset: 24 Size: 4
// float g_fog_height_top; // Offset: 28 Size: 4
// float g_fog_height_strength; // Offset: 32 Size: 4
// float g_fog_colour_blend; // Offset: 36 Size: 4
// float g_fog_clear_distance; // Offset: 40 Size: 4
// float2 g_force_fog; // Offset: 48 Size: 8
//
// }
//
// Resource bind info for g_constant_buffer_ps
// {
//
// struct EMITTER_CONSTANTS_PS
// {
//
// uint m_behaviour_mask; // Offset: 0
// uint m_diffuse_id; // Offset: 4
// uint m_normal_id; // Offset: 8
// uint m_draw_flags; // Offset: 12
// float m_ps_receive_shadows_high_quality_attenuation;// Offset: 16
// float m_ps_receive_shadows_high_quality_shadow_volume_depth_scaler;// Offset: 20
// float m_ps_lighting_emissive; // Offset: 24
// float m_ps_lighting_directionality;// Offset: 28
// float m_ps_lighting_average_size;// Offset: 32
// float m_ps_lighting_additive_blend_mul;// Offset: 36
// float m_ps_lighting_small_particles;// Offset: 40
// float m_ps_lighting_large_particles;// Offset: 44
// uint m_ps_alpha_crush_sharp_transition;// Offset: 48
// float m_ps_alpha_crush_alpha_crush_min;// Offset: 52
// float m_ps_alpha_crush_alpha_crush_max;// Offset: 56
// float m_ps_alpha_crush_variation;// Offset: 60
// float m_ps_soft_edge_soft_factor;// Offset: 64
// uint m_ps_texture_overlay_colour;// Offset: 68
// float m_mem_padding[2]; // Offset: 72
//
// } $Element; // Offset: 0 Size: 80
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// s_sky sampler NA NA 0 1
// gbuffer_channel_4_sampler sampler NA NA 1 1
// g_sam_diffuse sampler NA NA 2 1
// g_sam_normal sampler NA NA 3 1
// t_sky texture float4 cube 0 1
// g_tex_diffuse texture float4 2darray 1 1
// g_tex_normal texture float4 2darray 2 1
// g_tex_depth texture float4 2d 3 1
// g_constant_buffer_ps texture struct r/o 4 1
// camera cbuffer NA NA 0 1
// lighting_VS_PS cbuffer NA NA 1 1
// fog_VS_PS cbuffer NA NA 2 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xy
// COLOR 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xyzw 2 NONE uint x
// TEXCOORD 1 xyzw 3 NONE float xy
// TEXCOORD 2 xyzw 4 NONE float x w
// TEXCOORD 3 xyz 5 NONE float xyz
// TEXCOORD 4 xyzw 6 NONE float xyzw
// TEXCOORD 5 xyzw 7 NONE float xyz
// TEXCOORD 6 xyzw 8 NONE float xyz
// TEXCOORD 7 xyzw 9 NONE float xyz
// TEXCOORD 8 xyz 10 NONE float
//
//
// 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[32], immediateIndexed
dcl_constantbuffer cb1[12], immediateIndexed
dcl_constantbuffer cb2[4], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_resource_texturecube (float,float,float,float) t0
dcl_resource_texture2darray (float,float,float,float) t1
dcl_resource_texture2darray (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_structured t4, 80
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xyzw
dcl_input_ps constant v2.x
dcl_input_ps linear v3.xy
dcl_input_ps linear v4.xw
dcl_input_ps linear v5.xyz
dcl_input_ps linear v6.xyzw
dcl_input_ps constant v7.xyz
dcl_input_ps constant v8.xyz
dcl_input_ps constant v9.xyz
dcl_output o0.xyzw
dcl_temps 11
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.xyzw, v2.x, l(0), t4.xyzw
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.xyzw, v2.x, l(24), t4.xyzw
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r2.xyzw, v2.x, l(40), t4.xyzw
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r3.xyzw, v2.x, l(56), t4.xyzw
and r4.xyzw, r0.xxxw, l(0x00010000, 0x00100000, 0x00200000, 0x80000000)
if_nz r4.x
mul r5.xy, cb0[27].zwzz, cb0[31].xyxx
deriv_rtx_coarse r6.x, v3.x
deriv_rtx_coarse r6.y, v5.x
mul r5.xz, r5.xxxx, r6.xxyx
deriv_rty_coarse r6.x, v3.y
deriv_rty_coarse r6.y, v5.y
mul r5.yw, r5.yyyy, r6.xxxy
utof r6.z, r0.y
mov r6.xy, v3.xyxx
sample_d_indexable(texture2darray)(float,float,float,float) r7.xyzw, r6.xyzx, t1.xyzw, s2, r5.xxxx, r5.yyyy
mov r6.xy, v5.xyxx
sample_d_indexable(texture2darray)(float,float,float,float) r5.xyzw, r6.xyzx, t1.xyzw, s2, r5.zzzz, r5.wwww
add r5.xyzw, -r7.xyzw, r5.xyzw
mad r5.xyzw, v5.zzzz, r5.xyzw, r7.xyzw
ge r0.y, l(0.040450), r5.w
mul r4.x, r5.w, l(0.0773993805)
add r5.w, r5.w, l(0.055000)
mul r5.w, r5.w, l(0.947867334)
log r5.w, r5.w
mul r5.w, r5.w, l(2.400000)
exp r5.w, r5.w
movc r0.y, r0.y, r4.x, r5.w
min r6.xyz, r0.yyyy, r5.xyzx
max r4.x, v1.y, v1.x
max r4.x, r4.x, v1.z
max r4.x, r4.x, l(1.000000)
div r7.xyz, v1.xyzx, r4.xxxx
lt r5.w, r0.y, l(0.500000)
mul r8.xyz, r6.xyzx, r7.xyzx
add r8.xyz, r8.xyzx, r8.xyzx
add r9.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
add r9.xyz, r9.xyzx, r9.xyzx
add r10.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r9.xyz, -r9.xyzx, r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
and r6.w, r5.w, l(0x3f800000)
movc r5.w, r5.w, l(0), l(1.000000)
mul r9.xyz, r9.xyzx, r5.wwww
mad r8.xyz, r6.wwww, r8.xyzx, r9.xyzx
mul r8.xyz, r4.xxxx, r8.xyzx
mul r6.xyz, r6.xyzx, v1.xyzx
movc r6.xyz, r3.wwww, r8.xyzx, r6.xyzx
mul r6.xyz, r6.xyzx, v1.wwww
mul r6.w, r0.y, v1.w
add_sat r5.xyz, -r0.yyyy, r5.xyzx
lt r8.xyz, r5.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul r7.xyz, r5.xyzx, r7.xyzx
add r7.xyz, r7.xyzx, r7.xyzx
add r9.xyz, -r5.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r9.xyz, r9.xyzx, r10.xyzx
mad r9.xyz, -r9.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000)
and r10.xyz, r8.xyzx, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc r8.xyz, r8.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
mul r8.xyz, r9.xyzx, r8.xyzx
mad r7.xyz, r10.xyzx, r7.xyzx, r8.xyzx
mul r7.xyz, r4.xxxx, r7.xyzx
mul r5.xyz, r5.xyzx, v1.xyzx
movc r5.xyz, r3.wwww, r7.xyzx, r5.xyzx
mul r5.xyz, r5.xyzx, v1.wwww
else
mov r6.xyzw, v1.xyzw
mov r5.xyz, l(0,0,0,0)
endif
eq r0.y, r2.w, r3.x
add r3.y, -r3.y, l(1.000000)
max r3.w, r2.w, r3.y
mul r7.xy, v4.wwww, l(3276.000000, 4099.000000, 0.000000, 0.000000)
frc r7.xy, r7.xyxx
add r3.w, r3.w, l(-1.000000)
mad r3.w, r7.x, r3.w, l(1.000000)
mul r3.y, r3.y, r3.x
max r3.y, r2.w, r3.y
add r3.y, -r3.x, r3.y
mad r3.x, r7.y, r3.y, r3.x
movc r0.y, r0.y, r3.w, r3.x
add r0.y, -r2.w, r0.y
max r0.y, r0.y, l(0.001000)
add r2.w, -r2.w, v6.w
div_sat r0.y, r2.w, r0.y
add_sat r2.w, -r0.y, r6.w
add r3.x, -r0.y, l(1.001000)
div r2.w, r2.w, r3.x
add r0.y, -r0.y, r2.w
ge r0.y, r0.y, l(0.000000)
and r0.y, r0.y, l(0x3f800000)
mul r0.y, r2.w, r0.y
movc r7.w, r2.z, r0.y, r2.w
ne r0.y, r6.w, l(0.000000)
div r2.z, r7.w, r6.w
movc r0.y, r0.y, r2.z, l(1.000000)
mul r7.xyz, r0.yyyy, r6.xyzx
movc r6.xyzw, r4.yyyy, r7.xyzw, r6.xyzw
if_nz r4.z
mov r7.xyz, v6.xyzx
mov r7.w, l(1.000000)
dp4 r0.y, r7.xyzw, cb0[3].xyzw
add r2.zw, v0.xxxy, cb0[28].xxxx
mul r2.zw, r2.zzzw, cb0[31].zzzw
sample_l_indexable(texture2d)(float,float,float,float) r7.z, r2.zwzz, t3.yzxw, s1, l(0.000000)
mad r7.xy, r2.zwzz, l(2.000000, -2.000000, 0.000000, 0.000000), l(-1.000000, 1.000000, 0.000000, 0.000000)
mov r7.w, l(1.000000)
dp4 r2.z, r7.xyzw, cb0[19].xyzw
dp4 r2.w, r7.xyzw, cb0[20].xyzw
div r2.z, r2.z, r2.w
add r0.y, -r0.y, r2.z
div_sat r0.y, r0.y, r3.z
mul r3.w, r0.y, r6.w
else
mov r3.w, r6.w
mov r0.y, l(1.000000)
endif
add r3.xyz, r5.xyzx, r6.xyzx
lt r7.xyzw, r3.xyzw, l(0.00392156886, 0.00392156886, 0.00392156886, 0.00392156886)
and r2.zw, r7.zzzw, r7.xxxy
and r2.z, r2.w, r2.z
discard_nz r2.z
lt r2.z, l(0.100000), r3.w
if_nz r2.z
and r2.w, r0.x, l(0x00020000)
if_nz r2.w
utof r3.z, r0.z
mov r3.xy, v3.xyxx
sample_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t2.xyzw, s3
mad r3.xyz, r3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.z, r0.z
mul r3.xyz, r0.zzzz, r3.xyzx
else
mov r3.xyz, l(0,0,1.000000,0)
endif
else
mov r3.xyz, l(0,0,1.000000,0)
endif
mul r4.xyz, -r3.yyyy, v8.xyzx
mad r4.xyz, r3.xxxx, v7.xyzx, r4.xyzx
mad r7.xyz, r3.zzzz, v9.xyzx, r4.xyzx
if_nz r2.z
and r0.z, r0.x, l(0x00080000)
if_nz r0.z
lt r0.z, r3.w, l(0.200000)
mul r3.xyz, r7.xyzx, l(1.000000, 4.000000, -1.000000, 0.000000)
movc r3.xyz, r4.wwww, l(0,4.000000,0,0), r3.xyzx
dp3 r2.z, r3.xyzx, r3.xyzx
rsq r2.z, r2.z
mul r3.xyz, r2.zzzz, r3.xyzx
lt r4.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r8.xyz, r4.xxxx, cb1[3].xyzx, cb1[2].xyzx
movc r9.xyz, r4.yyyy, cb1[5].xyzx, cb1[4].xyzx
movc r4.xyz, r4.zzzz, cb1[7].xyzx, cb1[6].xyzx
mul r3.xyz, r3.xyzx, r3.xyzx
mul r9.xyz, r9.xyzx, r3.yyyy
mad r8.xyz, r3.xxxx, r8.xyzx, r9.xyzx
mad r3.xyz, r3.zzzz, r4.xyzx, r8.xyzx
lt r2.z, l(0.000000), cb1[11].x
movc r2.zw, r2.zzzz, l(0,0,0.010000,0.005000), l(0,0,1.000000,0.500000)
mul r4.xyz, r2.wwww, cb1[1].xyzx
movc r4.xyz, r4.wwww, l(0,0,0,0), r4.xyzx
add r4.xyz, r3.xyzx, r4.xyzx
mov_sat r2.w, r1.x
add r8.xyz, r1.xxxx, -r4.xyzx
mad r4.xyz, r2.wwww, r8.xyzx, r4.xyzx
mul r8.xyz, r1.wwww, r5.xyzx
mad r4.xyz, r4.xyzx, r6.xyzx, r8.xyzx
movc r8.xyz, r0.zzzz, r4.xyzx, r6.xyzx
mov r9.x, cb0[13].z
mov r9.y, cb0[14].z
mov r9.z, cb0[15].z
dp3 r0.z, cb1[0].yzwy, r9.xyzx
add r5.w, r2.y, r2.x
mov r7.w, -r7.z
dp3 r6.w, -cb1[0].yzwy, r7.xywx
mad r6.w, r6.w, l(-0.500000), l(0.500000)
mul r6.w, -r5.w, r6.w
mul r1.z, r1.z, r6.w
mul r1.z, r1.z, v4.x
mul r1.z, r1.z, l(1.442695)
exp r1.z, r1.z
add r6.w, -r1.y, l(1.000000)
mad r7.w, r1.y, r1.y, l(1.000000)
dp2 r1.y, r0.zzzz, r1.yyyy
add r1.y, -r1.y, r7.w
max r1.y, r1.y, l(0.000000)
mul r6.w, r6.w, r6.w
mul r6.w, r6.w, l(0.0795774683)
log r1.y, r1.y
mul r1.y, r1.y, l(1.500000)
exp r1.y, r1.y
div r1.y, r6.w, r1.y
mul r1.y, r2.y, r1.y
mad r0.z, r0.z, r0.z, l(1.000000)
mul r0.z, r0.z, r2.x
mad r0.z, r0.z, l(0.0596831031), r1.y
div r0.z, r0.z, r5.w
add r1.y, -r1.z, l(1.000000)
mad_sat r0.z, r0.z, r1.y, r1.z
mul r9.xyz, r0.zzzz, cb1[1].xyzx
mul r10.xyz, r2.zzzz, r9.xyzx
mad r2.xyz, -r9.xyzx, r2.zzzz, r1.xxxx
mad r2.xyz, r2.wwww, r2.xyzx, r10.xyzx
mul r3.xyz, r6.xyzx, r3.xyzx
mad r2.xyz, r2.xyzx, r6.xyzx, r3.xyzx
mad r2.xyz, r5.xyzx, r1.wwww, r2.xyzx
movc r2.xyz, r4.wwww, r4.xyzx, r2.xyzx
mov r6.xyz, r8.xyzx
else
mov r2.xyz, r6.xyzx
endif
add r0.z, r3.w, l(-0.100000)
mul_sat r0.z, r0.z, l(10.000000)
add r2.xyz, r2.xyzx, -r6.xyzx
mad r2.xyz, r0.zzzz, r2.xyzx, r6.xyzx
else
and r0.x, r0.x, l(0x00080000)
mul r3.xyz, r7.xyzx, l(1.000000, 4.000000, -1.000000, 0.000000)
movc r3.xyz, r4.wwww, l(0,4.000000,0,0), r3.xyzx
dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.z, r0.z
mul r3.xyz, r0.zzzz, r3.xyzx
lt r4.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r7.xyz, r4.xxxx, cb1[3].xyzx, cb1[2].xyzx
movc r8.xyz, r4.yyyy, cb1[5].xyzx, cb1[4].xyzx
movc r4.xyz, r4.zzzz, cb1[7].xyzx, cb1[6].xyzx
mul r3.xyz, r3.xyzx, r3.xyzx
mul r8.xyz, r8.xyzx, r3.yyyy
mad r7.xyz, r3.xxxx, r7.xyzx, r8.xyzx
mad r3.xyz, r3.zzzz, r4.xyzx, r7.xyzx
lt r0.z, l(0.000000), cb1[11].x
movc r0.z, r0.z, l(0.005000), l(0.500000)
mul r4.xyz, r0.zzzz, cb1[1].xyzx
movc r4.xyz, r4.wwww, l(0,0,0,0), r4.xyzx
add r3.xyz, r3.xyzx, r4.xyzx
mov_sat r0.z, r1.x
add r1.xyz, r1.xxxx, -r3.xyzx
mad r1.xyz, r0.zzzz, r1.xyzx, r3.xyzx
mul r3.xyz, r1.wwww, r5.xyzx
mad r1.xyz, r1.xyzx, r6.xyzx, r3.xyzx
movc r2.xyz, r0.xxxx, r1.xyzx, r6.xyzx
endif
and r0.x, r0.w, l(0x40000000)
if_nz r0.x
add r1.xyz, v6.xyzx, -cb0[0].xyzx
dp3 r0.x, r1.xyzx, r1.xyzx
sqrt r0.x, r0.x
mov_sat r0.z, cb2[0].w
add r0.z, -r0.z, l(1.000000)
mad r0.z, r0.z, l(8.000000), l(-4.000000)
mov_sat r0.w, cb2[1].x
add r0.w, -r0.w, l(1.000000)
mul r0.w, r0.w, l(1000.000000)
div r0.w, r0.x, r0.w
add r0.z, r0.w, r0.z
mul r0.z, r0.z, l(1.442695)
exp r0.z, r0.z
div r0.z, cb2[1].y, r0.z
add_sat r0.z, -r0.z, cb2[1].y
add r0.w, -v6.y, cb2[1].w
add r2.w, -cb2[1].z, cb2[1].w
add r0.w, r0.w, -cb2[1].z
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
mul_sat r0.w, r0.w, r2.w
mad r2.w, r0.w, l(-2.000000), l(3.000000)
mul r0.w, r0.w, r0.w
mul r0.w, r0.w, r2.w
dp2 r2.w, r1.xzxx, r1.xzxx
sqrt r2.w, r2.w
max r3.x, cb2[2].z, l(0.001000)
div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x
mul r2.w, r2.w, r3.x
min r2.w, r2.w, l(1.000000)
mad r3.x, r2.w, l(-2.000000), l(3.000000)
mul r2.w, r2.w, r2.w
mul r2.w, r2.w, r3.x
mad r0.z, cb2[2].x, r0.w, r0.z
mul r3.xyz, cb1[1].xyzx, cb2[0].xyzx
mul r3.xyz, r3.xyzx, l(1.500000, 1.500000, 1.500000, 0.000000)
mul r3.xyz, r3.xyzx, |cb1[0].zzzz|
lt r0.w, l(0.000000), cb1[11].x
movc r0.w, r0.w, l(0.010000), l(1.000000)
mul r4.xyz, r0.wwww, r3.xyzx
max r1.w, r1.y, l(0.000000)
sample_indexable(texturecube)(float,float,float,float) r1.xyz, r1.xwzx, t0.xyzw, s0
dp2_sat r1.w, r0.zzzz, cb2[2].yyyy
mad r1.xyz, -r3.xyzx, r0.wwww, r1.xyzx
mad r1.xyz, r1.wwww, r1.xyzx, r4.xyzx
mul_sat r0.z, r0.z, r2.w
add r0.w, -cb2[3].x, cb2[3].y
add r0.x, r0.x, -cb2[3].x
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
mul_sat r0.x, r0.w, r0.x
mad r0.w, r0.x, l(-2.000000), l(3.000000)
mul r0.x, r0.x, r0.x
mul r0.x, r0.x, r0.w
add r0.w, -r0.z, l(1.000000)
mad r0.x, r0.x, r0.w, r0.z
mad r1.xyz, r1.xyzx, r3.wwww, -r2.xyzx
mad r2.xyz, r0.xxxx, r1.xyzx, r2.xyzx
endif
mul o0.xyz, r0.yyyy, r2.xyzx
mov o0.w, r3.w
ret
// Approximately 305 instruction slots used

Windows 7 64bit, i7, GTX680, 16GB, Benq 120hz

Posted 07/04/2016 06:30 PM   
by doing eg... [TextureOverrideAAAAAA] hash = 4ce8bfab StereoMode=2 ( at screen depth ) and (...) dcl_resource_texture2d (float,float,float,float) t125 ld_indexable(texture2d)(float,float,float,float) r13.xyzw, l(0, 0, 0, 0), t125.xyzw mov r13.w, r13.x mul r13.w, r13.w, l(0.6) add r5.x, r5.x, r13.w mov o0.xyw, r5.xyxz mov o0.z, l(0) mov o6.xyz, l(0,0,0,0) endif endif (...) [url]https://s3.amazonaws.com/kankgeforce99/Warhammer04_50.jps[/url] but always mono
by doing eg...

[TextureOverrideAAAAAA]
hash = 4ce8bfab
StereoMode=2
( at screen depth )

and

(...)
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r13.xyzw, l(0, 0, 0, 0), t125.xyzw
mov r13.w, r13.x
mul r13.w, r13.w, l(0.6)
add r5.x, r5.x, r13.w

mov o0.xyw, r5.xyxz
mov o0.z, l(0)
mov o6.xyz, l(0,0,0,0)
endif
endif
(...)


https://s3.amazonaws.com/kankgeforce99/Warhammer04_50.jps

but always mono

Windows 7 64bit, i7, GTX680, 16GB, Benq 120hz

Posted 07/04/2016 10:00 PM   
This doesn't have anything to do with stereoscopic 3D, but it's related to helixmod and 3Dmigoto. In Castlevania Lords of Shadow, there is one thing that reduces my enjoyment, and it's the forced motion blur. So I thought: "This should be easy now that I know how to disable vertex and pixel shaders with the helixmod wrapper!". However, the pixel shader that controls motion blur is also linked to part of the brightness in the game. Just disabling the pixel shader makes the image darker, and I haven't found a constant that affects only motion blur. I tried creating a constant (c200) with values "0, 0, 0, 0", but trying it around the shader didn't work (it either did nothing, or made the image totally black or white, or did the same as disabling the shader completely). I've also found this problem in FFX (Besaid island beach) and Persona 4 (using the DX11 renderer). Here is the code of the pixel shader (69C39902.txt), in case someone wants to look at it and is interested in disabling motion blur too: [code]// // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // Parameters: // // float RenderMult; // sampler2D bloom; // float fExposure; // float4 g_LevelsColorShift; // float g_LevelsContrast; // sampler2D luminance; // sampler2D original_scene; // // // Registers: // // Name Reg Size // ------------------ ----- ---- // RenderMult c0 1 // fExposure c1 1 // g_LevelsColorShift c2 1 // g_LevelsContrast c3 1 // original_scene s0 1 // luminance s1 1 // bloom s2 1 // ps_3_0 def c4, 0.5, 0.298999995, 0.587000012, 0.114 def c5, 1, 0, 0, 0 dcl_texcoord v0.xy dcl_2d s0 dcl_2d s1 dcl_2d s2 texld r0, v0, s0 texld r1, v0, s2 mad r0.xyz, r0, c0.x, r1 texld r1, c4.x, s1 rcp r0.w, r1.x mul r0.w, r0.w, c1.x mul r0.xyz, r0.w, r0 dp3 r0.w, r0, c4.yzww mad r1.xyz, r0.w, c2, -r0 add r0.w, -r0.w, c5.x mul_sat r0.w, r0.w, c2.w mad r0.xyz, r0.w, r1, r0 add r0.xyz, r0, -c4.x mov r1.x, c4.x mad_sat oC0.xyz, c3.x, r0, r1.x mov oC0.w, c5.x // approximately 16 instruction slots used (3 texture, 13 arithmetic) [/code] The vertex shader (4E4FAB8D.txt) is: [code]// // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 vs_3_0 def c0, 1, -1, 0, 0 dcl_position v0 dcl_texcoord v1 dcl_color v2 dcl_position o0 dcl_texcoord o1.xy dcl_color o2 mad o0, v0.xyxx, c0.xyzz, c0.zzzx mov o1.xy, v1 mov o2, v2 // approximately 3 instruction slots used [/code]
This doesn't have anything to do with stereoscopic 3D, but it's related to helixmod and 3Dmigoto.

In Castlevania Lords of Shadow, there is one thing that reduces my enjoyment, and it's the forced motion blur. So I thought: "This should be easy now that I know how to disable vertex and pixel shaders with the helixmod wrapper!".

However, the pixel shader that controls motion blur is also linked to part of the brightness in the game. Just disabling the pixel shader makes the image darker, and I haven't found a constant that affects only motion blur. I tried creating a constant (c200) with values "0, 0, 0, 0", but trying it around the shader didn't work (it either did nothing, or made the image totally black or white, or did the same as disabling the shader completely).

I've also found this problem in FFX (Besaid island beach) and Persona 4 (using the DX11 renderer).

Here is the code of the pixel shader (69C39902.txt), in case someone wants to look at it and is interested in disabling motion blur too:

//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
// float RenderMult;
// sampler2D bloom;
// float fExposure;
// float4 g_LevelsColorShift;
// float g_LevelsContrast;
// sampler2D luminance;
// sampler2D original_scene;
//
//
// Registers:
//
// Name Reg Size
// ------------------ ----- ----
// RenderMult c0 1
// fExposure c1 1
// g_LevelsColorShift c2 1
// g_LevelsContrast c3 1
// original_scene s0 1
// luminance s1 1
// bloom s2 1
//

ps_3_0
def c4, 0.5, 0.298999995, 0.587000012, 0.114
def c5, 1, 0, 0, 0
dcl_texcoord v0.xy
dcl_2d s0
dcl_2d s1
dcl_2d s2
texld r0, v0, s0
texld r1, v0, s2
mad r0.xyz, r0, c0.x, r1
texld r1, c4.x, s1
rcp r0.w, r1.x
mul r0.w, r0.w, c1.x
mul r0.xyz, r0.w, r0
dp3 r0.w, r0, c4.yzww
mad r1.xyz, r0.w, c2, -r0
add r0.w, -r0.w, c5.x
mul_sat r0.w, r0.w, c2.w
mad r0.xyz, r0.w, r1, r0
add r0.xyz, r0, -c4.x
mov r1.x, c4.x
mad_sat oC0.xyz, c3.x, r0, r1.x
mov oC0.w, c5.x

// approximately 16 instruction slots used (3 texture, 13 arithmetic)


The vertex shader (4E4FAB8D.txt) is:

//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
vs_3_0
def c0, 1, -1, 0, 0
dcl_position v0
dcl_texcoord v1
dcl_color v2
dcl_position o0
dcl_texcoord o1.xy
dcl_color o2
mad o0, v0.xyxx, c0.xyzz, c0.zzzx
mov o1.xy, v1
mov o2, v2

// approximately 3 instruction slots used

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

Posted 07/05/2016 09:56 AM   
so............ http://helixmod.blogspot.com.es/2016/07/totalwar-warhammer.html i can not believe yet, imposible to fix the default profile, inverse strategy with stereoflagdx10 and... unsteriorized shadows and .... i think that was in mono too as the particles but... a lots thanks bobs dhr helifax
so............


http://helixmod.blogspot.com.es/2016/07/totalwar-warhammer.html

i can not believe yet, imposible to fix the default profile, inverse strategy with stereoflagdx10 and...

unsteriorized shadows and .... i think that was in mono too as the particles but...

a lots thanks bobs dhr helifax

Windows 7 64bit, i7, GTX680, 16GB, Benq 120hz

Posted 07/05/2016 08:34 PM   
@kankgeforce99 I converted all your images to 3dvisionlive. Please either use 3dvisionlive or a different image host. 3500 views a day + 2MB of images per post = 7gb of file transfer each post per day. If you dont want to use 3dvision live just change from jps -> to jpg and upload to any image service. I am more then happy to host fixes + necessary files but stereoscopic images bring costs WAY up.
@kankgeforce99

I converted all your images to 3dvisionlive. Please either use 3dvisionlive or a different image host. 3500 views a day + 2MB of images per post = 7gb of file transfer each post per day.
If you dont want to use 3dvision live just change from jps -> to jpg and upload to any image service.

I am more then happy to host fixes + necessary files but stereoscopic images bring costs WAY up.

Co-founder/Web host of helixmod.blog.com

Donations for web hosting @ paypal -eqzitara@yahoo.com
or
https://www.patreon.com/user?u=791918

Posted 07/06/2016 05:20 AM   
[quote="eqzitara"]@kankgeforce99 I converted all your images to 3dvisionlive. Please either use 3dvisionlive or a different image host. 3500 views a day + 2MB of images per post = 7gb of file transfer each post per day. If you dont want to use 3dvision live just change from jps -> to jpg and upload to any image service. I am more then happy to host fixes + necessary files but stereoscopic images bring costs WAY up. [/quote] Oh... I should do the same with my Shadow Complex post. Or at least the trick I did with FFX (uploading an image to the post (which converts is to a small image), and changing the link inside the thumbnail to the corresponding cubeupload image, so it redirects to the big image).
eqzitara said:@kankgeforce99

I converted all your images to 3dvisionlive. Please either use 3dvisionlive or a different image host. 3500 views a day + 2MB of images per post = 7gb of file transfer each post per day.
If you dont want to use 3dvision live just change from jps -> to jpg and upload to any image service.

I am more then happy to host fixes + necessary files but stereoscopic images bring costs WAY up.



Oh... I should do the same with my Shadow Complex post. Or at least the trick I did with FFX (uploading an image to the post (which converts is to a small image), and changing the link inside the thumbnail to the corresponding cubeupload image, so it redirects to the big image).

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

Posted 07/06/2016 07:29 AM   
  58 / 88    
Scroll To Top