3Dmigoto now open-source...
  29 / 143    
1.1.34 with support for texture filtering is out: https://github.com/bo3b/3Dmigoto/releases/download/1.1.34/3Dmigoto-1.1.34.zip This version should also fix the crashes launching Crysis 3. In addition to the above texture filtering, there are a few other new features I've added in recent versions which may be of general interest. The resolution can now be obtained from either the swap chain (usually a good choice), or the depth/stencil buffer (necessary in Lichdom which upscales) [code] [Device] ; either swap_chain or depth_stencil: get_resolution_from = depth_stencil [/code] The resolution obtained here is used to make sure that full screen texture hashes will be consistent on different resolutions (as well as textures that are x2, x4, x8 and /2 multiples of the resolution -- to fix the issue with the ROG swift in Far Cry 4), as well as being passed into shaders, as one might do for... Render target size filtering: [code] [ShaderOverrideHUDBlue] ; Some HUD elements are drawn to an offscreen buffer before being copied to the ; screen. Check render target dimensions to determine which it is Hash = bd5bda832fe2c401 x1 = rt_width y1 = rt_height z1 = res_width w1 = res_height [/code] This passes the dimensions of the active render target to the shader in IniParams.Load(int2(1,0)).xy, and the current resolution in zw. Then you can do something like this to check if the shader is drawing to the screen: [code] float4 rt_filter = IniParams.Load(int2(1,0)); if (rt_filter.x == rt_filter.z && rt_filter.y == rt_filter.w) { // Render target dimensions match resolution - adjust UI depth } [/code] This should help with games that render some UI elements to an off-screen buffer then copy them to the screen, to avoid double-adjusting the UI element (note to self - pretty sure Witcher 3 needs this). I've also used it in Far Cry 4 (update coming soon!) to fix the reflection of the sky glow. Plus, there's a new feature to prevent objects disappearing in CryEngine games: [code] [TextureOverrideDepthRead] ; This texture is used by the game to read the depth buffer (unconfirmed) and ; cull objects. In stereo, this results in objects disappearing inappropriately. ; We use deny_cpu_read to return a fake blank buffer to the game instead. ; <RenderTarget hash=27b9d07c9837f6a5 type=Texture2D Width=256 Height=128 MipLevels=1 ArraySize=1 RawFormat=41 Format="R32_FLOAT" SampleDesc.Count=1 SampleDesc.Quality=0 Usage=3 BindFlags=0 CPUAccessFlags=131072 MiscFlags=0></RenderTarget> Hash = 27b9d07c9837f6a5 deny_cpu_read=1 [/code] And a feature to fix the pulsating translucent effects in Lichdom Battlemage: [code] [TextureOverrideenvMapSamplerRefr] ; <RenderTarget hash=b20a08fedc8cb047 type=Texture2D Width=1280 Height=720 MipLevels=1 ArraySize=1 RawFormat=26 Format="R11G11B10_FLOAT" SampleDesc.Count=1 SampleDesc.Quality=0 Usage=0 BindFlags=40 CPUAccessFlags=0 MiscFlags=0></RenderTarget> Hash = b20a08fedc8cb047 expand_region_copy=1 [/code] Frame analysis has also gained dump_cb and dump_cb_txt options, to dump out and decode the contents of constant buffers (this was pretty helpful to find the values I needed to fix shadows in Lichdom).
1.1.34 with support for texture filtering is out:


https://github.com/bo3b/3Dmigoto/releases/download/1.1.34/3Dmigoto-1.1.34.zip


This version should also fix the crashes launching Crysis 3.


In addition to the above texture filtering, there are a few other new features I've added in recent versions which may be of general interest. The resolution can now be obtained from either the swap chain (usually a good choice), or the depth/stencil buffer (necessary in Lichdom which upscales)
[Device]
; either swap_chain or depth_stencil:
get_resolution_from = depth_stencil

The resolution obtained here is used to make sure that full screen texture hashes will be consistent on different resolutions (as well as textures that are x2, x4, x8 and /2 multiples of the resolution -- to fix the issue with the ROG swift in Far Cry 4), as well as being passed into shaders, as one might do for...

Render target size filtering:
[ShaderOverrideHUDBlue]
; Some HUD elements are drawn to an offscreen buffer before being copied to the
; screen. Check render target dimensions to determine which it is
Hash = bd5bda832fe2c401
x1 = rt_width
y1 = rt_height
z1 = res_width
w1 = res_height

This passes the dimensions of the active render target to the shader in IniParams.Load(int2(1,0)).xy, and the current resolution in zw. Then you can do something like this to check if the shader is drawing to the screen:

float4 rt_filter = IniParams.Load(int2(1,0));
if (rt_filter.x == rt_filter.z && rt_filter.y == rt_filter.w) {
// Render target dimensions match resolution - adjust UI depth
}

This should help with games that render some UI elements to an off-screen buffer then copy them to the screen, to avoid double-adjusting the UI element (note to self - pretty sure Witcher 3 needs this). I've also used it in Far Cry 4 (update coming soon!) to fix the reflection of the sky glow.

