Page 1 of 2
NVidia Surround Assistant
Posted: 13 Nov 2018, 16:28
by Entr0py86
Hey everyone.
I have been developing an app in my spare time to assist with switching to and from NVidia Surround mode. It is a very simple app with limited features but gets the job done. It will detect new/exiting processes and load a profile that you have configured. In theory the app should be able to handle any screen configuration, the NVidia driver permitting.
Have a look and let me know what you think.
https://github.com/Entr0py86/NVidia_Surround_Assistant
Re: NVidia Surround Assistant
Posted: 18 Nov 2018, 23:47
by esteady1
Hello. I am very interested to know if this file you are working on might be of use to me.
I would like to switch between Nvidia Surround, triple screens in SLI to:
A single monitor, SLI disabled, VR headset active.
VR and SLI do not get along. VR + SLI + Surround is a total nightmare.
I know, first world problems, but can your file do this?
(If so, how do I use it? When I run the application, nothing happens as far as I can tell. There is no pop-up window.)
Thanks for your time.
Re: NVidia Surround Assistant
Posted: 20 Nov 2018, 16:37
by Entr0py86
Hi.
Interesting problem to have, would love to see your setup. I have not tested the app in such a situation but it might work, I am not sure what will happen with the SLI switch. If it does not work I would be willing to try and add it.
Did you use one of the setup files or are you running from a clone of the repository? If you have a log file that could also help me a ton to hopefully find the bug. I will retest the installer and check I did not miss something.
I use NVidia to setup my Surround profile then using the NVSA app to save that config. Then I switch to normal non-surround desktop and use the windows display manager to disable the screens that I don't want active and then use NVSA app to save that config. Then I edit each application in the list to use one of the saved configs. I will add a wiki over the next few days.
Re: NVidia Surround Assistant
Posted: 20 Nov 2018, 18:42
by esteady1
Thanks for your reply. My suspicion is I'm not downloading the right file. The github link above sends me to a list of files. Which one do I want?
Meanwhile, once up and running, I suspect the SLI switching is probably gonna be a hang-up, but fingers crossed

Re: NVidia Surround Assistant
Posted: 20 Nov 2018, 19:12
by Entr0py86
I found a dll missing from the Setup files that was required to create the database. I have fixed and released a new version.
https://github.com/Entr0py86/NVidia_Surround_Assistant/releases/tag/1.0.1As to your SLI problem I have found a possible way to implement it. I unfortunately don't have a SLI setup so will not be able to test fully before releasing. Will post back once completed.
Re: NVidia Surround Assistant
Posted: 26 Nov 2018, 00:20
by esteady1
Entr0py86, I gotta say, I think you've got something cooking here.
I bit the bullet and dumped my SLI setup. I think I'm done with that. Nvidia support has been worse and worse these past two years.
Anyway, with a single card, and you're updated fix, I think I've got it working, and I'm really liking what I've experienced so far. We'll see how it holds up, but seems very promising.
The setup was a little confusing, as it asks for the default and default surround settings back to back, which I don't think is possible. I had to load the single screen setup first, then run your program and save as default. Then close program. Setup surround settings, rerun program and set default surround. With the setups stored, indeed it appears that your program can switch back and forth on demand.
This is something Nvidia hasn't been able to provide for us for at least the last 4-5 years that I've been triple monitor. Very nice work.
I haven't fiddled yet with attaching a particular setup to a particular game, but that may be the topper.
Thanks a bunch. Guys, pick up this fix!
You have earned my donation. Please tell send me a link. I can do Paypal, steam.
Re: NVidia Surround Assistant
Posted: 26 Nov 2018, 16:24
by Entr0py86
Esteady1
Thank you for your kind words. I updated the git readme with a paypal donate link at the bottom, but here it is as well
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JWCEP7GLR62J2.
I have tested the setup procedure in it's totality again and everything worked as expected.
The application would ask you to save your current desktop setup as the default profile. Then it will ask you to switch to your surround desktop setup and save it. At any point that the messages are being displayed can you still tweak your setup. The profile is only saved once you click OK. Once your surround profile is saved, NVSA will then switch back to your default profile and display the main form.
I tried to make the setup as seamless as possible but if I can make it more intuitive I would greatly appreciate some input to improve the process.
Re: NVidia Surround Assistant
Posted: 26 Nov 2018, 17:42
by esteady1
Donated.
Regarding setup:
I didn't realize I could keep the program open while changing the setup to surround. If that's the case, the only other thing would be helpful would be to allow the flexibility to store the defaults in either order. In other words, if I'm already using my default surround setup, let me store that, than change to default non-surround setup. Currently, as far as I can tell, I have to be in non-surround setup first to run the program.
(honestly, none of this matters once it's up and running. Nothing some documentation can't solve)
Any word on how future proof your fix might be to Windows 10 updates etc?
Thanks
Re: NVidia Surround Assistant
Posted: 26 Nov 2018, 17:52
by Entr0py86
Thank you very much.
I will have a look at getting it to work that way, makes sense. I will also be adding documentation over next few weeks. Might only get to it over the festive.
I will keep it up to date as I myself use it as well. So far no updates have broken the setup. So fingers crossed.
Re: NVidia Surround Assistant
Posted: 27 Nov 2018, 04:01
by Kayden
That is pretty fantastic Entr0py86!! If I still used Surround I'd be happy to help but I am no longer using it and would have loved to have had it when I was using it. I will pass it on to those that I know who still do use it. Keep up the great work!
Re: NVidia Surround Assistant
Posted: 27 Nov 2018, 05:19
by Entr0py86
Thank you Kayden, appreciate it. I hope it helps a lot of people.
Re: NVidia Surround Assistant
Posted: 24 Dec 2018, 09:39
by Entr0py86
Hey everyone
I have updated the app with a few bug fixes. I will create a new release as soon as I have tested them, currently away on holiday.
I have also created a wiki to show how the app works and what everything does.
https://github.com/Entr0py86/NVidia_Surround_Assistant/wikiPlease let me know if something does not make sense or needs more elaboration.
Hope everyone as a blessed festive and lots of happy moments

