Post Reply
Custom Resolution Utility (CRU)
11-01-2020, 02:01 AM
Post: #5271
RE: Custom Resolution Utility (CRU)
(11-01-2020 12:23 AM)botounacruzeta Wrote:  Note: I installed INF file using Windows only, and updated Monitor driver using Device Manager. I only opened CRU to show you how it displays things after inf is loaded.
This is frustrating because I can't pinpoint any particular change that is triggering the problem.

Are you sure about this:
(10-31-2020 08:13 PM)botounacruzeta Wrote:  I could also open NVCPL after doing these simple steps:

-run reset-all.exe;
-restart GPU;
-In CRU, enable both "Include if slot available" options under "Range limits" and under "Serial number";
-import the CRU-exported settings (default ones) using CRU;
-restart GPU;
Importing the file should disable both the range limits and serial number since they aren't included in the file, so it should be exactly the same as just importing the file. You also said choosing "Import complete EDID" worked alone, but that shouldn't make any difference because there weren't any changes made to the non-imported parts. You also said enabling the range limits and serial number worked after installing the MonInfo .inf file and importing the CRU-exported settings, but then CRU would just make the same changes that it would without installing the .inf file.

What happens if you use Device Manager and right-click and choose "Scan for hardware changes" after restarting the driver?

The only other thing I can think of is try using DDU: https://www.wagnardsoft.com/display-driv...aller-ddu-

Then reinstall the driver, and try the non-DCH drivers.
Find all posts by this user
Quote this message in a reply
11-01-2020, 04:22 AM
Post: #5272
RE: Custom Resolution Utility (CRU)
(11-01-2020 02:01 AM)ToastyX Wrote:  
(11-01-2020 12:23 AM)botounacruzeta Wrote:  Note: I installed INF file using Windows only, and updated Monitor driver using Device Manager. I only opened CRU to show you how it displays things after inf is loaded.
This is frustrating because I can't pinpoint any particular change that is triggering the problem.

Are you sure about this:
(10-31-2020 08:13 PM)botounacruzeta Wrote:  I could also open NVCPL after doing these simple steps:

-run reset-all.exe;
-restart GPU;
-In CRU, enable both "Include if slot available" options under "Range limits" and under "Serial number";
-import the CRU-exported settings (default ones) using CRU;
-restart GPU;
Importing the file should disable both the range limits and serial number since they aren't included in the file, so it should be exactly the same as just importing the file. You also said choosing "Import complete EDID" worked alone, but that shouldn't make any difference because there weren't any changes made to the non-imported parts.
Yes, doing these steps allow NVCPL to work.

(11-01-2020 02:01 AM)ToastyX Wrote:  You also said enabling the range limits and serial number worked after installing the MonInfo .inf file and importing the CRU-exported settings, but then CRU would just make the same changes that it would without installing the .inf file.
Well, the above steps I did without installing the MonInfo .inf file, and it worked.