Plus, there's a new feature to prevent objects disappearing in CryEngine games:
[TextureOverrideDepthRead]
; This texture is used by the game to read the depth buffer (unconfirmed) and
; cull objects. In stereo, this results in objects disappearing inappropriately.
; We use deny_cpu_read to return a fake blank buffer to the game instead.
; <RenderTarget hash=27b9d07c9837f6a5 type=Texture2D Width=256 Height=128 MipLevels=1 ArraySize=1 RawFormat=41 Format="R32_FLOAT" SampleDesc.Count=1 SampleDesc.Quality=0 Usage=3 BindFlags=0 CPUAccessFlags=131072 MiscFlags=0></RenderTarget>
Hash = 27b9d07c9837f6a5
deny_cpu_read=1

And a feature to fix the pulsating translucent effects in Lichdom Battlemage:
[TextureOverrideenvMapSamplerRefr]
; <RenderTarget hash=b20a08fedc8cb047 type=Texture2D Width=1280 Height=720 MipLevels=1 ArraySize=1 RawFormat=26 Format="R11G11B10_FLOAT" SampleDesc.Count=1 SampleDesc.Quality=0 Usage=0 BindFlags=40 CPUAccessFlags=0 MiscFlags=0></RenderTarget>
Hash = b20a08fedc8cb047
expand_region_copy=1


Frame analysis has also gained dump_cb and dump_cb_txt options, to dump out and decode the contents of constant buffers (this was pretty helpful to find the values I needed to fix shadows in Lichdom).

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/17/2015 05:47 PM   
I just posted this privately to DHR, but it seems like knowledge that would be more widely useful. @bo3b since 3DMigoto is getting more advanced it seems like it would be useful to create a wiki page to document stuff like this - what do you think? At the moment there are two ways to find the texture hashes: 1. Use ShaderUsage.txt to find textures that have been used with Register id=0 in the pixel shader (remember this file is only updated when dumping out a shader): <VertexShader hash="58eb4d71f0a77dc3"> <CalledPixelShaders>7ff9e9526ba34616 </CalledPixelShaders> <PixelShader hash="7ff9e9526ba34616"> <ParentVertexShaders>58eb4d71f0a77dc3 </ParentVertexShaders> <[color="green"]Register id=0[/color] handle=1C8C4790>[b][color="green"]713b30ee2f686ce5[/color][/b]</Register> <[color="green"]Register id=0[/color] handle=1CA64D10>[b][color="green"]09a07adfa246f434[/color][/b]</Register> <[color="green"]Register id=0[/color] handle=1CA64E50>[b][color="green"]0cec4ef0bd9d4d0a[/color][/b]</Register> <Register id=1 handle=1C8B2C50>4b95ceca040a2593</Register> <Register id=1 handle=1C8B3690>e65ac41a42ad94af</Register> <Register id=1 handle=1C92FA10>c4bdb2760060fa02</Register> <Register id=1 handle=1CA64FD0>c4bdb2760060fa02</Register> <Register id=2 handle=1C7C1E10>e19d2d8058ec32b4</Register> <Register id=2 handle=1C92FB90>c4bdb2760060fa02</Register> <Register id=2 handle=1CA65150>c4bdb2760060fa02</Register> <Register id=4 handle=1C674550>2bc785aaa191d311</Register> <Register id=5 handle=1C8C4610>b338c87979e9b177</Register> <Register id=120 handle=0897ADD0>0000000000000000</Register> <Register id=125 handle=1A8B27D0>24a83fdae0465bcc</Register> <RenderTarget id=0 handle=1C673B10>713b30ee2f686ce5</RenderTarget> <RenderTarget id=0 handle=1C673C90>713b30ee2f686ce5</RenderTarget> <RenderTarget id=0 handle=1C89CA90>713b30ee2f686ce5</RenderTarget> <DepthTarget handle=1A9E73D0>71ce2f5e04f8ac95</DepthTarget> </PixelShader> The other ids there correspond to other texture slot numbers, so if you needed to filter based on the texture in slot 1 you would use x2=ps-t1 2. Using frame analysis: [code] [Hunting] analyse_frame = VK_F8 analyse_options = filename_reg [ShaderOverrideHUD] Hash=58eb4d71f0a77dc3 analyse_options = filename_reg dump_tex [/code] Reload the config, enable hunting then press F8 and you should end up with a bunch of files like this with the hashes in the filename: [color="green"]ps-t0[/color]-xxxxxx=[color="green"]713b30ee2f686ce5[/color]-vs=58eb4d71f0a77dc3-ps=7ff9e9526ba34616.dds If you have any tools that can work with whatever format dds files they are in you can even open them to check which texture they are. I've been adding more formats to ddsinfo.py as I come across them to convert them to .png files.
I just posted this privately to DHR, but it seems like knowledge that would be more widely useful. @bo3b since 3DMigoto is getting more advanced it seems like it would be useful to create a wiki page to document stuff like this - what do you think?

At the moment there are two ways to find the texture hashes:

1. Use ShaderUsage.txt to find textures that have been used with Register id=0 in the pixel shader (remember this file is only updated when dumping out a shader):
<VertexShader hash="58eb4d71f0a77dc3">
<CalledPixelShaders>7ff9e9526ba34616 </CalledPixelShaders>

