terrymacdonald / DisplayMagician

DisplayMagician is an open source tool for automatically configuring your displays and sound for a game or application from a single Windows Shortcut.
https://displaymagician.littlebitbig.com
GNU General Public License v3.0
433 stars 18 forks source link

Advanced Optimus - Display Mode Hotkey #101

Open cerahmed opened 2 years ago

cerahmed commented 2 years ago

Is your feature request related to a problem? Please describe.

I'm not sure if this is even possible, but I have a Legion 7i Gen 6 with RTX 3070 - with support for Advanced Optimus. I frequently manually switch between Optimus and Nvidia GPU Only settings in the Manage Display Mode section of Nvidia Control Panel (Screenshot#1), and I was hoping for weeks for a way to apply hotkeys to quickly switch between them.

Describe the solution you'd like

Create profiles with Optimus enabled, and another for Nvidia GPU Only and assign hotkeys to each to enable and disable Optimus on the fly.

Describe alternatives you've considered

I have already created the two profiles mentioned above. Switching to the Optimus profile works! And it correctly changes the Display Mode to Optimus and disables the dGPU.

However, because activating the Nvidia GPU Only in Nvidia Control Panel creates another monitor that is connected directly to the dGPU (screenshot#2), I cannot switch to the profile Nvidia GPU Only profile as this second monitor is disabled when currently in the Optimus mode.

In order for this to work, first Nvidia Display Mode must be switched to Nvidia GPU Only to make the "other monitor" enabled, then apply the profile - perhaps.

Additional context

I have created a log file that'd help you get a hang of what settings Advanced Optimus (i.e. Display Mode) gives with the following order:

1) Launched DisplayMagician with Optimus selected. 2) Saved a profile named Optimus. 3) Switched to Nvidia GPU Only in Nvidia Control Panel. 4) Saved a profile named dGPU. 5) Switched to Optimus profile .. works fine. 6) Tried switching to dGPU profile twice .. nothing happens, and the profile thumbnail shows a warning message that the display is not connected (for the reason discussed above in the alternatives section). 7) Saved the logs and attached it.

Screenshots

Screenshot#1 - Advanced Optimus / Display Mode in Nvidia Control Panel

Advanced Optimus

Screenshot#2 - The second monitor that Nvidia creates - connected to the dGPU directly.

Second Monitor

DisplayMagician-Support-20220427-0755.zip

terrymacdonald commented 2 years ago

This one might be too tricky to do. The logic for determining whether a profile can be used is based on being able to detect whether all screens are currently detected. Rather than change that I might be able to add a setting to always allow profile changes, thereby disabling the profile check. That would allow your changes to work even if the screen isn't there at present.

The next issue then becomes whether the NVIDIALibrary I've made actually records the setting you want to record. So for that you'll need to do some testing with NVIDIAInfo. NVIDIAInfo is a small testing program I made specifically for situations like this, to test the NVIDIALibrary functionality.

Can you please download the latest NVIDIAInfo from https://github.com/terrymacdonald/NVIDIAInfo/releases and then do the following:

Change to your Optimus display layout using NVIDIA control panel.

Open a PowerShell window and type NVIDIAInfo save optimus.cfg

Type NVIDIAInfo equal optimus.cfg to make sure that the configuration file matches the current display configuration. Those should be equal.

Change to your NVIDIA GPU display layout using NVIDIA control panel.

Go back to the PowerShell window and type NVIDIAInfo save nvidia.cfg

Type NVIDIAInfo equal nvidia.cfg to make sure that the configuration file matches the current display configuration. Those should be equal.

Type NVIDIAInfo equal optimus.cfg to make sure that the configuration file matches the current display configuration. Those should NOT be equal.

Ok, now we get to the actual tests were need to perform. Can NVIDIALibrary actually successfully swap between these configurations?