If I reset-all.exe, restart GPU, and import the CRU-exported settings, it works; (CRU doesn't show "(active) *", probably indicating nothing was changed)
If I reset-all.exe, restart GPU, delete a detailed resolution (using CRU), restart GPU, and import the CRU-exported settings ("Import complete EDID" either enabled or not), it doesn't work; (CRU shows "(active) *", probably indicating nothing was changed)

Where does CRU saves the settings? To registry?

I thought it could be a good idea to use CRU to import CRU-exported settings (default), save the registry entry, and then change something using CRU, re-import CRU-exported settings (default), and compare registry in both cases. Shouldn't they be the same, as in both cases, CRU imported the same file?

If you can tell me the registry values it updates, I'd gladly test it.

(11-01-2020 02:01 AM)ToastyX Wrote:  What happens if you use Device Manager and right-click and choose "Scan for hardware changes" after restarting the driver?
Device Manager only refreshes its view, and the monitor retains its name.

(11-01-2020 02:01 AM)ToastyX Wrote:  The only other thing I can think of is try using DDU: https://www.wagnardsoft.com/display-driv...aller-ddu-

Then reinstall the driver, and try the non-DCH drivers.

I'll try to do some more debugging before trying this, as it was a terrible experience installing the standard (non-DCH) drivers the last time I tried.
Find all posts by this user
Quote this message in a reply
11-01-2020, 01:36 PM
Post: #5273
RE: Custom Resolution Utility (CRU)
(11-01-2020 04:22 AM)botounacruzeta Wrote:  If I reset-all.exe, restart GPU, and import the CRU-exported settings, it works; (CRU doesn't show "(active) *", probably indicating nothing was changed)

You said the opposite before:

(10-30-2020 05:18 AM)botounacruzeta Wrote:  I've attached the default settings I'd exported from CRU right after using "reset-all.exe". (.inf format)

As a side note, I noticed when I import these settings (that should be the default ones) and restart the GPU, CRU shows a "*" to the right of the monitor name, meaning (at least I think so) the current settings are not the default ones.....but they are.



(11-01-2020 04:22 AM)botounacruzeta Wrote:  I thought it could be a good idea to use CRU to import CRU-exported settings (default), save the registry entry, and then change something using CRU, re-import CRU-exported settings (default), and compare registry in both cases. Shouldn't they be the same, as in both cases, CRU imported the same file?

If you can tell me the registry values it updates, I'd gladly test it.
Yes, they should be the same. Search the registry for EDID_OVERRIDE. That's all it adds.
Find all posts by this user
Quote this message in a reply
11-01-2020, 09:27 PM (Last edited: 11-01-2020, 09:32 PM by botounacruzeta)
Post: #5274
RE: Custom Resolution Utility (CRU)
(11-01-2020 01:36 PM)ToastyX Wrote:  
(11-01-2020 04:22 AM)botounacruzeta Wrote:  If I reset-all.exe, restart GPU, and import the CRU-exported settings, it works; (CRU doesn't show "(active) *", probably indicating nothing was changed)

You said the opposite before:

(10-30-2020 05:18 AM)botounacruzeta Wrote:  I've attached the default settings I'd exported from CRU right after using "reset-all.exe". (.inf format)

As a side note, I noticed when I import these settings (that should be the default ones) and restart the GPU, CRU shows a "*" to the right of the monitor name, meaning (at least I think so) the current settings are not the default ones.....but they are.

Yes, the problem is the first time I did it, I've enabled "Include if slot available" under "Range limits" and under "Serial number". I thought it was standard CRU procedure, that's why I didn't mentioned it before, sorry.
I'd read this tutorial
   
before using CRU, so I thought it was always needed.


(11-01-2020 01:36 PM)ToastyX Wrote:  
(11-01-2020 04:22 AM)botounacruzeta Wrote:  I thought it could be a good idea to use CRU to import CRU-exported settings (default), save the registry entry, and then change something using CRU, re-import CRU-exported settings (default), and compare registry in both cases. Shouldn't they be the same, as in both cases, CRU imported the same file?

If you can tell me the registry values it updates, I'd gladly test it.
Yes, they should be the same. Search the registry for EDID_OVERRIDE. That's all it adds.

Well, after some debugging that ONLY THE TRUE ANIMALS OF DEBUGGING would do, I've fixed the problem.

First, some details:

The original EDID seems to be located at

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\ACI27EC\1&8713bca&0&UID0\Device Parameters]

in the EDID key.

I then exported this key, for further comparison.

Then, I used CRU, removed a detailed resolution, restarted GPU, imported the CRU-exported settings (default ones), and restarted GPU. (without neither doing any change in "Include if slot available" options, nor choosing "Import complete EDID").

I then went to the CRU-created registry values at

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\ACI27EC\5&149c2d9f&23&UID4357\Device Parameters\EDID_OVERRIDE]

and there were these 6 keys:

"0"
"CRU_Name"
"CRU_Serial_Number"
"CRU_Range_Limits"
"CRU_Extensions"
"1"

I then compared "0" key overriden by CRU to the original "EDID" at

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\ACI27EC\1&8713bca&0&UID0\Device Parameters]

The reason I've thought about comparing them is the start bytes were the same.

But then, after some point, the bytes were different.