<PixelShader hash="7ff9e9526ba34616">
<ParentVertexShaders>58eb4d71f0a77dc3 </ParentVertexShaders>
<Register id=0 handle=1C8C4790>713b30ee2f686ce5</Register>
<Register id=0 handle=1CA64D10>09a07adfa246f434</Register>
<Register id=0 handle=1CA64E50>0cec4ef0bd9d4d0a</Register>
<Register id=1 handle=1C8B2C50>4b95ceca040a2593</Register>
<Register id=1 handle=1C8B3690>e65ac41a42ad94af</Register>
<Register id=1 handle=1C92FA10>c4bdb2760060fa02</Register>
<Register id=1 handle=1CA64FD0>c4bdb2760060fa02</Register>
<Register id=2 handle=1C7C1E10>e19d2d8058ec32b4</Register>
<Register id=2 handle=1C92FB90>c4bdb2760060fa02</Register>
<Register id=2 handle=1CA65150>c4bdb2760060fa02</Register>
<Register id=4 handle=1C674550>2bc785aaa191d311</Register>
<Register id=5 handle=1C8C4610>b338c87979e9b177</Register>
<Register id=120 handle=0897ADD0>0000000000000000</Register>
<Register id=125 handle=1A8B27D0>24a83fdae0465bcc</Register>
<RenderTarget id=0 handle=1C673B10>713b30ee2f686ce5</RenderTarget>
<RenderTarget id=0 handle=1C673C90>713b30ee2f686ce5</RenderTarget>
<RenderTarget id=0 handle=1C89CA90>713b30ee2f686ce5</RenderTarget>
<DepthTarget handle=1A9E73D0>71ce2f5e04f8ac95</DepthTarget>
</PixelShader>

The other ids there correspond to other texture slot numbers, so if you needed to filter based on the texture in slot 1 you would use x2=ps-t1

2. Using frame analysis:
[Hunting]
analyse_frame = VK_F8
analyse_options = filename_reg

[ShaderOverrideHUD]
Hash=58eb4d71f0a77dc3
analyse_options = filename_reg dump_tex


Reload the config, enable hunting then press F8 and you should end up with a bunch of files like this with the hashes in the filename:
ps-t0-xxxxxx=713b30ee2f686ce5-vs=58eb4d71f0a77dc3-ps=7ff9e9526ba34616.dds

If you have any tools that can work with whatever format dds files they are in you can even open them to check which texture they are. I've been adding more formats to ddsinfo.py as I come across them to convert them to .png files.

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/20/2015 12:36 AM   
Also is important to mention that with 3Dmigoto is necessary to use the PS in the hash part, for the example: [code][ShaderOverrideHUD1] Hash=7ff9e9526ba34616 <---- Use the PS, not VS x2=ps-t0[/code] I just use this to push only the Crosshair and Target icon in Crysis 3, the rest of the HUD is untouch.
Also is important to mention that with 3Dmigoto is necessary to use the PS in the hash part, for the example:

[ShaderOverrideHUD1]
Hash=7ff9e9526ba34616 <---- Use the PS, not VS
x2=ps-t0



I just use this to push only the Crosshair and Target icon in Crysis 3, the rest of the HUD is untouch.

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/20/2015 11:59 AM   
Hmmm, that hash is supposed to be the vertex shader, which is how I've been using it. Curious if that didn't work for you? As it happens that the pixel shader hash will work as well since they are both checked for each draw call, but the intention was that would be the vertex shader hash. Can you try with the vertex shader and just set an ini parameter to a unique value to see if the shader override section is matching at all? Something like: [code] [ShaderOverrideHUD1] Hash=xxxxxxxx x2=3[/code]
Hmmm, that hash is supposed to be the vertex shader, which is how I've been using it. Curious if that didn't work for you?

As it happens that the pixel shader hash will work as well since they are both checked for each draw call, but the intention was that would be the vertex shader hash.

Can you try with the vertex shader and just set an ini parameter to a unique value to see if the shader override section is matching at all? Something like:
[ShaderOverrideHUD1]
Hash=xxxxxxxx
x2=3

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/20/2015 01:30 PM   
At least in Crysis 3 is not working with VS....When i try to make it work i put the VS, and try with all the id...nothing works....and it occurred to me to change to PS and works right away, noticed because some icons in the map change the depth when refresh (i use max depth to see the change). I think the important thing is working. The fixing code is in the VS, btw. I will try that test in the night, now i'm not home. Also i will try with other game using VS.
At least in Crysis 3 is not working with VS....When i try to make it work i put the VS, and try with all the id...nothing works....and it occurred to me to change to PS and works right away, noticed because some icons in the map change the depth when refresh (i use max depth to see the change). I think the important thing is working.

The fixing code is in the VS, btw.


I will try that test in the night, now i'm not home.
Also i will try with other game using VS.

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/20/2015 01:46 PM   
Hmmm, there might be something weird going on with Crysis 3 - I was having a bit of difficulty getting the analyse_options to change from a vertex shader shaderoverride section the other day, but it did work after a few attempts. At the time I figured maybe it was only running that shader when the camera moved (I saw other evidence (with clear_rt) that it skips some shaders if the camera is still and just reuses the result from the previous frame), but perhaps we have a bug in our code that tracks which shaders are active. I'll have to take a closer look.
Hmmm, there might be something weird going on with Crysis 3 - I was having a bit of difficulty getting the analyse_options to change from a vertex shader shaderoverride section the other day, but it did work after a few attempts.