Type NVIDIAInfo load optimus.cfg to apply the Optimus configuration. Check if this worked by closing then reopening the NVIDIA control panel (to make sure it's updated).

If that worked, then try swapping profiles in the other direction. Type NVIDIAInfo load nvidia.cfg to apply the NVIDIA GPU configuration. Check if this worked by closing then reopening the NVIDIA control panel (to make sure it's updated).

If you can swap between those Optimus and NVIDIA GPU only modes using NVIDIAInfo, then I know the settings are being saved into the configuration and applied correctly already, which simplifies adding the functionality you want.

If it doesn't work then we have problems, v as we need to first extend the NVIDIALibrary support to handle that setting. And that means trying to find where the setting lives in the NVIDIA NVAPI, then figuring out how to interface with the required functions, building out the right NVIDIA memory structures, as well as patching everyone's configurations when the next version is released to avoid the need for everyone to rebuild their display profiles again.

So here's hoping NVIDIAInfo works :).

Please reply with the results of your testijg. Please also zip up the two NVIDIAInfo .CFG files you created and upload them here so that I can see what an Optimus configuration looks like.

Thanks Terry

cerahmed commented 2 years ago

Hey Terry,

Many thanks for the detailed response!

I hope Nvidia exposes these settings for developers to detect and modify, I have asked if that is possible in Reddit and Nvidia Forums with no luck :)

I went ahead and downloaded NVIDIAInfo and did the testing as requested:

1) I made Optimus as the Display Mode and saved the settings as optimus.cfg 2) I ran NVIDIAInfo equal optimus.cfg which returned true with the following result: The NVIDIA display settings in .\optimus.cfg and the currently active display configuration are equal.

3) I then made Nvidia GPU Only as the Display Mode and saved the settings as nvidia.cfg 4) I ran NVIDIAInfo equal nvidia.cfg which returned true with the following result: The NVIDIA display settings in .\nvidia.cfg and the currently active display configuration are equal.

5) I ran NVIDIAInfo equal nvidia.cfg also to check they are not equal with the following result: The NVIDIA display settings in .\optimus.cfg and the currently active display configuration are NOT equal.

6) Then I tried switching to optimus.cfg through NVIDIAInfo.exe load optimus.cfg, it works as expected! Attempting to apply NVIDIA display config from .\optimus.cfg NVIDIAInfo Display config successfully applied

7) However, switching the other way around DOES NOT WORK: ERROR - Cannot apply the NVIDIA display config in .\nvidia.cfg as it is not currently possible to use it.

It seems like the settings are indeed captured, however switching to nvidia.cfg seems to depend on the "hidden" monitor which becomes available only AFTER changing the Display Mode to Nvidia GPU Only.

cfg files.zip

terrymacdonald commented 2 years ago

My gut feel on that result is I think that the ispossible logic is checking that the screens are all there before attempting the switch.

Can you please next try to create a slightly different Opimus layout please and test the moving from an optimus config to another optimus config?

Based on the results of that I will know what sort of logic changes I will need to make to support Optimus mode.

Thanks

Terry

cerahmed commented 2 years ago

Hey Terry,

One thing to note here before proceeding with the new testing is that I'm only using my laptop's screen with no other screens connected. The "second" screen that shows up in the Display Settings is somewhat a virtual monitor that Nvidia creates for the same laptop screen.

In other words, screen#2 shown in screenshot#2 of the original post above is the same laptop monitor but internally connected directly to the laptop's dedicated RTX GPU; whereas the smaller monitor#1 that sits next to it is still the same laptop monitor that is internally connected to the integrated Intel CPU graphics.

When switching to Optimus Mode, only one monitor is shown in Windows Display Settings:

Optimus Mode

So it's not possible to change the location of this monitor while on Optimus Mode (as it is the only monitor there). I can however change other settings for this monitor (e.g. resolution, scale, HDR, etc.) .. would that be suitable for the testing?

cerahmed commented 2 years ago

So I changed the resolution of the laptop monitor (the only monitor) while in Optimus Mode to create a new optimus2.cfg.

optimus2.zip