So the "fix" I did consisted in replacing the value of "0" key at

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\ACI27EC\5&149c2d9f&23&UID4357\Device Parameters\EDID_OVERRIDE]

with the value of the original EDID key found at

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\ACI27EC\1&8713bca&0&UID0\Device Parameters]

After restarting GPU, NVCPL works, and the resolution I needed to delete is not there. Everything fully working.


I tried to modify the ini file, replacing the

Quote:[Monitor.AddReg]
HKR,EDID_OVERRIDE,"0"

with the contents from original EDID, but it didn't work: CRU actually imports the file, but NVCPL doesn't work. I believe converting the registry value to the ones suitable for the inf file isn't so simple, so I gave up there.


A interesting thing is, if after applying the registry fix, I used CRU to export the working settings (detailed resolution deleted, and working NVCPL) in inf format, and then:

-reset-all.exe;
-restart GPU;
-Import working settings (detailed resolution deleted, and working NVCPL) inf file using CRU;
-restart GPU;

It doesn't work, and the value of "0" key at

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\ACI27EC\5&149c2d9f&23&UID4357\Device Parameters\EDID_OVERRIDE]

is different than before.

I don't know how CRU saves it's settings, but I assume the value of this key should be the same after settings have been imported.

So maybe something at

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\ACI27EC\5&149c2d9f&23&UID4357\Device Parameters\EDID_OVERRIDE]

"0" key is detected as "corrupted" by NCVPL after CRU saves it, I don't know....
Find all posts by this user
Quote this message in a reply
11-01-2020, 11:28 PM
Post: #5275
RE: Custom Resolution Utility (CRU)
(11-01-2020 09:27 PM)botounacruzeta Wrote:  The original EDID seems to be located at

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\ACI27EC\1&8713bca&0&UID0\Device Parameters]

in the EDID key.
That's the first block of the last active EDID, not necessarily the original. It will be the original after running reset-all.exe and restarting, but it won't be after creating an override and restarting.



(11-01-2020 09:27 PM)botounacruzeta Wrote:  The reason I've thought about comparing them is the start bytes were the same.

But then, after some point, the bytes were different.

The only differences are:

1. CRU always sets the image size in mm in the detailed resolutions to 1/4th the resolution for consistency because the size is not used for anything and I didn't want to add fields to the detailed resolutions dialog that have no effect. This shouldn't be a problem because it does the same thing to the detailed resolutions in the extension block, and the control panel opens fine with the edited extension block.

2. CRU doesn't include the serial number or range limits by default because they use up detailed resolution slots, and they have no effect except for the range limits with FreeSync monitors, in which case CRU includes the range limits by default. The PG279Q is a G-SYNC monitor, but G-SYNC doesn't require the range limits to function. If you enable the serial number and range limits, CRU always includes the range limits first, name second, and serial number third so the most important one is first, and the less important ones can be "pushed off" the list when adding detailed resolutions. The original EDID has the serial number first, range limits second, and name third, but the order shouldn't matter, and the bytes are the same for each.

3. CRU does not set the number of native resolutions in the extension block, while the original EDID has it set to 1. This is the small change that I had you test, so this isn't the problem.

Other than that, the checksums at the end of each block are different because of the changes, but they are correct. As far as I can tell, this is a driver bug because there is nothing wrong with the EDID override that CRU creates, and possibly any change to the first block would trigger the problem. CRU also makes these changes after importing a file, which is why the override is different from the original.
Find all posts by this user
Quote this message in a reply
11-02-2020, 01:08 AM
Post: #5276
RE: Custom Resolution Utility (CRU)
(11-01-2020 11:28 PM)ToastyX Wrote:  CRU always includes the range limits first, name second, and serial number third so the most important one is first, and the less important ones can be "pushed off" the list when adding detailed resolutions. The original EDID has the serial number first, range limits second, and name third, but the order shouldn't matter, and the bytes are the same for each.

While testing, I thought about the order, but CRU doesn't allow to order "serial", "range limits", and "name".

Anyway, now with the problem fixed (after I have applied the "fix"), CRU shows range limits first, name second, and serial number, although I don't know if it shows the real order, or it will always show in the order it will include (if I save).