At the time I figured maybe it was only running that shader when the camera moved (I saw other evidence (with clear_rt) that it skips some shaders if the camera is still and just reuses the result from the previous frame), but perhaps we have a bug in our code that tracks which shaders are active.

I'll have to take a closer look.

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/20/2015 02:16 PM   
[quote=""]I just posted this privately to DHR, but it seems like knowledge that would be more widely useful. @bo3b since 3DMigoto is getting more advanced it seems like it would be useful to create a wiki page to document stuff like this - what do you think?[/quote] Very cool, yes we should definitely document the new features better, even if only to direct people to the info when they ask. We have two choices for Wiki, the one associated with the github project itself, and the one off wiki.bo3b.net for school. It seems to me that the best spot for this one would be on the github, as it's directly related to using the tool. (Currently that wiki is fairly out of date, we've been busy building stuff, and also it's much more clear what direction we want to take.) Please wait on documenting the texture mods for a week or so, as I have a WIP that I want to run past you that might impact the docs. I will probably want to change the hash function used for textures, which will make it incompatible with fixes using the features. I think the reason is pretty compelling, and will send you details in private. As an interim step, I've copy/pasted this to the wiki, where we can modify these details later as desired. [url]https://github.com/bo3b/3Dmigoto/wiki/Texture-Filtering[/url]
said:I just posted this privately to DHR, but it seems like knowledge that would be more widely useful. @bo3b since 3DMigoto is getting more advanced it seems like it would be useful to create a wiki page to document stuff like this - what do you think?

Very cool, yes we should definitely document the new features better, even if only to direct people to the info when they ask. We have two choices for Wiki, the one associated with the github project itself, and the one off wiki.bo3b.net for school. It seems to me that the best spot for this one would be on the github, as it's directly related to using the tool. (Currently that wiki is fairly out of date, we've been busy building stuff, and also it's much more clear what direction we want to take.)

Please wait on documenting the texture mods for a week or so, as I have a WIP that I want to run past you that might impact the docs. I will probably want to change the hash function used for textures, which will make it incompatible with fixes using the features. I think the reason is pretty compelling, and will send you details in private.

As an interim step, I've copy/pasted this to the wiki, where we can modify these details later as desired.

https://github.com/bo3b/3Dmigoto/wiki/Texture-Filtering

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

Posted 07/20/2015 10:50 PM   
Ok, if we need to change the hashes it's better to do it now rather than later. I've noted in the past that the hash we are currently using is sub-optimal*, but as I'm not enough of an expert on hashes I wasn't sure what the best option would be to change it to, but definitely in support of changing it. AFAIK the only fixes that will be impacted are Far Cry 4, Lichdom and Crysis 3. I've been making a note of the line from ShaderUsage.txt for any texture hashes I've used so I can easily calculate the new hash from that - @DHR probably a good idea to do the same for Crysis 3. * sub-optimal as in we're using an FNV-like hash that is not seeded correctly, and feeding it > 1 byte at a time, which isn't what it's designed for, plus we don't use the FNV prime on some of the MSAA fields (that last one was my fault).
Ok, if we need to change the hashes it's better to do it now rather than later. I've noted in the past that the hash we are currently using is sub-optimal*, but as I'm not enough of an expert on hashes I wasn't sure what the best option would be to change it to, but definitely in support of changing it.

AFAIK the only fixes that will be impacted are Far Cry 4, Lichdom and Crysis 3. I've been making a note of the line from ShaderUsage.txt for any texture hashes I've used so I can easily calculate the new hash from that - @DHR probably a good idea to do the same for Crysis 3.

* sub-optimal as in we're using an FNV-like hash that is not seeded correctly, and feeding it > 1 byte at a time, which isn't what it's designed for, plus we don't use the FNV prime on some of the MSAA fields (that last one was my fault).

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/21/2015 01:17 AM   
Based on our discussion, it seems clear that a better hash will help in at least a few cases, so I'll take another look. I'm also not a hash expert, but I did just research this for two days, so I have a reasonable idea of what will matter in our case. My take-away from studying is "it depends." Giant variances in quality and performance and collisions depending upon the data set. My first look there suggests Murmur3 as fairly optimal for our purposes, but I'll double check that wasn't some misread on my part, like good for string hashing and not necessarily binary. Our data will be binary/images, and smallish to maybe 1M in size (very rough target). I'll look for 64 bit cache, but if 32 bit cache has performance advantages, I'll give it a try with some debug code and see if we actually get collisions in practice.
Based on our discussion, it seems clear that a better hash will help in at least a few cases, so I'll take another look. I'm also not a hash expert, but I did just research this for two days, so I have a reasonable idea of what will matter in our case.

My take-away from studying is "it depends." Giant variances in quality and performance and collisions depending upon the data set.

My first look there suggests Murmur3 as fairly optimal for our purposes, but I'll double check that wasn't some misread on my part, like good for string hashing and not necessarily binary. Our data will be binary/images, and smallish to maybe 1M in size (very rough target).

I'll look for 64 bit cache, but if 32 bit cache has performance advantages, I'll give it a try with some debug code and see if we actually get collisions in practice.

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

Posted 07/22/2015 02:12 AM   
New update to version 1.1.35, as usual at newest release: https://github.com/bo3b/3Dmigoto/releases This fixes a bug introduced when we added no-header support for Witcher3, and was causing some named variables to be lost, and reverting to cb2 type names, instead of the vastly more helpful real names. Any shaders generated with those in between versions will be sub-optimal, but will work. However, it would be worth regenerating any ShaderCache with this version.
New update to version 1.1.35, as usual at newest release: https://github.com/bo3b/3Dmigoto/releases


