[quote="bo3b"][quote="mx-2"][quote="bo3b"][quote="mx-2"]Well, I my case, there is no broken HLSL shader available, 3Dmigoto only dumped an asm file.[/quote]
No problem, whatever fixing technique works best for you.
It should be possible to dump the HLSL shader that matches the ASM in all cases. If you have set export_hlsl=3 and did not get a shader, it would be interesting to look in the log to see what happened. As a general rule, I prioritize any Decompiler exceptions or missing instructions that prevent it from creating an HLSL text file.[/quote]Today, I tried using export_hlsl=3 together with 3Dmigoto-1.2.46 but there is no change. The shader is only dumped as asm. In the log file I can't find any error messages for that shader.
If it helps you for debugging: That problematic shader is 34b661ef093bad26-ps from the Witcher 3. It is responsible for some HBAO normal map artifacts.[/quote]
I tried this out, and I'm getting the 34b661ef093bad26-ps file as HLSL without any errors.
If you have a replacement file in ShaderFixes, this might be skipped, as the ShaderFixes are loaded first. That probably includes an asm file, a .bin, or an HLSL, but I'm not certain.
Try moving both ShaderFixes and ShaderCache out of the way, and I expect that you will get all HLSL.[/quote]That solved it. Thanks for your help.
mx-2 said:Well, I my case, there is no broken HLSL shader available, 3Dmigoto only dumped an asm file.
No problem, whatever fixing technique works best for you.
It should be possible to dump the HLSL shader that matches the ASM in all cases. If you have set export_hlsl=3 and did not get a shader, it would be interesting to look in the log to see what happened. As a general rule, I prioritize any Decompiler exceptions or missing instructions that prevent it from creating an HLSL text file.
Today, I tried using export_hlsl=3 together with 3Dmigoto-1.2.46 but there is no change. The shader is only dumped as asm. In the log file I can't find any error messages for that shader.
If it helps you for debugging: That problematic shader is 34b661ef093bad26-ps from the Witcher 3. It is responsible for some HBAO normal map artifacts.
I tried this out, and I'm getting the 34b661ef093bad26-ps file as HLSL without any errors.
If you have a replacement file in ShaderFixes, this might be skipped, as the ShaderFixes are loaded first. That probably includes an asm file, a .bin, or an HLSL, but I'm not certain.
Try moving both ShaderFixes and ShaderCache out of the way, and I expect that you will get all HLSL.
Hello,
I am a kind of traitor because I purchased a Razer HDK2 VR headset.
I use it in DCS world, but found that I need to increase brightness and have a zoom function because of the poor resolution (same as Vive or Rift). So I used the 3dmigoto feature to overwrite a pixel shader to have this 2 functions, and it was working well. 3dmigoto rules, even for VR with no StereoParams!
But it seems that the 3dmigoto can no more hook steamVR libs, I can now make my fix work in no VR mode, but not in VR mode ! This is very frustrating, it has worked and now it is broken !
The only thing I made between the OK and KO status was to re-activate 3Dvision in order to fix my old 3DVISION DCS mod to cope with renamed shader in the last DCS version...
Does anybody have an idea to make 3dmigoto work again with VR ? I will try to re install NVIDIA drivers to check if the 3dvision never activated thing have an impact.
Hello,
I am a kind of traitor because I purchased a Razer HDK2 VR headset.
I use it in DCS world, but found that I need to increase brightness and have a zoom function because of the poor resolution (same as Vive or Rift). So I used the 3dmigoto feature to overwrite a pixel shader to have this 2 functions, and it was working well. 3dmigoto rules, even for VR with no StereoParams!
But it seems that the 3dmigoto can no more hook steamVR libs, I can now make my fix work in no VR mode, but not in VR mode ! This is very frustrating, it has worked and now it is broken !
The only thing I made between the OK and KO status was to re-activate 3Dvision in order to fix my old 3DVISION DCS mod to cope with renamed shader in the last DCS version...
Does anybody have an idea to make 3dmigoto work again with VR ? I will try to re install NVIDIA drivers to check if the 3dvision never activated thing have an impact.
Maybe the fix about Steam Controler overlay broke something?
I'm a noob but maybe it's related?
Did you tried an old version that was working in the past?
By the way, i came here just for curiosity about our shader wizards.
I was curious about the problem that shaderhacker meet about "broken" Compute Shader, there is no way to fix those things?
I'm curious to know the anwser of the experts like Bo3b or DSS or anyone with expertise.
I hope one day we will see a solution for perfect fix, or maybe it's impossible without access to the source of the thing?
Frostbite engine is used a lot, will be glad to enjoy it fully in 3D ;).
Can't wait to play ME: Andromeda and the new Star Wars of Amy Hennig, they will be awesome no doubt :P : https://youtu.be/yrIEW7woFFo?t=161
Thank you for all the things you do for our pleasure of 3D gamers.
And sorry to disturb :P.
Maybe the fix about Steam Controler overlay broke something?
I'm a noob but maybe it's related?
Did you tried an old version that was working in the past?
By the way, i came here just for curiosity about our shader wizards.
I was curious about the problem that shaderhacker meet about "broken" Compute Shader, there is no way to fix those things?
I'm curious to know the anwser of the experts like Bo3b or DSS or anyone with expertise.
I hope one day we will see a solution for perfect fix, or maybe it's impossible without access to the source of the thing?
Frostbite engine is used a lot, will be glad to enjoy it fully in 3D ;).
Oh we can fix compute shaders no worries, and we've done so in a number of games already (Witcher 3, FCPrimal, RoTTR, Arkham Knight, UE4 games, etc). It's usually just a matter of finding the right pattern like any other fix, but likely to be on the harder end of the spectrum and can require a more in depth analysis to track down the cause of the problem and come up with a solution.
I haven't personally looked at any games using the Frostbite engine, so I can't comment on those, but if we can fix something as difficult as Arkham Knight:
[url]https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers/post/4778156/#4778156[/url]
I don't imagine that Frostbite would be any worse.
Oh we can fix compute shaders no worries, and we've done so in a number of games already (Witcher 3, FCPrimal, RoTTR, Arkham Knight, UE4 games, etc). It's usually just a matter of finding the right pattern like any other fix, but likely to be on the harder end of the spectrum and can require a more in depth analysis to track down the cause of the problem and come up with a solution.
I haven't personally looked at any games using the Frostbite engine, so I can't comment on those, but if we can fix something as difficult as Arkham Knight:
This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message.
This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message.
[quote="4everAwake"]This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message. [/quote]You can use ImageMagick to convert them to other formats.
I used this method to batch convert dds from frame analysis to jpg (no alpha channel) but other output formats like png should be possible as well.
4everAwake said:This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message.
You can use ImageMagick to convert them to other formats.
I used this method to batch convert dds from frame analysis to jpg (no alpha channel) but other output formats like png should be possible as well.
Thank you for the suggestion, mx-2. Using ImageMagick, I'm still getting an error when converting DDS to JPG. I suspect it has something to do with the file sizes. The DDS files I want to view/convert are over 30 megs. But I'm able to convert a 300kb JPS file to DDS and back ok.
Thank you for the suggestion, mx-2. Using ImageMagick, I'm still getting an error when converting DDS to JPG. I suspect it has something to do with the file sizes. The DDS files I want to view/convert are over 30 megs. But I'm able to convert a 300kb JPS file to DDS and back ok.
[quote="4everAwake"]This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message. [/quote]
I use DarkStarSword's ddsinfo.py tool to convert DDS files to PNG. So far I don't think I've ever run into any errors or issues using it.
I created a simple sh script to run the tool against all files in the current folder, which makes it as simple to use as his Unity autofix scripts. Just create a file called dds.sh with the following code, copy that file into the frame analysis folder, and then run the script.
DDS.sh
[code]DIR=~/3d-fixes
PATH="$DIR:$PATH"
ddsinfo.py *.dds[/code]
4everAwake said:This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message.
I use DarkStarSword's ddsinfo.py tool to convert DDS files to PNG. So far I don't think I've ever run into any errors or issues using it.
I created a simple sh script to run the tool against all files in the current folder, which makes it as simple to use as his Unity autofix scripts. Just create a file called dds.sh with the following code, copy that file into the frame analysis folder, and then run the script.
DDS.sh
DIR=~/3d-fixes
PATH="$DIR:$PATH"
ddsinfo.py *.dds
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
[quote="Flugan"]Any chance you could upload a DDS that fails?[/quote]
Hi Flugan. Here's a couple of DDS files: https://s3.amazonaws.com/4everAwake/dds+files.zip
[quote="DJ-RK"][quote="4everAwake"]This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message. [/quote]
I use DarkStarSword's ddsinfo.py tool to convert DDS files to PNG. So far I don't think I've ever run into any errors or issues using it.
I created a simple sh script to run the tool against all files in the current folder, which makes it as simple to use as his Unity autofix scripts. Just create a file called dds.sh with the following code, copy that file into the frame analysis folder, and then run the script.[/quote]
Thanks for the suggestion, DJ-RK. The script works & it says the file is converted to PNG. But for some reason the PNG file doesn't get created. I'm using Python 3.4 with NumPY & Pillow installed. But I probably didn't install Pillow correctly so I'll have to look into that further.
4everAwake said:This was discussed in other threads, but I'm still having difficulty viewing DDS files. When I try to open DDS files using Visual Studio or Windows Texture Viewer, I get an error message. When I use GIMP + 64bit DDS plugin, it works only partially. I'm able to view maybe 25% of DDS files (in the Frame Analysis folder). But the other 75% logs an error message.
I use DarkStarSword's ddsinfo.py tool to convert DDS files to PNG. So far I don't think I've ever run into any errors or issues using it.
I created a simple sh script to run the tool against all files in the current folder, which makes it as simple to use as his Unity autofix scripts. Just create a file called dds.sh with the following code, copy that file into the frame analysis folder, and then run the script.
Thanks for the suggestion, DJ-RK. The script works & it says the file is converted to PNG. But for some reason the PNG file doesn't get created. I'm using Python 3.4 with NumPY & Pillow installed. But I probably didn't install Pillow correctly so I'll have to look into that further.
[quote="4everAwake"]Thanks for the suggestion, DJ-RK. The script works & it says the file is converted to PNG. But for some reason the PNG file doesn't get created. I'm using Python 3.4 with NumPY & Pillow installed. But I probably didn't install Pillow correctly so I'll have to look into that further.[/quote]
One thing to mention, which might be the case here, is if there are a lot of files to be converted, you have to wait a long time for it to finish processing to do them all. Me, I run the script through a CYGWin command prompt, and if there's a lot of files, I'll see the prompt run through all the files it's converting, but then it will stop at the end and say something like "Waiting for worker threads". This means that my CPU is still doing all the processing for converting the files. After some length of time after the prompt will eventually bring back the command line (where I can type again), and then that means that all the files have finally been converted.
Just thinking that maybe you might have done this on a folder containing multiple files, but didn't know you had to wait.
4everAwake said:Thanks for the suggestion, DJ-RK. The script works & it says the file is converted to PNG. But for some reason the PNG file doesn't get created. I'm using Python 3.4 with NumPY & Pillow installed. But I probably didn't install Pillow correctly so I'll have to look into that further.
One thing to mention, which might be the case here, is if there are a lot of files to be converted, you have to wait a long time for it to finish processing to do them all. Me, I run the script through a CYGWin command prompt, and if there's a lot of files, I'll see the prompt run through all the files it's converting, but then it will stop at the end and say something like "Waiting for worker threads". This means that my CPU is still doing all the processing for converting the files. After some length of time after the prompt will eventually bring back the command line (where I can type again), and then that means that all the files have finally been converted.
Just thinking that maybe you might have done this on a folder containing multiple files, but didn't know you had to wait.
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
[b][center][color="orange"][size="XL"]3DMigoto 1.2.[s]49[/s] 50[/size]
[size="M"]Update: 1.2.50 includes an important bug fix for this feature[/size][/color]
[size="M"][url]https://github.com/bo3b/3Dmigoto/releases[/url][/size]
[/center][/b]
Wow, it's been a while since I had a release worthy of the multi coloured large font size banner ;-)
This release brings a long awaited feature to 3DMigoto - the ability to write the driver profiles directly without needing external tools. There is a new [Profile] section in the d3dx.ini, which you can fill out with whatever settings you need. The ini file has documentation for a number of common settings that people often need, but will accept any setting known to the driver (by name or hex ID). The intended use for this setting is to allow you to set just the settings that you need for a fix, a good example would be as follows:
[code]
[Profile]
; Add this to every stereo profile:
StereoProfile = 1
; Enable stereo compute shaders to fix one eye rendering issues:
StereoFlagsDX10 = 0x00004000
; Set a default convergence value - note that this accepts FLOATING POINT:
StereoConvergence = 0.5
; Bling in the green text:
Comments = "Far Cry Primal community fix. Please disable motion blur."
; Rate the game as "3D Vision Ready":
Compat = "0"
; Kill compatibility mode (but allows the user to re-enable it if desired):
Disable2DD = 1
; Remind the user that compatibility mode is bad for their health:
2DD_Notes = "Compatibility mode is enabled. To use the fix, please disable it with Ctrl+Alt+F11"
[/code]
The d3dx.ini file provides more detail on these settings, and bo3b's wiki has even more. Note that this feature is not limited to the known stereo settings - it can set *any* setting. If you know the setting's name you can use that, such as:
[code]
[Profile]
NVIDIA predefined SLI mode on DirectX 10 = 2
NVIDIA predefined number of GPUs to use on SLI rendering mode on DirectX 10 = 4
Enable application for Optimus = 0x00000011
[/code]
IMO some of the settings names are a bit long winded (these come from nvidia - I did not make those up) and typo risky, but don't worry - if 3DMigoto is not able to recognise a setting it will give you an audible warning to let you know. On the other hand, not all settings have names, or perhaps you would prefer to use a format that you can easily copy and paste to Geforce Profile Manager. Well, good news - 3DMigoto accepts arbitrary hex setting IDs:
[code]
[Profile]
0x003846a8 = 0xc7729a38
[/code]
And even understands the same format as Geforce Profile Manager (but please please *please* do not try to include any corrupt string settings - 3DMigoto will beep angrily at you if you try because it doesn't like corrupt data):
[code]
[Profile]
Profile "The Witcher 3"
ShowOn GeForce
ProfileType Application
Executable "witcher3.exe"
Executable "witcher3release.exe"
Setting ID_0x00a06746 = 0x00800000
Setting ID_0x00a06946 = 0x080020F5
Setting ID_0x1033cec2 = 0x00000002
Setting ID_0x1033dcd3 = 0x00000004
Setting ID_0x106d5cff = 0x00000000
Setting ID_0x10f9dc81 = 0x00000011
Setting ID_0x70092d4a = 0xb19c3533 InternalSettingFlag=V0
Setting ID_0x701eb457 = 0x2241ab21 InternalSettingFlag=V0
Setting ID_0x702442fc = 0x1c22fe24 InternalSettingFlag=V0
Setting ID_0x708db8c5 = 0x5c3300b3 InternalSettingFlag=V0
Setting ID_0x70edb381 = 0x24208b6c InternalSettingFlag=V0
Setting ID_0x70f8e408 = 0x80b671f3 InternalSettingFlag=V0
Setting ID_0x709a1ddf = 0x4b1cd968 InternalSettingFlag=V0
Setting ID_0x709adada = 0x37f58357 InternalSettingFlag=V0
Setting ID_0x709adadb = 0x3F6C5C19 InternalSettingFlag=V0
Setting ID_0x709adadb = 0x3F630FC1 UserSpecified=true
Setting ID_0x00c96f61 = 0x0000000f InternalSettingFlag=V0
Setting ID_0x003846a8 = 0x0000000f InternalSettingFlag=V0
EndProfile
[/code]
And those of you who have paid attention to my previous posts may know that InternalSettingFlag=V0 means the setting is scrambled. 3DMigoto will transparently decode those settings and everything will just work - you can even grab the newly decoded and named settings out of the d3d11_log.txt to make the profile easier to read - and yes, it even decoded the scrambled floating point values for you:
[code]
[Profile]
Profile "The Witcher 3"
ShowOn GeForce
Executable "witcher3.exe"
Executable "witcher3release.exe"
Setting ID_0x00a06746 = 0x00800000
Setting ID_0x00a06946 = 0x080020F5
Setting ID_0x1033cec2 = 0x00000002 // NVIDIA predefined SLI mode on DirectX 10
Setting ID_0x1033dcd3 = 0x00000004 // NVIDIA predefined number of GPUs to use on SLI rendering mode on DirectX 10
Setting ID_0x106d5cff = 0x00000000 // Do not display this profile in the Control Panel
Setting ID_0x10f9dc81 = 0x00000011 // Enable application for Optimus
Setting ID_0x70092d4a = 0x00000009 // DX10DSCBNumber
Setting ID_0x701eb457 = 0x00000001 // StereoProfile
Setting ID_0x702442fc = 0x00004000 // StereoFlagsDX10
Setting ID_0x708db8c5 = 0x3fa8e97b // StereoConvergence = 1.31962526
Setting ID_0x70edb381 = 0x00000023 // StereoTextureEnable
Setting ID_0x70f8e408 = 0x00000009 // DX10VSCBNumber
Setting ID_0x709a1ddf = 0x00000001 // StereoCutoff
Setting ID_0x709adada = 0x10000102 // 2DDHUDSettings
Setting ID_0x709adadb = 0x3F630FC1 // 2DDConvergence = 0.886959136
Setting ID_0x00c96f61 = 0x6e0326f7
Setting ID_0x003846a8 = 0xc7729a38
EndProfile
[/code]
There are some settings that are treated a little special - these are settings that we expect the user may adjust on the fly (e.g. the convergence, whether the green text is displayed, whether compatibility mode is enabled, whether the nvidia laser sight is enabled). These settings can be set in the [Profile] section like any other and 3DMigoto will overwrite any predefined values from the driver, but if the user has customised them 3DMigoto will not overwrite them unless it also has some *other* reason to update the profile. If you wish to force one of these settings to be updated (e.g. if you shipped v1 of a fix with a low convergence then in v2 wanted to make it higher), I recommend adding a version tag to the Comments setting, which will display in the green text and is enough to force a profile update.
You do *not* need to launch the game as admin to write the profile - 3DMigoto will pop up a UAC prompt if it determines that it needs to update the profile (and not otherwise), and will only run a small amount of code as admin (in particular, it will not run the game as admin). The only time you should run the game as admin is if the UAC prompt is not coming up and 3DMigoto keeps giving you a Brnk du-du-dunk sound with errors in the log (and in that case, please let me know as there might be a few rare corner cases where this could happen).
Please let me know if anyone runs into an issue preventing a profile from being installed.
Wow, it's been a while since I had a release worthy of the multi coloured large font size banner ;-)
This release brings a long awaited feature to 3DMigoto - the ability to write the driver profiles directly without needing external tools. There is a new [Profile] section in the d3dx.ini, which you can fill out with whatever settings you need. The ini file has documentation for a number of common settings that people often need, but will accept any setting known to the driver (by name or hex ID). The intended use for this setting is to allow you to set just the settings that you need for a fix, a good example would be as follows:
[Profile]
; Add this to every stereo profile:
StereoProfile = 1
; Enable stereo compute shaders to fix one eye rendering issues:
StereoFlagsDX10 = 0x00004000
; Set a default convergence value - note that this accepts FLOATING POINT:
StereoConvergence = 0.5
; Bling in the green text:
Comments = "Far Cry Primal community fix. Please disable motion blur."
; Rate the game as "3D Vision Ready":
Compat = "0"
; Kill compatibility mode (but allows the user to re-enable it if desired):
Disable2DD = 1
; Remind the user that compatibility mode is bad for their health:
2DD_Notes = "Compatibility mode is enabled. To use the fix, please disable it with Ctrl+Alt+F11"
The d3dx.ini file provides more detail on these settings, and bo3b's wiki has even more. Note that this feature is not limited to the known stereo settings - it can set *any* setting. If you know the setting's name you can use that, such as:
[Profile]
NVIDIA predefined SLI mode on DirectX 10 = 2
NVIDIA predefined number of GPUs to use on SLI rendering mode on DirectX 10 = 4
Enable application for Optimus = 0x00000011
IMO some of the settings names are a bit long winded (these come from nvidia - I did not make those up) and typo risky, but don't worry - if 3DMigoto is not able to recognise a setting it will give you an audible warning to let you know. On the other hand, not all settings have names, or perhaps you would prefer to use a format that you can easily copy and paste to Geforce Profile Manager. Well, good news - 3DMigoto accepts arbitrary hex setting IDs:
[Profile]
0x003846a8 = 0xc7729a38
And even understands the same format as Geforce Profile Manager (but please please *please* do not try to include any corrupt string settings - 3DMigoto will beep angrily at you if you try because it doesn't like corrupt data):
And those of you who have paid attention to my previous posts may know that InternalSettingFlag=V0 means the setting is scrambled. 3DMigoto will transparently decode those settings and everything will just work - you can even grab the newly decoded and named settings out of the d3d11_log.txt to make the profile easier to read - and yes, it even decoded the scrambled floating point values for you:
[Profile]
Profile "The Witcher 3"
ShowOn GeForce
Executable "witcher3.exe"
Executable "witcher3release.exe"
Setting ID_0x00a06746 = 0x00800000
Setting ID_0x00a06946 = 0x080020F5
Setting ID_0x1033cec2 = 0x00000002 // NVIDIA predefined SLI mode on DirectX 10
Setting ID_0x1033dcd3 = 0x00000004 // NVIDIA predefined number of GPUs to use on SLI rendering mode on DirectX 10
Setting ID_0x106d5cff = 0x00000000 // Do not display this profile in the Control Panel
Setting ID_0x10f9dc81 = 0x00000011 // Enable application for Optimus
Setting ID_0x70092d4a = 0x00000009 // DX10DSCBNumber
Setting ID_0x701eb457 = 0x00000001 // StereoProfile
Setting ID_0x702442fc = 0x00004000 // StereoFlagsDX10
Setting ID_0x708db8c5 = 0x3fa8e97b // StereoConvergence = 1.31962526
Setting ID_0x70edb381 = 0x00000023 // StereoTextureEnable
Setting ID_0x70f8e408 = 0x00000009 // DX10VSCBNumber
Setting ID_0x709a1ddf = 0x00000001 // StereoCutoff
Setting ID_0x709adada = 0x10000102 // 2DDHUDSettings
Setting ID_0x709adadb = 0x3F630FC1 // 2DDConvergence = 0.886959136
Setting ID_0x00c96f61 = 0x6e0326f7
Setting ID_0x003846a8 = 0xc7729a38
EndProfile
There are some settings that are treated a little special - these are settings that we expect the user may adjust on the fly (e.g. the convergence, whether the green text is displayed, whether compatibility mode is enabled, whether the nvidia laser sight is enabled). These settings can be set in the [Profile] section like any other and 3DMigoto will overwrite any predefined values from the driver, but if the user has customised them 3DMigoto will not overwrite them unless it also has some *other* reason to update the profile. If you wish to force one of these settings to be updated (e.g. if you shipped v1 of a fix with a low convergence then in v2 wanted to make it higher), I recommend adding a version tag to the Comments setting, which will display in the green text and is enough to force a profile update.
You do *not* need to launch the game as admin to write the profile - 3DMigoto will pop up a UAC prompt if it determines that it needs to update the profile (and not otherwise), and will only run a small amount of code as admin (in particular, it will not run the game as admin). The only time you should run the game as admin is if the UAC prompt is not coming up and 3DMigoto keeps giving you a Brnk du-du-dunk sound with errors in the log (and in that case, please let me know as there might be a few rare corner cases where this could happen).
Please let me know if anyone runs into an issue preventing a profile from being installed.
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
Wow, that's a great addition indeed! Most common support issues I've been seeing lately are with people not correctly importing profiles we've provided (along with instructions), which is nearly impossible to support (hard to figure out what error a person is making when you have no way of seeing what they are doing), and this removes the need for that entirely! Will definitely be going back and updating some of my fixes to this new version simply to save myself a few headaches down the road. ;) As always, thank you for continuing to make 3DMigoto even better.
And while I'm here, I'd like to ask something. When working with HLSL shaders, I'm able to perform all kinds of different 'if' statements/condition checks, however if I'm working with ASM it seems the only type of conditions I can check for is if_z and if_nz. I've checked on the MSDN (or maybe it was somewhere else), and I'm pretty sure I've seen additional condition checks such as if_lt, if_gt, if_eq, etc, however whenever I try to use those I get a hard crash. Also, if I do a search through all the cached ASM shaders, I've never found any of them to use anything other than just if_z and if_nz, so I'm wondering whether is this a bug in the assembler, or is that simply a limitation of ASM here?
Wow, that's a great addition indeed! Most common support issues I've been seeing lately are with people not correctly importing profiles we've provided (along with instructions), which is nearly impossible to support (hard to figure out what error a person is making when you have no way of seeing what they are doing), and this removes the need for that entirely! Will definitely be going back and updating some of my fixes to this new version simply to save myself a few headaches down the road. ;) As always, thank you for continuing to make 3DMigoto even better.
And while I'm here, I'd like to ask something. When working with HLSL shaders, I'm able to perform all kinds of different 'if' statements/condition checks, however if I'm working with ASM it seems the only type of conditions I can check for is if_z and if_nz. I've checked on the MSDN (or maybe it was somewhere else), and I'm pretty sure I've seen additional condition checks such as if_lt, if_gt, if_eq, etc, however whenever I try to use those I get a hard crash. Also, if I do a search through all the cached ASM shaders, I've never found any of them to use anything other than just if_z and if_nz, so I'm wondering whether is this a bug in the assembler, or is that simply a limitation of ASM here?
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
SM4/5 assembly separated out the comparison instructions from the flow control (there's benefits on a hardware level of this design), so you first use one of the comparison instructions:
eq: floating point equals
ne: floating point not equals
ge: floating point greater or equal
lt: floating point less then
ieq: integer equals
ine: integer not equals
ige: signed integer greater or equal
ilt: signed integer less then
uge: unsigned integer greater or equal
ult: unsigned integer less then
There is no "less than or equal to" or "greater than" instructions - just swap the arguments around and use the opposite instruction if you need them.
Then use the if_nz / if_z to check the result of those instructions on a following line. (I think I noticed that if_nz and if_z did not always do what you expect if you try to use them on values not obtained from the above instructions, so best to always use them together).
SM4/5 assembly separated out the comparison instructions from the flow control (there's benefits on a hardware level of this design), so you first use one of the comparison instructions:
eq: floating point equals
ne: floating point not equals
ge: floating point greater or equal
lt: floating point less then
ieq: integer equals
ine: integer not equals
ige: signed integer greater or equal
ilt: signed integer less then
uge: unsigned integer greater or equal
ult: unsigned integer less then
There is no "less than or equal to" or "greater than" instructions - just swap the arguments around and use the opposite instruction if you need them.
Then use the if_nz / if_z to check the result of those instructions on a following line. (I think I noticed that if_nz and if_z did not always do what you expect if you try to use them on values not obtained from the above instructions, so best to always use them together).
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
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
My 3D fixes with Helixmod for the Risen series on GitHub
Bo3b's School for Shaderhackers - starting point for your first 3D fix
I am a kind of traitor because I purchased a Razer HDK2 VR headset.
I use it in DCS world, but found that I need to increase brightness and have a zoom function because of the poor resolution (same as Vive or Rift). So I used the 3dmigoto feature to overwrite a pixel shader to have this 2 functions, and it was working well. 3dmigoto rules, even for VR with no StereoParams!
But it seems that the 3dmigoto can no more hook steamVR libs, I can now make my fix work in no VR mode, but not in VR mode ! This is very frustrating, it has worked and now it is broken !
The only thing I made between the OK and KO status was to re-activate 3Dvision in order to fix my old 3DVISION DCS mod to cope with renamed shader in the last DCS version...
Does anybody have an idea to make 3dmigoto work again with VR ? I will try to re install NVIDIA drivers to check if the 3dvision never activated thing have an impact.
I'm a noob but maybe it's related?
Did you tried an old version that was working in the past?
By the way, i came here just for curiosity about our shader wizards.
I was curious about the problem that shaderhacker meet about "broken" Compute Shader, there is no way to fix those things?
I'm curious to know the anwser of the experts like Bo3b or DSS or anyone with expertise.
I hope one day we will see a solution for perfect fix, or maybe it's impossible without access to the source of the thing?
Frostbite engine is used a lot, will be glad to enjoy it fully in 3D ;).
Can't wait to play ME: Andromeda and the new Star Wars of Amy Hennig, they will be awesome no doubt :P : https://youtu.be/yrIEW7woFFo?t=161
Thank you for all the things you do for our pleasure of 3D gamers.
And sorry to disturb :P.
I haven't personally looked at any games using the Frostbite engine, so I can't comment on those, but if we can fix something as difficult as Arkham Knight:
https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers/post/4778156/#4778156
I don't imagine that Frostbite would be any worse.
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
Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35
I used this method to batch convert dds from frame analysis to jpg (no alpha channel) but other output formats like png should be possible as well.
My 3D fixes with Helixmod for the Risen series on GitHub
Bo3b's School for Shaderhackers - starting point for your first 3D fix
Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35
Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?
donations: ulfjalmbrant@hotmail.com
I use DarkStarSword's ddsinfo.py tool to convert DDS files to PNG. So far I don't think I've ever run into any errors or issues using it.
I created a simple sh script to run the tool against all files in the current folder, which makes it as simple to use as his Unity autofix scripts. Just create a file called dds.sh with the following code, copy that file into the frame analysis folder, and then run the script.
DDS.sh
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
Hi Flugan. Here's a couple of DDS files: https://s3.amazonaws.com/4everAwake/dds+files.zip
Thanks for the suggestion, DJ-RK. The script works & it says the file is converted to PNG. But for some reason the PNG file doesn't get created. I'm using Python 3.4 with NumPY & Pillow installed. But I probably didn't install Pillow correctly so I'll have to look into that further.
Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35
One thing to mention, which might be the case here, is if there are a lot of files to be converted, you have to wait a long time for it to finish processing to do them all. Me, I run the script through a CYGWin command prompt, and if there's a lot of files, I'll see the prompt run through all the files it's converting, but then it will stop at the end and say something like "Waiting for worker threads". This means that my CPU is still doing all the processing for converting the files. After some length of time after the prompt will eventually bring back the command line (where I can type again), and then that means that all the files have finally been converted.
Just thinking that maybe you might have done this on a folder containing multiple files, but didn't know you had to wait.
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
4950Update: 1.2.50 includes an important bug fix for this feature
https://github.com/bo3b/3Dmigoto/releases
Wow, it's been a while since I had a release worthy of the multi coloured large font size banner ;-)
This release brings a long awaited feature to 3DMigoto - the ability to write the driver profiles directly without needing external tools. There is a new [Profile] section in the d3dx.ini, which you can fill out with whatever settings you need. The ini file has documentation for a number of common settings that people often need, but will accept any setting known to the driver (by name or hex ID). The intended use for this setting is to allow you to set just the settings that you need for a fix, a good example would be as follows:
The d3dx.ini file provides more detail on these settings, and bo3b's wiki has even more. Note that this feature is not limited to the known stereo settings - it can set *any* setting. If you know the setting's name you can use that, such as:
IMO some of the settings names are a bit long winded (these come from nvidia - I did not make those up) and typo risky, but don't worry - if 3DMigoto is not able to recognise a setting it will give you an audible warning to let you know. On the other hand, not all settings have names, or perhaps you would prefer to use a format that you can easily copy and paste to Geforce Profile Manager. Well, good news - 3DMigoto accepts arbitrary hex setting IDs:
And even understands the same format as Geforce Profile Manager (but please please *please* do not try to include any corrupt string settings - 3DMigoto will beep angrily at you if you try because it doesn't like corrupt data):
And those of you who have paid attention to my previous posts may know that InternalSettingFlag=V0 means the setting is scrambled. 3DMigoto will transparently decode those settings and everything will just work - you can even grab the newly decoded and named settings out of the d3d11_log.txt to make the profile easier to read - and yes, it even decoded the scrambled floating point values for you:
There are some settings that are treated a little special - these are settings that we expect the user may adjust on the fly (e.g. the convergence, whether the green text is displayed, whether compatibility mode is enabled, whether the nvidia laser sight is enabled). These settings can be set in the [Profile] section like any other and 3DMigoto will overwrite any predefined values from the driver, but if the user has customised them 3DMigoto will not overwrite them unless it also has some *other* reason to update the profile. If you wish to force one of these settings to be updated (e.g. if you shipped v1 of a fix with a low convergence then in v2 wanted to make it higher), I recommend adding a version tag to the Comments setting, which will display in the green text and is enough to force a profile update.
You do *not* need to launch the game as admin to write the profile - 3DMigoto will pop up a UAC prompt if it determines that it needs to update the profile (and not otherwise), and will only run a small amount of code as admin (in particular, it will not run the game as admin). The only time you should run the game as admin is if the UAC prompt is not coming up and 3DMigoto keeps giving you a Brnk du-du-dunk sound with errors in the log (and in that case, please let me know as there might be a few rare corner cases where this could happen).
Please let me know if anyone runs into an issue preventing a profile from being installed.
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
And while I'm here, I'd like to ask something. When working with HLSL shaders, I'm able to perform all kinds of different 'if' statements/condition checks, however if I'm working with ASM it seems the only type of conditions I can check for is if_z and if_nz. I've checked on the MSDN (or maybe it was somewhere else), and I'm pretty sure I've seen additional condition checks such as if_lt, if_gt, if_eq, etc, however whenever I try to use those I get a hard crash. Also, if I do a search through all the cached ASM shaders, I've never found any of them to use anything other than just if_z and if_nz, so I'm wondering whether is this a bug in the assembler, or is that simply a limitation of ASM here?
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
eq: floating point equals
ne: floating point not equals
ge: floating point greater or equal
lt: floating point less then
ieq: integer equals
ine: integer not equals
ige: signed integer greater or equal
ilt: signed integer less then
uge: unsigned integer greater or equal
ult: unsigned integer less then
There is no "less than or equal to" or "greater than" instructions - just swap the arguments around and use the opposite instruction if you need them.
Then use the if_nz / if_z to check the result of those instructions on a following line. (I think I noticed that if_nz and if_z did not always do what you expect if you try to use them on values not obtained from the above instructions, so best to always use them together).
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