Open jespertheend opened 4 years ago
It seems like you need to make use of IDXGIOutput6
to make this work.
https://stackoverflow.com/questions/56797583/how-to-capture-hdr-framebuffer-in-windows
I think this is just how the API handles HDR source right now, see here:
DXGI provides a surface that contains a current desktop image through the new IDXGIOutputDuplication::AcquireNextFrame method. The format of the desktop image is always DXGI_FORMAT_B8G8R8A8_UNORM no matter what the current display mode is.
try with WinAPI grabber just to see what happens, it could be same (if they do the same conversion), or even more broken (if they give the raw 2,10,10,10 bit components), or working I guess
Just found out that desktop grabbing does not work properly with "Win8 Desktop Duplication" mode and HDR enabled in Windows 10 (heavy colors flickering). Is this limitation/issue by design or can be fixed? BTW, "WinAPI" mode is working fine, but it makes a heavy load on Desktop Windows Manager process. Tnx.
Found related issue: https://github.com/psieg/Lightpack/issues/255
Maybe this one can help? https://docs.microsoft.com/en-us/windows/win32/api/dxgi1_5/ns-dxgi1_5-dxgi_hdr_metadata_hdr10
When enabling HDR color in the windows 10 settings, bright colors get clipped. It appears like Teamviewer is having similar issues. You can see an image of what a color picker looks like in teamviewer bewow.
It seems like Prismatik is showing the same behaviour. As soon as a color becomes brighter than about rgb 127,127,127 it shows up as completely white in the device tab in prismatik.
I'm not sure if there is a way to fix this, or if it's an issue with the Desktop Duplication API with no workaround.