(11-01-2020 11:28 PM)ToastyX Wrote:  3. CRU does not set the number of native resolutions in the extension block, while the original EDID has it set to 1. This is the small change that I had you test, so this isn't the problem.

Is it the first byte in the hex string of

[Monitor.AddReg]
HKR,EDID_OVERRIDE,"0"

in the inf file?

If yes, I tried to change it in the inf file, and CRU displayed an error message when importing the file (probably because of the checksum, that wasn't changed)

(11-01-2020 11:28 PM)ToastyX Wrote:  Other than that, the checksums at the end of each block are different because of the changes, but they are correct. As far as I can tell, this is a driver bug because there is nothing wrong with the EDID override that CRU creates, and possibly any change to the first block would trigger the problem. CRU also makes these changes after importing a file, which is why the override is different from the original.

I really don't know why this issue is rare. It can be a combination of driver and specific hardware or settings.

Because I suppose if it was the driver alone, a lot of CRU users will be complaining about it.

Maybe it's related to this specific monitor...I don't know.
Find all posts by this user
Quote this message in a reply
11-02-2020, 01:18 AM
Post: #5277
RE: Custom Resolution Utility (CRU)
(11-02-2020 01:08 AM)botounacruzeta Wrote:  Anyway, now with the problem fixed (after I have applied the "fix"), CRU shows range limits first, name second, and serial number, although I don't know if it shows the real order, or it will always show in the order it will include (if I save).
It always shows the order that it will save as. It's a bit awkward because CRU didn't originally have a way to edit these, or else I would have probably designed it to be like the data blocks in the extension block.



(11-02-2020 01:08 AM)botounacruzeta Wrote:  Is it the first byte in the hex string of

[Monitor.AddReg]
HKR,EDID_OVERRIDE,"0"
The "0" is the block number, and the 0x01 is the data type (REG_BINARY). Everything after that is the data. CRU doesn't care about the checksum because it will calculate it when saving anyway.
Find all posts by this user
Quote this message in a reply
11-04-2020, 06:35 PM
Post: #5278
RE: Custom Resolution Utility (CRU)
I have a displayport 1.4 to hdmi 2.1 adapter that I use to get 4k120hz on my tv. Nvidia control panel does not allow 4k120hz as a native resolution so I tried to use CRU to force it as it works as a custom resolution. When I try to set the refresh rate to 120hz at 4k on CRU the refresh rate turns red and does not allow me to set it. How do I fix this?
Find all posts by this user
Quote this message in a reply
11-04-2020, 07:37 PM
Post: #5279
RE: Custom Resolution Utility (CRU)
(11-04-2020 06:35 PM)Fourgoblin Wrote:  I have a displayport 1.4 to hdmi 2.1 adapter that I use to get 4k120hz on my tv. Nvidia control panel does not allow 4k120hz as a native resolution so I tried to use CRU to force it as it works as a custom resolution. When I try to set the refresh rate to 120hz at 4k on CRU the refresh rate turns red and does not allow me to set it. How do I fix this?
EDID detailed resolutions are limited to 655.35 MHz pixel clock. The only way to add 3840x2160 @ 120 Hz is either in a TV resolutions data block in a CEA-861 extension block, or as a detailed resolution in a DisplayID data block.
Find all posts by this user
Quote this message in a reply
11-04-2020, 09:00 PM (Last edited: 11-04-2020, 09:02 PM by artur7)
Post: #5280
RE: Custom Resolution Utility (CRU)
Hi everyone. Is it possible to enable HDR for non-HDR elements (like desktop) with the help of this software? When I enable HDR, it automatically decreases the brightness of the monitor if I have a solid black background, or that's more important if I watch a movie and there's a night sky for example. I mean, it decreases the brightness when there's something dark on the whole screen. I guess HDR just turns off for that moment and then turns on again. So... Is this a bug or a feature? The monitor: 15.6" IPS 1920x1080 FHD 240hz, nVidia GeForce RTX 2060 6 GB.
Find all posts by this user
Quote this message in a reply
 Post Reply


Forum Jump:


User(s) browsing this thread: 57 Guest(s)