Aleksoid1978 / VideoRenderer

Внешний видео-рендерер
GNU General Public License v3.0
1.03k stars 115 forks source link

Regarding the bug that the renderer screen brightness is dimmed when ACM is turned on. #171

Closed RBHakureiReimu closed 1 month ago

RBHakureiReimu commented 1 month ago

When its new feature ACM (Auto Color Management) is turned on under Windows 11, the brightness of the image rendered by MPCVR is dimmed. Below is a comparison chart, with the noticeably brighter side of the picture being the effect of turning on ACM.

image

image

The following web link is the official Microsoft description of the ACM feature: https://support.microsoft.com/zh-cn/windows/windows-11%E4%B8%AD%E7%9A%84%E8%87%AA%E5%8A%A8%E9%A2%9C%E8%89%B2%E7%AE%A1%E7%90%86-64a4de7f-9c93-43ec-bdf1-3b12ffa0870b

Since this feature really eases the longstanding problem of color oversaturation in Windows, I hope the author can think of a way to make it compatible with the ACM feature. Also, my native language is not English, so I need to use machine translation when replying, which may lead to the reply may not be too timely, please forgive me.

RBHakureiReimu commented 1 month ago

I have determined by trial and error that the problem is not with the decoder, and by comparing it to the EVR I have determined that the problem is with the MPCVR. image Above is the EVR

image Above is the MPCVR

clsid2 commented 1 month ago

ACM is function for SDR screens. You should not use it because you have a HDR screen.

You should use Windows HDR Calibration tool to fix your colors.

RBHakureiReimu commented 1 month ago

ACM 是 SDR 屏幕的功能。你不应该使用它,因为你有一个HDR屏幕。

您应该使用 Windows HDR 校准工具来修复您的颜色。

My monitor doesn't support HDR, and I don't have it turned on.

RBHakureiReimu commented 1 month ago

ACM 是 SDR 屏幕的功能。你不应该使用它,因为你有一个HDR屏幕。

您应该使用 Windows HDR 校准工具来修复您的颜色。

I have a guess, could it be that when ACM is turned on, MPCVR incorrectly recognizes that the monitor is on HDR mode due to a bug, and so incorrectly maps the brightness of the screen

RBHakureiReimu commented 1 month ago

ACM 是 SDR 屏幕的功能。你不应该使用它,因为你有一个HDR屏幕。

您应该使用 Windows HDR 校准工具来修复您的颜色。

image

Aleksoid1978 commented 1 month ago

ACM 是 SDR 屏幕的功能。你不应该使用它,因为你有一个HDR屏幕。 您应该使用 Windows HDR 校准工具来修复您的颜色。

I have a guess, could it be that when ACM is turned on, MPCVR incorrectly recognizes that the monitor is on HDR mode due to a bug, and so incorrectly maps the brightness of the screen

MPC VR uses WinApi to detect HDR/SDR screen. For some reason your system reports that the screen is HDR, I can’t say why.

Here is a test program to determine some monitor parameters, launch a terminal/console, execute it and post its output: DisplayInfo.exe.zip

Aleksoid1978 commented 1 month ago

Next - set texture format to Auto.

RBHakureiReimu commented 1 month ago

Next - set texture format to Auto.

It has nothing to do with texture format, also I just tried again, I have two monitors, one hardware does not support HDR but the driver board incorrectly declares that it supports HDR, the other does not support HDR either and the driver board does not incorrectly declare it. On both monitors the MPCVR status message shows HDR turned off when ACM is turned off, and when ACM is turned on the MPCVR shows HDR turned on, so I think that when ACM is turned on the MPCVR incorrectly assumes that the system has HDR turned on, and thus performs an unwanted brightness mapping. This was verified by turning on ACM on my other monitor that does not support HDR and the brightness would not be mapped incorrectly!

Aleksoid1978 commented 1 month ago

Run DisplayInfo and give me output.

RBHakureiReimu commented 1 month ago

屏幕截图 2024-07-17 165701

The first output inside the shell results in the monitor with the brightness problem turning off the ACM output, the second output results in the monitor with normal brightness turning off the ACM output, the third output results in the monitor with the brightness problem turning on the ACM output, the fourth output is duplicated with the second output, and the fifth output results in the monitor with normal brightness turning on the ACM output.

Aleksoid1978 commented 1 month ago

Try this build. MpcVideoRenderer-0.8.4.2265_git2024.07.17-ee3721a.zip

RBHakureiReimu commented 1 month ago

试试这个版本。 MpcVideoRenderer-0.8.4.2265_git2024.07.17-ee3721a.zip

This new version outputs the recognition information without a problem, but the brightness is still dimmed, and when I was looking for possible causes of the dimming problem, I found that issue #167 under this project pointed out a similar problem, so I tried turning off the VSR technology provided by NVIDIA, and found that the brightness returns to normal when I turn off the VSR, but it doesn't appear to be a problem when I turn on the VSR and watch videos using a browser or VLC. However, when I turn on VSR and use a browser or VLC to watch a video, the brightness is not dimmed. At the same time, I also try to use LAV and MPC Video Decoder with MPCVR+VSR, and the brightness is still dimmed.

Aleksoid1978 commented 1 month ago

Show screenshot with statistics.

Aleksoid1978 commented 1 month ago

About VSR i can't help, because i don't have ACM options and can't check/debug. Just don't use VSR.

RBHakureiReimu commented 1 month ago

Show screenshot with statistics.

ACM是Windows 11 dev频道提供的,在“设置-系统-屏幕-颜色配置文件”中

Aleksoid1978 commented 1 month ago

Don't use dev windows, wait release.

RBHakureiReimu commented 1 month ago

Don't use dev windows, wait release.

Well, thank you very much, if the future official version of Windows 11 provides the ACM function, I also hope that you can try to solve this problem, after all, I always like the MPC series player, because MPV, VLC player is too cumbersome for me to set up, and finally, I wish you a happy life!

clsid2 commented 1 month ago

I remember VSR having issues with 10bit in the past as well (unrelated to ACM). Maybe it does not like the combination of 8bit video with 10bit texture?

Aleksoid1978 commented 1 month ago

VSR normal working with 10-bit video.

clsid2 commented 1 month ago

Yes, because NVIDIA fixed that in a driver update. But that is combination of 10bit video with 10bit texture. In screenshots above it was 8bit video with 10bit texture.