This fixes a bug introduced when we added no-header support for Witcher3, and was causing some named variables to be lost, and reverting to cb2 type names, instead of the vastly more helpful real names.

Any shaders generated with those in between versions will be sub-optimal, but will work. However, it would be worth regenerating any ShaderCache with this version.

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

Posted 07/29/2015 03:36 AM   
Trying to improve my Legend of Kay fix. I'm getting this error in the log: D:\Legend of Kay Anniversary\wrapper1349(39,11-41): error X3018: invalid subscript 'g_instance_data' I get this error with the stable version & the latest experimental versions. (Also, with the experimental versions the game crashes immediately) Here's the shader the fault is referring to: [code]cbuffer g_instance_databuffer : register(b0) { struct { row_major float4x4 modelToClipMatrix; row_major float3x4 modelMatrix; float4 params0; } g_instance_data : packoffset(c0); } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float3 v0 : POSITION0, float2 v1 : TEXCOORD0, float3 v2 : NORMAL0, out float4 o0 : SV_Position0, out float3 o1 : TEXCOORD0, out float4 o2 : COLOR0, out float3 o3 : TEXCOORD1, out float3 o4 : TEXCOORD2) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v0.xyz; r0.w = 1.000000000e+000; r1.x = dot(g_instance_data.modelToClipMatrix._m20_m21_m22_m23, r0.xyzw); o0.z = r1.x; o1.z = r1.x; o0.x = dot(g_instance_data.modelToClipMatrix._m00_m01_m02_m03, r0.xyzw); o0.y = dot(g_instance_data.modelToClipMatrix._m10_m11_m12_m13, r0.xyzw); o0.w = dot(g_instance_data.modelToClipMatrix._m30_m31_m32_m33, r0.xyzw); o1.xy = g_instance_data.g_instance_data.params0.xy + v1.xy; o2.xyz = float3(5.000000e-001,5.000000e-001,5.000000e-001); o2.w = g_instance_data.g_instance_data.params0.w; o3.x = dot(g_instance_data.modelMatrix._m00_m01_m02, v2.xyz); o3.y = dot(g_instance_data.modelMatrix._m10_m11_m12, v2.xyz); o3.z = dot(g_instance_data.modelMatrix._m20_m21_m22, v2.xyz); o4.x = dot(g_instance_data.modelMatrix._m00_m01_m02_m03, r0.xyzw); o4.y = dot(g_instance_data.modelMatrix._m10_m11_m12_m13, r0.xyzw); o4.z = dot(g_instance_data.modelMatrix._m20_m21_m22_m23, r0.xyzw); return; }[/code]
Trying to improve my Legend of Kay fix. I'm getting this error in the log:
D:\Legend of Kay Anniversary\wrapper1349(39,11-41): error X3018: invalid subscript 'g_instance_data'

I get this error with the stable version & the latest experimental versions. (Also, with the experimental versions the game crashes immediately)

Here's the shader the fault is referring to:

cbuffer g_instance_databuffer : register(b0)
{

struct
{
row_major float4x4 modelToClipMatrix;
row_major float3x4 modelMatrix;
float4 params0;
} g_instance_data : packoffset(c0);

}

Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float3 v0 : POSITION0,
float2 v1 : TEXCOORD0,
float3 v2 : NORMAL0,
out float4 o0 : SV_Position0,
out float3 o1 : TEXCOORD0,
out float4 o2 : COLOR0,
out float3 o3 : TEXCOORD1,
out float3 o4 : TEXCOORD2)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = v0.xyz;
r0.w = 1.000000000e+000;
r1.x = dot(g_instance_data.modelToClipMatrix._m20_m21_m22_m23, r0.xyzw);
o0.z = r1.x;
o1.z = r1.x;
o0.x = dot(g_instance_data.modelToClipMatrix._m00_m01_m02_m03, r0.xyzw);
o0.y = dot(g_instance_data.modelToClipMatrix._m10_m11_m12_m13, r0.xyzw);
o0.w = dot(g_instance_data.modelToClipMatrix._m30_m31_m32_m33, r0.xyzw);
o1.xy = g_instance_data.g_instance_data.params0.xy + v1.xy;
o2.xyz = float3(5.000000e-001,5.000000e-001,5.000000e-001);
o2.w = g_instance_data.g_instance_data.params0.w;
o3.x = dot(g_instance_data.modelMatrix._m00_m01_m02, v2.xyz);
o3.y = dot(g_instance_data.modelMatrix._m10_m11_m12, v2.xyz);
o3.z = dot(g_instance_data.modelMatrix._m20_m21_m22, v2.xyz);
o4.x = dot(g_instance_data.modelMatrix._m00_m01_m02_m03, r0.xyzw);
o4.y = dot(g_instance_data.modelMatrix._m10_m11_m12_m13, r0.xyzw);
o4.z = dot(g_instance_data.modelMatrix._m20_m21_m22_m23, r0.xyzw);
return;
}

Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35

