[MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Everything about displays and monitors. 120Hz, 144Hz, 240Hz, 4K, 1440p, input lag, display shopping, monitor purchase decisions, compare, versus, debate, and more. Questions? Just ask!
Post Reply
NovHak
Posts: 5
Joined: 16 May 2021, 14:38

[MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Post by NovHak » 16 May 2021, 15:09

Dear forum readers,

I'm the owner of an MSI GP76 10UG laptop, with a 144Hz-capable monitor. So everything is nice and all, except that when gaming @60Hz (yeah, please don't kill me) I notice strange artefacts. According to your overdrive test, it seems to be what you call a corona artefact.

MSI has an app called Dragon Center, where it's possible to disable/enable display overdrive (without any additional parameter btw, only a toggle) ; and indeed, once disabled, the artefacts are gone.

My problem is, I don't like this app very much, as it does many other things too that I don't really want. Moreover, it's not available on Linux... And strangely, display overdrive is enabled by default, so currently, the only way for me to disable overdrive is to use this app.

That's why I'm looking for alternate solutions to enable/disable display overdrive. After some research, I found my monitor is an Innolux N173HCE-G33. A special app maybe ? A BIOS setting ? (I searched and didn't find any though, even in the hidden advanced options menu)

Another idea comes to my mind, since it's enabled by default, could that be factory-defined on the display itself, or maybe during ACPI initialisation ? (in which case dumping the tables could give some info)

Do you forum readers have any experience on the subject, by any chance ?

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: [MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Post by Chief Blur Buster » 16 May 2021, 15:58

Most of the time, display settings controlled by PC applications are controlled something called VESA DDC/CI commands controlling VCP / MCCS commands.

Glossary
DDC = Display Data Channel
DDC/CI = Display Data Channel Command Interface
MCCS - Monitor Command Control Set
VCP = Virtual Control Panel

Try downloading Entech Taiwan's SoftMCCS and finding out which VCP register number (0x00 through 0xFF) that controls the overdrive. Sometimes it's one of those undocumented user-defined registers (0xE0 to 0xFF).

Optional: To software developers
If you're a software developer, the Windows API to use is SetVCPFeature() -- once you've figured out the 8-bit register number and what 8-bit or 16-bit values it accepts. Don't forget to query your monitor list (due to multimonitor...) and adjust the correct monitor from your custom built app. However for an MSI laptop specific app, you can use 0/null to refer to the default primary monitor I believe -- as long as no extra monitors are plugged into the laptop and configured as primary
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

NovHak
Posts: 5
Joined: 16 May 2021, 14:38

Re: [MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Post by NovHak » 16 May 2021, 22:41

Thanks for your reply !

I've seen similar advices of yours to someone else on another post in this forum. I was actually hoping for the miracle of someone having more specific information, especially considering that trying random VCP registers and values may have adverse effects, possibly rendering my monitor unusable, maybe ?

But now that I think of it, I'm not that blind, since instead of writing blindly, I can activate/deactivate overdrive w/Dragon Center and see what registers have changed, I suppose. I will try, and come back with the results !

NovHak
Posts: 5
Joined: 16 May 2021, 14:38

Re: [MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Post by NovHak » 17 May 2021, 11:22

This doesn't smell good :
Capture d’écran 2021-05-17 181030.png
Capture d’écran 2021-05-17 181030.png (47.08 KiB) Viewed 4871 times
Did you ever see a laptop panel that supports DDC/CI ? Could it be that the SoftMCCS driver doesn't detect capabilities properly ?

I contacted MSI support about this, I hope they will be able to give me some info. They obviously have it since they were able to implement it in Dragon Center, but the inability to get clear specs isn't something that's restricted to Microsoft, unfortunately...

NovHak
Posts: 5
Joined: 16 May 2021, 14:38

Re: [MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Post by NovHak » 18 May 2021, 22:47

Fortunately, I managed to find some more info !

Display overdrive on the MSI GP76 10UG seems to be configured through the embedded controller (EC). Activating/deactivating is a matter of setting/clearing bit 4 at EC address 0x2E (bit 0 being the least significant).

On Linux, that could pose difficulties with secure boot enabled, unless there's already an ACPI method for it, and that has a good probability, fortunately.

I didn't confirm all this since I didn't install Linux on my laptop yet, for now I'm trying to achieve the same on Windows in powershell through a WMI method that seems to be already existing, but currently I always get Type mismatch errors, this is annoying. For those interested, the targeted WMI method is the following :

Namespace : root/wmi
Class : MSI_ACPI
Method : Get_Device

I should use this to read EC address 0x2E, then invoke the Set_Data method to rewrite the value with bit 4 set/cleared.

I will come back later once I've got more consistent results.

NovHak
Posts: 5
Joined: 16 May 2021, 14:38

Re: [MSI GP76 laptop] : How shall I disable overdrive on my monitor ?

Post by NovHak » 13 Jul 2021, 12:51

I'm back just to confirm that indeed, setting/clearing bit 4 at EC address 0x2E enables/disables display overdrive. However, it seems the value whose byte 4 should be set/cleared has to be read through an EC command named Get_Device, then its bit 4 has to be cleared/set and the value written at EC address 0x2E. From what I understand, nothing says that reading at this address will get the same result. That's what I'm doing though, and didn't notice any problems for now, I can finally disable/enable display overdrive on my Linux, but it's not the way to go.

In case someone is interested, I can post the kernel module code I wrote to achieve this. Using the in-tree ec_sys module won't work if secure boot is on.

Post Reply