terrymacdonald commented 2 years ago

Hi @cerahmed,

So I took some time this afternoon to go through the NVAPI functionality, and it didn't give me any hints unfortunately. But thanks to this post , I found this document: https://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf.

The PDF indicates that the Optimus devices use a multitude of ways to set the NVIDIA GPU live, and that one of the ways is via the NVIDIA 3D settings. There is apparently a Preferred graphics processor setting that is used to tell NVIDIA driver whether to use the NVIDIA GPU or the Integrated GPU.

Global profile settings are accessible from within the NVIDIA Control Panel, under the Manage 3D Settings->Global Settings tab. The Global Settings Preferred graphics processor attribute value can be either 1) Integrated, 2) High Performance, or 3) Autoselect. When the Preferred graphics processor attribute is set to Integrated, any application that has a profile which is set to Use global setting, or any application which does not have an associated profile will render using Integrated Graphics. Likewise, if set to High Performance, applications matching the same criteria will render using High Performance Graphics. If the attribute is set to Auto-select, then the global profile setting is ignored, and applications with profiles will render using the default value for the given application, and any other application will render using Integrated Graphics.

So, it looks as though I can start tracking the Driver settings through the DRS system by accessing the Global Profile, and then storing that global profile as part of the DisplayMagician Display Profiles. I should be able to then apply those global settings to the driver when the display profile is applied.

This will be a LOT of work to do, so at this stage I'm aiming to add DRS support in v2.4.0 which will be a little while away. I'll have to do a LOT of testing too in order to make sure it doesn't break everyone else's configurations. I need to add DRS support in order to add the features required by gretzer in #53 so this work will be applicable for both of you.

As for timeframes, I expect it will be many months before I'll be able to code up the functions, memory structures, and perform all the testing I need to do in order to support this for you. We'll also have to get a few other Optimus gaming notebook users to give that a go to see if it works for them too.

Fingers crossed! 🀞

Thanks Terry

cerahmed commented 2 years ago

Hey Terry,

Going through the excerpt you included in your comment , as well as looking at the date of the PDF document (2012), I think we're talking about two different things as Advanced Optimus (as opposed to original Optimus) is a new technology (Jarrod made a good explanation video distinguishing the two: here).

Optimus

1) Advanced Optimus is an evolution of the original Optimus; not exactly the same. Optimus -AFAIK- controls which GPU is being used for each application. It uses the app-specific (or the global settings) inside Nvidia's Control Panel 3D Settings to decide on which GPU should take the task - as mentioned in the excerpt above. However, even when the dedicated Nvidia GPU is being used, all the processed images by the dGPU passes through integrated GPU (e.g. Intel), which is responsible for displaying it to the monitor.

2) Nvidia came out with the MUX switch, which at hardware level, switches on/off Optimus, but REQUIRES A REBOOT to take effect. This means you can turn off Optimus, allowing Nvidia GPU to be directly connected to the monitor, without the iGPU being in between.

3) Recently NVidia came out with Advanced Optimus, which is a dynamic way of controlling the MUX switch without requiring a reboot. This is controlled in Nvidia Control Panel under Display Mode, not 3D Settings. When "Nvidia GPU Only" option is selected, the integrated GPU is disabled, and the laptop monitor becomes directly connected to the dedicated GPU.

So linking that back to the main issue, I was looking for a way to switch between the Optimus mode and the Nvidia GPU Only mode with hotkeys. Yes, Nvidia Control Panel has an Automatic Select option, but that sucks for reasons not noteworthy at this point.

I am sure this is something a little recent and might not be possible at the moment, but I thought of sharing it as a feature request to look into :)

P.S. I came across this page which concisely explains Advanced Optimus with some technical details.

Cheers.

terrymacdonald commented 2 years ago

Interesting! I wonder if the 3d setting is still there? Are you able to give me a screenshot of your 3d settings section?

