itsmikethetech / Virtual-Display-Driver

Add virtual monitors to your windows 10/11 device! Works with VR, OBS, Sunshine, and/or any desktop sharing software.
1.94k stars 89 forks source link

How do i increase the nits from 1015 to 2000 ? #80

Open Space-Clustercompany opened 1 month ago

zjoasan commented 1 month ago

In present release, it is compile into the driver. If you wanna experiment, try downloading CRU(Custom Resolution Utility) Edit HDR static mete data, it's a whole science =)

Edit: CRU wont effect the driver per say, it will change registry stored properties.

alexdilley commented 1 month ago

Could you point to where this is baked in and how one can recompile the driver?

zjoasan commented 1 month ago

I feel compelled to warn you that in doing such actions may cause system instability or potential damage to your operating system, if you choose to continue, please do so at your own risk!

CRU, is a powerfull but perhaps crued tool. As many other tailored tools it does what it is supposed to do and it's good at it. You can change "nits" for example, but I have to say many of the options has a steep learning curve. Not as steep as locating a derived value in source code. If I needed this functionality now, it's the route I would go. Since any changes are not in source, but a layer above, it can mostly be undone. But if you are concerned about the possibility of damage you can do with CRU, the likely hood of damage is larger if you fiddle with driver source.

As a reminder, anything modified, we may not be able to assist with and you should only do this if you are experienced enough to do so.

alexdilley commented 1 month ago

Thanks for the sensible warning!

I think I managed to get it working using CRU by copying the HDR static metadata luminance values of an equivalent display.

Screenshot 2024-05-17 120102

The 'Max luminance' value does marry up to the documented formula:

Luminance value = 50*2^(CV/32)

(where CV is 160)

This appears successful 💥

Screenshot 2024-05-17 120339

Space-Clustercompany commented 1 month ago

Can you share 1600 nits file ?

alexdilley commented 1 month ago

Can you share 1600 nits file ?

File? All I did was use CRU to set the virtual display's HDR static metadata luminance values to:

160
107
1

I'd like to understand what 'Max frame-avg' refers to, if anyone can offer any insight. And whether 1 is the correct value for 'Min luminance' given the above linked document also stipulates:

Desired Content Min Luminance = (Desired Content Max Luminance)*((CV/255)^2) / 100

which would be 6.299115724721262 (for max peak of 1600 nits), unless I've misunderstood.

zjoasan commented 1 month ago

@alexdilley, Nice, I guess you changed they display since your screen shows another =) If you want "emulate" a remote TV/screen one should also be able to import/load the remote displays EDID onto the VDD via CRU (theoretically, never tried it).

alexdilley commented 1 month ago

The CRU screen was to show the values for the display of equivalent luminance. The Windows Display settings screen demos 1,600 nits on the virtual display having set those same figures for that in CRU.

I've actually switched to 139 for the 'Max frame-avg' value because that equates to 1,015 nits which is closest to the 1,000 nits full-screen brightness of the display. (I've assumed 'Max luminance' is the absolute peak luminance, and 'Max frame-avg' as the full-screen sustainable max luminance.) I don't suppose there's a discernible difference between these numbers, though!

zjoasan commented 1 month ago

That sums up about my understanding too, haven't had time to deep dive into this yet. Got three other issues in two other projects at the same time.