Posted 08/02/2015 05:53 PM   
[quote=""]Trying to improve my Legend of Kay fix. I'm getting this error in the log: D:\Legend of Kay Anniversary\wrapper1349(39,11-41): error X3018: invalid subscript 'g_instance_data' I get this error with the stable version & the latest experimental versions. (Also, with the experimental versions the game crashes immediately) Here's the shader the fault is referring to: [code]cbuffer g_instance_databuffer : register(b0) { struct { row_major float4x4 modelToClipMatrix; row_major float3x4 modelMatrix; float4 params0; } g_instance_data : packoffset(c0); } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float3 v0 : POSITION0, float2 v1 : TEXCOORD0, float3 v2 : NORMAL0, out float4 o0 : SV_Position0, out float3 o1 : TEXCOORD0, out float4 o2 : COLOR0, out float3 o3 : TEXCOORD1, out float3 o4 : TEXCOORD2) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v0.xyz; r0.w = 1.000000000e+000; r1.x = dot(g_instance_data.modelToClipMatrix._m20_m21_m22_m23, r0.xyzw); o0.z = r1.x; o1.z = r1.x; o0.x = dot(g_instance_data.modelToClipMatrix._m00_m01_m02_m03, r0.xyzw); o0.y = dot(g_instance_data.modelToClipMatrix._m10_m11_m12_m13, r0.xyzw); o0.w = dot(g_instance_data.modelToClipMatrix._m30_m31_m32_m33, r0.xyzw); o1.xy = g_instance_data.g_instance_data.params0.xy + v1.xy; o2.xyz = float3(5.000000e-001,5.000000e-001,5.000000e-001); o2.w = g_instance_data.g_instance_data.params0.w; o3.x = dot(g_instance_data.modelMatrix._m00_m01_m02, v2.xyz); o3.y = dot(g_instance_data.modelMatrix._m10_m11_m12, v2.xyz); o3.z = dot(g_instance_data.modelMatrix._m20_m21_m22, v2.xyz); o4.x = dot(g_instance_data.modelMatrix._m00_m01_m02_m03, r0.xyzw); o4.y = dot(g_instance_data.modelMatrix._m10_m11_m12_m13, r0.xyzw); o4.z = dot(g_instance_data.modelMatrix._m20_m21_m22_m23, r0.xyzw); return; }[/code] [/quote] For the crash at launch, can you try the 1.1.36 version and set debug=1 and unbuffered=1 for a full log and share that with me? I'd like to take a look. I'm fairly sure that the 1.1.36 has a fix for this Decompiler issue, which is extra incentive to get it working with this game.
said:Trying to improve my Legend of Kay fix. I'm getting this error in the log:
D:\Legend of Kay Anniversary\wrapper1349(39,11-41): error X3018: invalid subscript 'g_instance_data'

I get this error with the stable version & the latest experimental versions. (Also, with the experimental versions the game crashes immediately)

Here's the shader the fault is referring to:

cbuffer g_instance_databuffer : register(b0)
{

struct
{
row_major float4x4 modelToClipMatrix;
row_major float3x4 modelMatrix;
float4 params0;
} g_instance_data : packoffset(c0);

}

Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float3 v0 : POSITION0,
float2 v1 : TEXCOORD0,
float3 v2 : NORMAL0,
out float4 o0 : SV_Position0,
out float3 o1 : TEXCOORD0,
out float4 o2 : COLOR0,
out float3 o3 : TEXCOORD1,
out float3 o4 : TEXCOORD2)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = v0.xyz;
r0.w = 1.000000000e+000;
r1.x = dot(g_instance_data.modelToClipMatrix._m20_m21_m22_m23, r0.xyzw);
o0.z = r1.x;
o1.z = r1.x;
o0.x = dot(g_instance_data.modelToClipMatrix._m00_m01_m02_m03, r0.xyzw);
o0.y = dot(g_instance_data.modelToClipMatrix._m10_m11_m12_m13, r0.xyzw);
o0.w = dot(g_instance_data.modelToClipMatrix._m30_m31_m32_m33, r0.xyzw);
o1.xy = g_instance_data.g_instance_data.params0.xy + v1.xy;
o2.xyz = float3(5.000000e-001,5.000000e-001,5.000000e-001);
o2.w = g_instance_data.g_instance_data.params0.w;
o3.x = dot(g_instance_data.modelMatrix._m00_m01_m02, v2.xyz);
o3.y = dot(g_instance_data.modelMatrix._m10_m11_m12, v2.xyz);
o3.z = dot(g_instance_data.modelMatrix._m20_m21_m22, v2.xyz);
o4.x = dot(g_instance_data.modelMatrix._m00_m01_m02_m03, r0.xyzw);
o4.y = dot(g_instance_data.modelMatrix._m10_m11_m12_m13, r0.xyzw);
o4.z = dot(g_instance_data.modelMatrix._m20_m21_m22_m23, r0.xyzw);
return;
}



For the crash at launch, can you try the 1.1.36 version and set debug=1 and unbuffered=1 for a full log and share that with me? I'd like to take a look.

I'm fairly sure that the 1.1.36 has a fix for this Decompiler issue, which is extra incentive to get it working with this game.

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