I've not been able to find anything else in NVAPI that contains the settings, so I wonder if the setting is stored in the same place, but the NVIDIA driver handles it differently? In other words it might be stored in the same place, but under a different name that's not shown to the user through the 3d settings window, but is shown via the window you described?

The only way we'll know for sure is for me to write the Settings logic, and then is to try it on your computer and see if the DRS Settings change when Optimus is changed.

Thanks Terry

On Sun, 1 May 2022, 17:33 cerahmed, @.***> wrote:

Hey Terry,

Going through the excerpt you included in your comment , as well as looking at the date of the PDF document (2012), I think we're talking about two different things as Advanced Optimus (as opposed to original Optimus) is a new technology (Jarrod made a good explanation video distinguishing the two: here https://www.youtube.com/watch?v=h73dFLZgfh4&ab_channel=Jarrod%27sTech).

[image: Optimus] https://user-images.githubusercontent.com/21166481/166133223-bef7e880-295a-4b4e-9e3c-3cf6c452a683.png

1.

Advanced Optimus is an evolution of the original Optimus; not exactly the same. Optimus -AFAIK- controls which GPU is being used for each application. It uses the app-specific (or the global settings) inside Nvidia's Control Panel 3D Settings to decide on which GPU should take the task - as mentioned in the excerpt above. However, even when the dedicated Nvidia GPU is being used, all the processed images by the dGPU passes through integrated GPU (e.g. Intel), which is responsible for displaying it to the monitor. 2.

Nvidia came out with the MUX switch, which at hardware level, switches on/off Optimus, but REQUIRES A REBOOT to take effect. This means you can turn off Optimus, allowing Nvidia GPU to be directly connected to the monitor, without the iGPU being in between. 3.

Recently NVidia came out with Advanced Optimus, which is a dynamic way of controlling the MUX switch without requiring a reboot. This is controlled in Nvidia Control Panel under Display Mode, not 3D Settings. When "Nvidia GPU Only" option is selected, the integrated GPU is disabled, and the laptop monitor becomes directly connected to the dedicated GPU.

So linking that back to the main issue, I was looking for a way to switch between the Optimus mode and the Nvidia GPU Only mode with hotkeys. Yes, Nvidia Control Panel has an Automatic Select option, but that sucks for reasons not noteworthy at this point.

I am sure this is something a little recent and might not be possible at the moment, but I thought of sharing it as a feature request to look into :)

Cheers.

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/101#issuecomment-1114138519, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LBAR6L4CV6QYAKYUZTVHYJRPANCNFSM5UN4SCWA . You are receiving this because you were assigned.Message ID: @.***>

cerahmed commented 2 years ago

That might be possible! Here's my 3D Settings combined in one image:

3D Settings

The thing that raised my hopes was that the Optimus profile successfully changed the Display Mode from Nvidia GPU Only to Optimus. I'd love to test if ignoring the logic of checking the monitors and applying the profile regardless would be able to switch to nvidia.cfg correctly πŸ€”.

terrymacdonald commented 2 years ago

You did test that using NVIDIAInfo. NVIDIAInfo is the same library, and the Optimus CFG you tried to load that didn't work was that exact attempt.

That told me that the setting that changes the mode wasnt captured in the settings I have, and applying the display config didn't change the mode. I looked through the display profile captured, and it doesn't have any NVIDIA settings at all (only the default place holder) when it's in Optimus mode.

Based on what I read, isn't it better to leave it at Automatic mode anyway so that you can have the games run on the NVIDIA mode and the rest of the is use the integrated GPU?

Thanks Terry

On Sun, 1 May 2022, 19:11 cerahmed, @.***> wrote:

That might be possible! Here's my 3D Settings combined in one image:

[image: 3D Settings] https://user-images.githubusercontent.com/21166481/166135843-4c505f94-50ba-4f80-aeb8-f755e41f6dcb.jpg

