Main > Software Forum

[Discontinued][17-09-22] RatRefresh - refresh rate switcher, stops LCD tearing

<< < (26/31) > >>

Rataplan626:
I've uploaded 0.15b4, it defaults back to 2 seconds delay before restarting the display driver, and it introduces a parameter -delay <ms> to change the delay. I would actually be surprised if the delay makes things not work. But it might, the delay was not in there for nothing. When I first just stopped and restarted without any delay, it didn't work either on my cab. Maybe 1500ms is just on the edge of working / not working on my system as it's so unpredictable. Then again, on my actual cab 0.15 works just fine, all versions are tested on my cab before shipping them out ;-)

On my home Intel NUC, old 5th gen one, it even works fine with delay 0. But I noticed on that machine when restarting videodrivers, I don't get the Windows hardware disconnected / connected sound, which I DO get on all other machines I tried on. So there's definitely some differences in how systems or different drivers behave. Also, when I remove all values, or even remove my display drivers and monitors completely and let them re-install, my refresh rate seems to be 59.850, were one might expect 60. So either that ufotest site is off by a bit, or my Intel iGPU doesn't actually do 60Hz when it's supposed to.

Anyway, as you saw with procmon (it's so helpful to have people 'on board' that can help debug :cheers: to both of you) when you use -norestart and -usecustomedid, you can see the exact same values are written by 0.15 as 0.11. So please report on 0.15b4 :) I'd say, start with RatRefresh -remove, and then use RatRefresh -refresh <something> to start with. If that still doesn't work, use -remove again, and then setup CRU as you did with 0.11, and use RatRefresh -usecustomedid -refresh <something>, eventually with -delay 5000 or so to be sure.

trevorp:
Grabbing coffee, so time for a quick update.

Getting 0.11 to work, then jumping to 0.15b4 still doesn't work with any delay.  Darn, I was hoping it was that easy.

Also of note, once I use 0.15b4, 0.11 ceases to work.  (when I say ceases to work, it comes back to the same 59.172 Hz as always) I have to delete the monitor and display adapter from control panel, reboot (not sure if necessary) and run CRU again.

I did try 0.11 -> 0.15b4 without customedid, then with customedid first, and that didn't work and borked 0.11.

I then did 0.11 -> 0.15b4 with customedid which didn't work, and also borked 0.11.

Will do more in-depth testing at lunch, just wanted to drop a note to let you know where I'm at.

Glad you got your account back as well.

Rataplan626:
*sigh* it's getting out of hand :-)
Observations: I tried on three different systems to use CRU, and then use RatRefresh 0.11, set everything up fresh again, use CRU, run RatRefresh 0.15 -usecustomedid and the resulting custom edid was 100% identical in all ocasions, and on those machines worked fine as such.

More observations: when you delete monitors from Windows, and have the redetected, the monitors own EDID value that's written at for example 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\SDC424A\4&25831cb2&0&UID265988\Device Parameters', contains the EDID of the last used custom resolution, ie the EDID of the last refresh rate. If your last rate was 58.850, delete monitors and redetect them, the resulting EDID will be for 58.850Hz.
The same happens when you delete the monitors EDID and restart the video driver --> resulting EDID contains the last used refreshrate. Probably this happens as the monitors EDID is actually overwritten, hence it reports that EDID when you request it. So far for me to get back to the monitors actual EDID is removing monitors, removing the display adapter and then redetect things.
This results in strange behaviour. So parameter -remove now no longer removes the monitors own EDID anymore, only custom EDID.

Still I've not been able to even think of why 0.15 would not work to change a CRU generated value when -usecustomedid is used. To help myself I improved the -query parameter, which now shows more information on the monitors own edid and the custom edid. Link to 0.15b5 below.

So what you could verify is run RatRefresh -query, and see if the monitors own EDID makes any sense. Usually the refreshrate should be 60 or 75 or whatever you have. If the original value is not correct, remove monitors (remember to remove hidden monitors too) and display adapter, and then let windows scan for new hardware. All should be recreated correctly now. And on my systems here at home, they al work fine then without having to create a resolution with CRU.

0.15b5

trevorp:

--- Code: ---D:\Utilities\RatRefresh_0.15b5>RatRefresh.exe -query
RatRefresh 0.15 debug build 5

Monitors original EDID values:
Decoded EDID values:

HexCurrentPixelClock:      5fad
CurrentPixelClock:         24493
HexHorizontalResolution:   0a00
HorizontalResolution:      2560
HexVerticalResolution:     0640
VerticalResolution:        1600
HexVerticalBlankingLines:  002e
VerticalBlankingLines:     46
TotalHorizontalResolution: 2720
TotalVerticalResolution:   1646
Refreshrate:               54.707
Minimum refreshrate:       82
Maximum refreshrate:       70

Checksum stored in EDID: e2
Calculated Checksum:     e2
Featureblock 4 minimum and maximum refreshrate
Minimum: 82
Maximum: 70
Featureblock 3 minimum and maximum refreshrate
Minimum: 68
Maximum: 69
Featureblock 2 minimum and maximum refreshrate
Minimum: 49
Maximum: 86
Featureblock 1 minimum and maximum refreshrate
Minimum: 64
Maximum: 46
Monitors custom EDID values:
Decoded EDID values:

HexCurrentPixelClock:      5fad
CurrentPixelClock:         24493
HexHorizontalResolution:   0a00
HorizontalResolution:      2560
HexVerticalResolution:     0640
VerticalResolution:        1600
HexVerticalBlankingLines:  002e
VerticalBlankingLines:     46
TotalHorizontalResolution: 2720
TotalVerticalResolution:   1646
Refreshrate:               54.707
Minimum refreshrate:       82
Maximum refreshrate:       70

Checksum stored in EDID: e2
Calculated Checksum:     e2
Featureblock 4 minimum and maximum refreshrate
Minimum: 82
Maximum: 70
Featureblock 3 minimum and maximum refreshrate
Minimum: 68
Maximum: 69
Featureblock 2 minimum and maximum refreshrate
Minimum: 49
Maximum: 86
Featureblock 1 minimum and maximum refreshrate
Minimum: 64
Maximum: 46

--- End code ---

54.707 is normal, last time I ran 0.11 that's the rate I picked.

I removed all monitors, including hidden ones, and all display adapters.

Afterwards, I see two U3014 detected, one hidden, one not.



After doing ratrefresh -setup and calling for a rate of 58.123, my rate still goes back to the 59.972 I always see.


--- Code: ---D:\Utilities\RatRefresh_0.15b5>ratrefresh -setup
RatRefresh 0.15 debug build 5

Detected video drivers:
Name:                         NVIDIA GeForce GTX 780
Device ID:                    PCI\VEN_10DE&DEV_1004&SUBSYS_84691043&REV_A1\4&80E7924&0&0008

Detected active monitors:
Monitor number:               1
Monitor description:          DELL U3014
Serial number:                RF57P44EA4NL
Monitor InstanceID:           DISPLAY\DEL4083\5&67fc0b1&9&UID4353
Monitor DevicePath:
Monitor active:               True
HorizontalResolution:         2560
VerticalResolution:           1600
Minimum reported refreshrate: 49
Maximum reported refreshrate: 86


What monitor number to use?
1
edid.txt file written.

--- End code ---


--- Code: ---D:\Utilities\RatRefresh_0.15b5>ratrefresh -debug -refresh 58.123 -delay 2500
RatRefresh 0.15 debug build 5

-min Not supplied. Using EDID supplied value Of 49
-max Not supplied. Using EDID supplied value Of 86
Press key to continue.

Key SYSTEM\CurrentControlSet\Enum\DISPLAY\DEL4083\5&67fc0b1&9&UID4353\Device Parameters\EDID_OVERRIDE
WantedRefreshRate 58.123
HexCurrentPixelClock: 6227
CurrentPixelClock: 25127
HexHorizontalResolution: 0a00
HorizontalResolution: 2560
HexVerticalResolution: 0640
VerticalResolution: 1600
HexVerticalBlankingLines: 002e
VerticalBlankingLines: 46
TotalHorizontalResolution: 2720
TotalVerticalResolution: 1646
CalculatedPixelClock 26022
HexCalculatedPixelClock 65a6
ReversedEdidHexCalculatedPixelClock a665
TotalChecksum 9631
Checksum 97
HexChecksum 61

Restarting videodriver with a delay of 2500ms

done
Press key to continue.

--- End code ---

CRU shows the two entries with the custom modes listed above.





It still seems like it's updating one custom edid and using a different.

When I look back in the registry, the two entries in CRU correspond to the one you detect:


--- Code: ---HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\DEL4083\5&67fc0b1&9&UID4353

--- End code ---

and


--- Code: ---HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\DEL4083\1&8713bca&0&UID0

--- End code ---

I'm going to format my NUC and toss win10 on it later today.  I want to see if it's my monitor causing this.  It won't eliminate the nvidia GPU, but at least will eliminate the monitor.

I've got an AMD I can toss in there too but that requires a bunch of disassembly, will start with the easy stuff first.

Rataplan626:
I wouldn't reinstall, don't think that'll help. What DOES help is that I now see ratrefresh writes to the non-active monitor. Maybe thats the issue here. I'll try to find out what or why or when the non-active monitor exists. I think I can test that myself over here.

Still I don't see why .15 doesnt work after fully resetting everything and using -usecustomedid after usig cru to create a custom resolution.

Btw as far asI know the 1&8713bca&0&UID0 ID is  the generic monitor on the default graphics adapter you'll get when you remove the real devices from device manager.

[Edit]
I wonder, does CRU write in different registry keys when creating a resolution for either of the two Dells it shows?
Could you maybe export registry after creating for active, and then export after creating resolution for inactive?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version