Posted 08/03/2015 12:56 AM   
In order to hand-fix this shader, I need the ASM for comparison, to be sure it generates the same code. If you can supply that ASM, I can get you something that works. Not certain, but this is probably the tweak necessary to correct this. (not sure ASM is right). [code]// Legend of Kay, vs_4_0 cbuffer g_instance_databuffer : register(b0) { struct { row_major float4x4 modelToClipMatrix; row_major float3x4 modelMatrix; float4 params0; } g_instance_data : packoffset(c0); } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float3 v0 : POSITION0, float2 v1 : TEXCOORD0, float3 v2 : NORMAL0, out float4 o0 : SV_Position0, out float3 o1 : TEXCOORD0, out float4 o2 : COLOR0, out float3 o3 : TEXCOORD1, out float3 o4 : TEXCOORD2) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v0.xyz; r0.w = 1.000000000e+000; r1.x = dot(g_instance_data.modelToClipMatrix._m20_m21_m22_m23, r0.xyzw); o0.z = r1.x; o1.z = r1.x; o0.x = dot(g_instance_data.modelToClipMatrix._m00_m01_m02_m03, r0.xyzw); o0.y = dot(g_instance_data.modelToClipMatrix._m10_m11_m12_m13, r0.xyzw); o0.w = dot(g_instance_data.modelToClipMatrix._m30_m31_m32_m33, r0.xyzw); o1.xy = g_instance_data.params0.xy + v1.xy; o2.xyz = float3(5.000000e-001,5.000000e-001,5.000000e-001); o2.w = g_instance_data.params0.w; o3.x = dot(g_instance_data.modelMatrix._m00_m01_m02, v2.xyz); o3.y = dot(g_instance_data.modelMatrix._m10_m11_m12, v2.xyz); o3.z = dot(g_instance_data.modelMatrix._m20_m21_m22, v2.xyz); o4.x = dot(g_instance_data.modelMatrix._m00_m01_m02_m03, r0.xyzw); o4.y = dot(g_instance_data.modelMatrix._m10_m11_m12_m13, r0.xyzw); o4.z = dot(g_instance_data.modelMatrix._m20_m21_m22_m23, r0.xyzw); return; }[/code]
In order to hand-fix this shader, I need the ASM for comparison, to be sure it generates the same code. If you can supply that ASM, I can get you something that works.

Not certain, but this is probably the tweak necessary to correct this. (not sure ASM is right).

// Legend of Kay, vs_4_0

cbuffer g_instance_databuffer : register(b0)
{

struct
{
row_major float4x4 modelToClipMatrix;
row_major float3x4 modelMatrix;
float4 params0;
} g_instance_data : packoffset(c0);

}

Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float3 v0 : POSITION0,
float2 v1 : TEXCOORD0,
float3 v2 : NORMAL0,
out float4 o0 : SV_Position0,
out float3 o1 : TEXCOORD0,
out float4 o2 : COLOR0,
out float3 o3 : TEXCOORD1,
out float3 o4 : TEXCOORD2)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = v0.xyz;
r0.w = 1.000000000e+000;
r1.x = dot(g_instance_data.modelToClipMatrix._m20_m21_m22_m23, r0.xyzw);
o0.z = r1.x;
o1.z = r1.x;
o0.x = dot(g_instance_data.modelToClipMatrix._m00_m01_m02_m03, r0.xyzw);
o0.y = dot(g_instance_data.modelToClipMatrix._m10_m11_m12_m13, r0.xyzw);
o0.w = dot(g_instance_data.modelToClipMatrix._m30_m31_m32_m33, r0.xyzw);
o1.xy = g_instance_data.params0.xy + v1.xy;
o2.xyz = float3(5.000000e-001,5.000000e-001,5.000000e-001);
o2.w = g_instance_data.params0.w;
o3.x = dot(g_instance_data.modelMatrix._m00_m01_m02, v2.xyz);
o3.y = dot(g_instance_data.modelMatrix._m10_m11_m12, v2.xyz);
o3.z = dot(g_instance_data.modelMatrix._m20_m21_m22, v2.xyz);
o4.x = dot(g_instance_data.modelMatrix._m00_m01_m02_m03, r0.xyzw);
o4.y = dot(g_instance_data.modelMatrix._m10_m11_m12_m13, r0.xyzw);
o4.z = dot(g_instance_data.modelMatrix._m20_m21_m22_m23, r0.xyzw);
return;
}

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