The thing that raised my hopes was that the Optimus profile successfully changed the Display Mode from Nvidia GPU Only to Optimus. I'd love to test if ignoring the logic of checking the monitors and applying the profile regardless would be able to switch to nvidia.cfg correctly πŸ€”.

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/101#issuecomment-1114154538, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LGRGTAVLSTGYC7IMJTVHYVA7ANCNFSM5UN4SCWA . You are receiving this because you were assigned.Message ID: @.***>

cerahmed commented 2 years ago

Automatic Select detects when a game/app that you specify to use Nvidia GPU runs, then automatically switches to Nvidia GPU Only mode, meaning it will disable Intel Graphics at the same moment the game is launching. This caused many games to crash at startup (I believe due to the fact that the game is trying to reach Monitor#1 - which Nvidia is disabling at the same moment in order to enable Monitor#2 that is directly connected to the NVidia GPU) .. quite a mess :)

I found manually switching more reliable and gives better control over battery vs. performance.

Thanks Terry for this awesome project anyways! I will keep looking around for hints and workarounds, and I'll make sure to list them here once I find any πŸ‘

cerahmed commented 2 years ago

You did test that using NVIDIAInfo. NVIDIAInfo is the same library, and the Optimus CFG you tried to load that didn't work was that exact attempt.

Oh btw, optimus.cfg did work. The one that didn't work was nvidia.cfg. Upon testing, it seems that optimus.cfg profile worked because it enables Monitor#1, and the minute it is enabled (even if done manually by selecting Show Monitor#1 only - screenshot below) .. Nvidia switches back to Optimus and disconnects Monitor#2.

Second Monitor
terrymacdonald commented 2 years ago

@cerahmed time for an update. I now have it 'mostly' working within my test library of NVIDIAInfo, but I still have some more work to do to iron out a few bugs in the NVIDIALibrary. I have to give a massive shout out to Soroush Falahati (the author of NvAPIWrapper.net and HeliosDisplayManagement) as I wouldn't have been able to get the DRS settings functionality to work with his awesome code to use as a base. That man is a legend.

So, I'm getting closer to having a test version of NVIDIAInfo for you to try again with. When I've fixed the last few bugs we'll do some testing and see if any more bugs shake out. Then when it's working I then need to integrate the updated NVIDIALibrary into DisplayMagician. This will be tricky as I need to put in custom logic to specifically ignore the validation checks for when it detects an Optimus Screen. This may be difficult to do.

We're on track for this being in DisplayMagician v2.4.0 at this stage (unless it proves too difficult to accomplish).

Thanks Terry

cerahmed commented 2 years ago

This is indeed some good news! Will be waiting for your call for testing.

terrymacdonald commented 2 years ago

@cerahmed So I now have a new version of NVIDIAInfo to test that includes DRS Settings. It now stores them in .cfg files and loads and applies them. I need to find out what Optimus settings are available, and I currently can't do that as I'm having issues with the NvAPI_DRS_EnumAvailableSettingIds function. So the next best thing is for you to set the modes, and then send me the .cfg files made and the log files.

FYI I'm trying to build in some logic into DisplayMagician to specifically look for the Advanced Optimus mode changes and to then see if it can ignore the normal validation checks that it does and just assume it will work when going to/from Advanced Optimus mode. But before we test that, I need to find out what 3D settings are in your setup, and to check that NVIDIAInfo can apply them.

I've provided some instructions below which I'd like you to perform please:

Download NVIDIAInfo from here and extract to a folder: NVIDIAInfo-v1.7.4.zip

Open a PowerShell window, and change to the same folder that you extracted NVIDIAInfo into.

IMPORTANT - These instructions are likely to fail, so I need you to save/rename the NVIDIAInfo.log file as shown below. Each run of NVIDIAInfo overwrites the previous NVIDIAInfo.log, so I need you to rename it each time so it doesn't get overwritten. I need to see the log file entries to know what is broken.

Please complete the following instructions in this specific order:

Create your optimus display layout with your screens:

Next create a second windows display layout using NVIDIA Only setting:

Next swap back to the first optimus display layout:

Next swap back to the nvidia display layout:

Once that series of tests are done, please include the following files in a ZIP file, and upload the ZIP to this github issue through your web browser (click and drag the file from your File explorer into Github and it will upload):

I know this is a looooooong list of instructions, but it really is key to do them in order so that if there are errors then I can piece together what happened and find a fix.

Thanks Terry

cerahmed commented 2 years ago

Hello Terry,

Thanks a bunch for the detailed list of instructions!

I've done each of the listed instructions and attached below the results as requested. Also, below are the highlights of my testing:

1) All the equality tests failed:

2) Switching to optimus.cfg profile was successful. However, this might be because the script has disabled the "other screen" that Nvidia created after activating Nvidia GPU Only. Disabling this monitor actually switches back to Optimus, even if Optimus was not manually selected inside Nvidia Control panel. So I assume the switch was successful because of this, not because of actually switching to optimus.

3) Switching to nvidiaonly.cfg fails with error ERROR - Cannot apply the NVIDIA display config in .\nvidiaonly.cfg as it is not currently possible to use it.. Therefore I have not created nvidiaonly-reload.cfg profile as the switch wasn't successful. I assume this is because the "other screen" is not available as you've mentioned.

4) Note that I'm doing the entire testing having only the laptop monitor (I do not have any attached screens/peripherals) .. so whatever second screens appear in the logs is actually virtual monitors that Nvidia creates in the process of switching to Nvidia GPU Only - as I have previously explained in the issue.

Thanks again and waiting for the second test version πŸ‘Œ

Optimus Test Results.zip

terrymacdonald commented 2 years ago

Hi,

Yeah I figured this would happen the first time we ran the new version. The logs and CFG files should hopefully give me a better understanding of what I need to change.

The first goal is to be able to detect that there is a change from NVIDIA GPU only to Optimus or back again, as in that case I need to disable the screen detection validation logic.

Then the second goal is to actually make that change take place. I'm not so worried about that part right at the moment.... It's more that we need to get detection of Advanced Optimus happening and recorded in the CFG files. Once that's fine then the swapping should be easy enough.

Thanks Terry

On Sat, 14 May 2022, 22:43 cerahmed, @.***> wrote:

Hello Terry,

Thanks a bunch for the detailed list of instructions!

I've done each of the listed instructions and attached below the results are requested. Also, below are the highlights of my testing:

  1. All the equality tests failed:

    • Active Optimus profile DOES NOT equal optimus.cfg.
    • Active Nvidia Only profile DOES NOT equal nvidiaonly.cfg.
    • Active Optimus profile DOES NOT equal optimus.cfg as well.
    • And so on. None of the equality check returned true.
  2. Switching to optimus.cfg profile was successful. However, this might be because the script has disabled the "other screen" that Nvidia created after activating Nvidia GPU Only. Disabling this monitor actually switches back to Optimus, even if Optimus was not manually selected inside Nvidia Control panel. So I assume the switch was successful because of this, not because of actually switching to optimus.

  3. Switching to nvidiaonly.cfg fails with error ERROR - Cannot apply the NVIDIA display config in .\nvidiaonly.cfg as it is not currently possible to use it.. Therefore I have not created nvidiaonly-reload.cfg profile as the switch wasn't successful. I assume this is because the "other screen" is not available as you've mentioned.

  4. Note that I'm doing the entire testing having only the laptop monitor (I do not have any attached screens/peripherals) .. so whatever second screens appear in the logs is actually virtual monitors that Nvidia creates in the process of switching to Nvidia GPU Only - as I have previously explained in the issue.

Thanks again and waiting for the second test version πŸ‘Œ

Optimus Test Results.zip https://github.com/terrymacdonald/DisplayMagician/files/8692754/Optimus.Test.Results.zip

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/101#issuecomment-1126689191, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LE7Y4S2RNUA3CCWFS3VJ57VHANCNFSM5UN4SCWA . You are receiving this because you were assigned.Message ID: @.***>