Re: NVidia Surround Assistant
Posted: 24 Dec 2018, 19:14
by esteady1
Just want to comment that I've been using this for about a month. I find it extremely useful and use it regularly to swap Surround to VR and back.
I have not yet tried to see if it can swap between SLI surround and disable SLI surround, but I will likely test that soon.
Re: NVidia Surround Assistant
Posted: 25 Dec 2018, 07:47
by Entr0py86
Hey esteady
I have unfortunatly not been able to compelte the auto detection of SLI as I need to figure out how to create Direct3d instances. I will report back as soon as I have figured it out. I will create a beta release when the time comes for you to test. The enable/disable of SLI seems to be very straight forward. So if you would like to just test without auto detection I can release a version were you manualy control it for now?
Re: NVidia Surround Assistant
Posted: 25 Dec 2018, 22:07
by esteady1
Yes, enable/disable SLI is very straightforward, and including that is not a requirement. Maybe that's the way to go. What I would want to be able to do save 3 different profiles:
SLI Surround
SLI disabled surround
SLI disabled, no surround
I certainly don't mind enabling/disabling SLI, but need ability to save multiple profiles. It may be in there already, I have just stored the default setup and been using that, as I pulled out my second card. I need to put the card back in though, so I'll really get a test.
Re: NVidia Surround Assistant
Posted: 27 Dec 2018, 08:02
by Entr0py86
Hi Esteady
Sorry for the confusion, I was refering to enabling/disabling SLI from the NVSA profile perspective.
Unfortunatly it seems that the surround setting will need to be added to the saved profile. I am almost there and should have something by the weekend for you to test. I do hope it works as there seems to be a criteria that SLI needs to be enabled/disabled before an application creates a Direct3d device. If that is the case there might be a problem using the auto detection for games/applications that would need SLI changes. This will depend on the game/application being launched. If the detection is done before any Direct3d devices are created, by the game/application, and then the SLI switch is done, no problem but if the switch is done after a Direct3d device is created there could be problems and the game/NVidia driver could crash. At worst one would have to manually launch the applications from NVSA which will first apply the profile and then launch the game or one could load the profile and then launch the game.
I will post a link to a beta build for the SLI version as soon as I have completed it.
Kind Regards
Re: NVidia Surround Assistant
Posted: 01 Jan 2019, 16:40
by Entr0py86

Happy New year to all
I have completed the beta build
https://github.com/Entr0py86/NVidia_Surround_Assistant/releases/tag/V1.1.0. If possible please give it a try and let me know if it works. I unfortunately do not have the hw required for testing. It should now be able to detect and then save the sli setup to the profiles.
Re: NVidia Surround Assistant
Posted: 02 Jan 2019, 15:14
by esteady1
Oh boy, I'm very interested in testing this out. Switching in and out of SLI surround has been so painful, and now throwing VR into the mix, that after 4 generations of SLI builds, this generation I thought I would stop with SLI.
But if this works, I'm diving back in!
Cant test until next week, but fingers crossed big time.
Happy new year to all. PC master race!
Re: NVidia Surround Assistant
Posted: 03 Jan 2019, 15:39
by siglr
Hello, thank you for your efforts, your tool does not work for me:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at NVidia_Surround_Assistant.SurroundManager.SM_SaveDefaultSurroundSetup()
at NVidia_Surround_Assistant.NVSA_SetupWizard.NextPanel()
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
NVidia Surround Assistant
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Program%20Files/Gohl/NVidia%20Surround%20Assistant/NVidia%20Surround%20Assistant.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3221.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3221.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
NLog
Assembly Version: 4.0.0.0
Win32 Version: 4.5.11.8645
CodeBase: file:///D:/Program%20Files/Gohl/NVidia%20Surround%20Assistant/NLog.DLL
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Display_Manger
Assembly Version: 1.0.6940.31669
Win32 Version:
CodeBase: file:///D:/Program%20Files/Gohl/NVidia%20Surround%20Assistant/Display_Manger.DLL
----------------------------------------
NLog.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.2.3.167
CodeBase: file:///D:/Program%20Files/Gohl/NVidia%20Surround%20Assistant/NLog.Windows.Forms.DLL
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.ServiceModel
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel/v4.0_4.0.0.0__b77a5c561934e089/System.ServiceModel.dll
----------------------------------------
System.Runtime.Serialization
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.Data.SQLite
Assembly Version: 1.0.108.0
Win32 Version: 1.0.108.0
CodeBase: file:///D:/Program%20Files/Gohl/NVidia%20Surround%20Assistant/System.Data.SQLite.DLL
----------------------------------------
System.Transactions
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3221.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
IgdbAPI
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Program%20Files/Gohl/NVidia%20Surround%20Assistant/IgdbAPI.DLL
----------------------------------------
System.EnterpriseServices
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
System.Management
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Re: NVidia Surround Assistant
Posted: 03 Jan 2019, 15:43
by siglr
Also, I don't know if your tool also takes care of this too but it is definitely a pain for me:
1. when switching from normal to surround, it uses a resolution with only one monitor active (1920x1080) so I have to change all the time to bezel corrected 5900x1080...
2. when switching from surround to normal, I have to do WIN-P and select "Extend" to make sure the desktop is extended, then I also have to open Nvidia control panel, select my third monitor (which is the only one plugged with HDMI) and tell it to use "Full range" RGB instead of limited.
This is killing me all the time. Almost prevents me from using it.
Thanks again!