Posted 08/03/2015 01:05 AM   
Thanks for taking a look at this, bo3b. I attached the log with debug & unbuffered set to 1: Also, here's the ASM code: [code]// // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // // Buffer Definitions: // // cbuffer g_instance_databuffer // { // // struct // { // // row_major float4x4 modelToClipMatrix;// Offset: 0 // row_major float3x4 modelMatrix;// Offset: 64 // float4 params0; // Offset: 112 // // } g_instance_data; // Offset: 0 Size: 128 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // g_instance_databuffer cbuffer NA NA 0 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyz 0 NONE float xyz // TEXCOORD 0 xy 1 NONE float xy // NORMAL 0 xyz 2 NONE float xyz // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xyzw // TEXCOORD 0 xyz 1 NONE float xyz // COLOR 0 xyzw 2 NONE float xyzw // TEXCOORD 1 xyz 3 NONE float xyz // TEXCOORD 2 xyz 4 NONE float xyz // vs_4_0 dcl_constantbuffer cb0[8], immediateIndexed dcl_input v0.xyz dcl_input v1.xy dcl_input v2.xyz dcl_output_siv o0.xyzw, position dcl_output o1.xyz dcl_output o2.xyzw dcl_output o3.xyz dcl_output o4.xyz dcl_temps 2 mov r0.xyz, v0.xyzx mov r0.w, l(1.000000) dp4 r1.x, cb0[2].xyzw, r0.xyzw mov o0.z, r1.x mov o1.z, r1.x dp4 o0.x, cb0[0].xyzw, r0.xyzw dp4 o0.y, cb0[1].xyzw, r0.xyzw dp4 o0.w, cb0[3].xyzw, r0.xyzw add o1.xy, v1.xyxx, cb0[7].xyxx mov o2.xyz, l(0.500000,0.500000,0.500000,0) mov o2.w, cb0[7].w dp3 o3.x, cb0[4].xyzx, v2.xyzx dp3 o3.y, cb0[5].xyzx, v2.xyzx dp3 o3.z, cb0[6].xyzx, v2.xyzx dp4 o4.x, cb0[4].xyzw, r0.xyzw dp4 o4.y, cb0[5].xyzw, r0.xyzw dp4 o4.z, cb0[6].xyzw, r0.xyzw ret // Approximately 18 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
Thanks for taking a look at this, bo3b. I attached the log with debug & unbuffered set to 1:

Also, here's the ASM code:

//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
// Buffer Definitions:
//
// cbuffer g_instance_databuffer
// {
//
// struct
// {
//
// row_major float4x4 modelToClipMatrix;// Offset: 0
// row_major float3x4 modelMatrix;// Offset: 64
// float4 params0; // Offset: 112
//
// } g_instance_data; // Offset: 0 Size: 128
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_instance_databuffer cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyz 0 NONE float xyz
// TEXCOORD 0 xy 1 NONE float xy
// NORMAL 0 xyz 2 NONE float xyz
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xyz 1 NONE float xyz
// COLOR 0 xyzw 2 NONE float xyzw
// TEXCOORD 1 xyz 3 NONE float xyz
// TEXCOORD 2 xyz 4 NONE float xyz
//
vs_4_0
dcl_constantbuffer cb0[8], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xy
dcl_input v2.xyz
dcl_output_siv o0.xyzw, position
dcl_output o1.xyz
dcl_output o2.xyzw
dcl_output o3.xyz
dcl_output o4.xyz
dcl_temps 2
mov r0.xyz, v0.xyzx
mov r0.w, l(1.000000)
dp4 r1.x, cb0[2].xyzw, r0.xyzw
mov o0.z, r1.x
mov o1.z, r1.x
dp4 o0.x, cb0[0].xyzw, r0.xyzw
dp4 o0.y, cb0[1].xyzw, r0.xyzw
dp4 o0.w, cb0[3].xyzw, r0.xyzw
add o1.xy, v1.xyxx, cb0[7].xyxx
mov o2.xyz, l(0.500000,0.500000,0.500000,0)
mov o2.w, cb0[7].w
dp3 o3.x, cb0[4].xyzx, v2.xyzx
dp3 o3.y, cb0[5].xyzx, v2.xyzx
dp3 o3.z, cb0[6].xyzx, v2.xyzx
dp4 o4.x, cb0[4].xyzw, r0.xyzw
dp4 o4.y, cb0[5].xyzw, r0.xyzw
dp4 o4.z, cb0[6].xyzw, r0.xyzw
ret
// Approximately 18 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Attachments

d3d11_log.txt.jpg

Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35

Posted 08/03/2015 04:59 AM   
Good, thanks. With that ASM, I can say that the code generated is identical to the original. Here is a diff of the original versus the recompiled hlsl code with those tweaks I added above: https://www.diffchecker.com/f6cdjift BTW, I'm wrong about the newest Decompiler handling that error. In the log I can see it getting the same error, so if you need other shaders similar to that one, you can hand tweak them to remove that duplicate 'g_instance_data'. Update: Looked through the log in detail, and I can't see anything out of the ordinary there. No errors, all is loading as expected and getting through registering all the shaders. This seems like a possible game problem. Maybe try some settings changes, including running in a window. That will turn off the 3D, but 3Dmigoto will still be loaded and running and show overlay. After you get into the game maybe an alt-return will make it go full screen. If this is a Unigine game, it's possible that their 3D and our 3D are competing, so it would be worth trying to set automatic_mode=1 to disable their renderer.
Good, thanks. With that ASM, I can say that the code generated is identical to the original. Here is a diff of the original versus the recompiled hlsl code with those tweaks I added above: https://www.diffchecker.com/f6cdjift

BTW, I'm wrong about the newest Decompiler handling that error. In the log I can see it getting the same error, so if you need other shaders similar to that one, you can hand tweak them to remove that duplicate 'g_instance_data'.


Update: Looked through the log in detail, and I can't see anything out of the ordinary there. No errors, all is loading as expected and getting through registering all the shaders. This seems like a possible game problem.

Maybe try some settings changes, including running in a window. That will turn off the 3D, but 3Dmigoto will still be loaded and running and show overlay. After you get into the game maybe an alt-return will make it go full screen.

If this is a Unigine game, it's possible that their 3D and our 3D are competing, so it would be worth trying to set automatic_mode=1 to disable their renderer.

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

Posted 08/03/2015 06:50 AM   
  29 / 143    
Scroll To Top