terrymacdonald commented 2 years ago

@cerahmed So I've finally gotten time to go through your settings.

Not good news I'm afraid. There aren't any Optimus settings available in the DRS Settings (the 3D Settings in the NVIDIA Control Panel app). This unfortunately means that the apps that control that functionality are controlling them via a different NVAPI call. This is bad, because it looks like it's part of their proprietary part of the NVAPI which they don't document publicly 😞.

What this means is that I either need to:

NVIDIA have an NDA procedure that they use to mean that I wouldn't be able to provide the source code to DisplayMagician if I use their proprietary information in DisplayMagician. For this reason I won't sign the NDA with them, which also means I won't get access to their docs to help me use this stuff. Instead, I have to use other people's work or work it out myself. Disappointing.

So, I'm not sure there is much I can do on this at present. I'll spend some time looking around to see if there is some mention somewhere of nvapi commands. Hopefully someone did some testing or exploring themselves 🀞.

Thanks Terry

terrymacdonald commented 2 years ago

I've spent the last two days looking for new documentation or sourcecode in other languages that I can port over. I can't find anything that looks like it will work. I think I'll park this feature for a while and revisit it in a couple of months to see if I can dig up anything else about it.

Feel free to keep looking yourself @cerahmed if you'd like, and forward on anything you think may be of use. I really hope we find a thing that will just unlock this whole process.

Thanks Terry

cerahmed commented 2 years ago

Definitely I'll keep looking for a solution/workaround through Nvidia/Reddit forums; will keep you posted if I find anything worth reading πŸ‘

Many thanks.

terrymacdonald commented 2 years ago

Ah, good to know, thanks. Yep - changing HDR would work, or resolution or scale.

Sorry I misunderstood!

Thanks

Terry

terrymacdonald commented 2 years ago

Thanks for doing all the research. It does help having two people look at it.

I think the next step is for me to start adding the settings functionality, and then we'll revisit when we know more.

Thanks Terry

On Sun, 1 May 2022, 20:01 cerahmed, @.***> wrote:

You did test that using NVIDIAInfo. NVIDIAInfo is the same library, and the Optimus CFG you tried to load that didn't work was that exact attempt.

Oh btw, optimus.cfg did work. The one that didn't work was nvidia.cfg. Upon testing, it seems that optimus.cfg profile worked because it enables Monitor#1, and the minute it is enabled (even if done manually by selecting Show Monitor#1 only - screenshot below) .. Nvidia switches back to Optimus and disconnects Monitor#2.

[image: Second Monitor] https://user-images.githubusercontent.com/21166481/165445509-c81f48c6-46f8-425b-9572-86978fd1adf6.png

β€” Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/101#issuecomment-1114162679, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LB7KI3QDS7EDAH6HFTVHY25JANCNFSM5UN4SCWA . You are receiving this because you were assigned.Message ID: @.***>

terrymacdonald commented 8 months ago

@cerahmed It is possible that the new version of DisplayMagician may actually do this. Could you please try this latest version to see if it helps? DisplayMagicianSetup-v2.6.0.508.zip

terrymacdonald commented 8 months ago

@cerahmed The latest test version might be working actually working properly, and hopefully fixes your issue. Could you please test this version for me (rather than 2.6.0.508) so I know that it fixes your issue? If it does then I'll be able to close this issue as the fix will be part of the next full release.

DisplayMagicianSetup-V2.6.0.515-No-NvApi_SetDisplayConfig.zip

Thanks!

terrymacdonald commented 8 months ago

Oops I broke the setup with my previous version. This version has a corrected setup that should install everything properly.

DisplayMagicianSetup-v2.6.0.522-corrected-setup.zip

Thanks Terry

cerahmed commented 7 months ago

Hey @terrymacdonald,

Apologies for the late response, I was away from home and just returned back. I'll be able to test the new version and let you know if it fixes the issues I used to have.

Appreciate your ongoing support and your reach out! Many thanks.