protonscr

Support HDR games now that we have NV Vulkan drv with HDR support..

dxvkclosed wontfix
doitsujin/dxvk#615 · opened 2018-08-31 by oscarbg · updated 2022-10-02 · 7 comments · github
Ooscarbg 2018-08-31 github

Hi,
today NV released a dev driver which seems to expose VK HDR support (sadly Windows only):
August 31st, 2018 - Windows 399.17, Linux 396.54.02
New Extensions:
VK_EXT_swapchain_colorspace (Windows only)
VK_EXT_hdr_metadata (Windows only)
Altough DXVK is meant for Linux, as DXVK can be used also on Windows, no pressure but perhaps it's good good to start implemeting it?
sadly first HDR games were using NVAPI extensions (in that case HDR NVAPI extensions should be added to Wine-Staging which has "some" NVAPI support)..
anyway by now we have some AAA games using DXGI HDR if not mistaken like Mass Effect Andromeda or Battlefield 1, right?

Ddoitsujin maintainer 2018-09-01 github

What's the point if this isn't supported on Linux? How does this even work in D3D/DXGI?

Wine's nvapi implementation conflicts with dxvk as well, so that doesn't help. Also, I don't have a HDR setup to test this with.

Ooscarbg 2018-09-01 github

I think Windows support only limitation maybe temporal.. this extensions are also on Shield TV (Android)..
no expert on HDR but:
HDR and WCG APIs:
https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/dxgi-1-6-improvements
https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/high-dynamic-range-and-wide-color-gamut

In order to enable HDR and WCG in your app, refer to the following APIs.

    IDXGISwapChain4::SetHDRMetaData : sets High Dynamic Range (HDR) and Wide Color Gamut (WCG) header metadata.
    DXGI_HDR_METADATA_HDR10 : structure containing the metadata settings.
    DXGI_HDR_METADATA_TYPE : enum identifying the type of header metadata.
    DXGI_COLOR_SPACE_TYPE : defines the colorspace (sRGB, YCbCr), color range, gamma settings, and other details of the color format.

some minimal samples:
first D3D12 API but almost all HDR code is in DXGI calls which will OK also for D3D11
https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12HDR
here you have also D3D11 HDR sample:
https://github.com/Microsoft/Xbox-ATG-Samples/tree/master/PCSamples/Graphics/SimpleHDR_PC
in addition to D3D12:
https://github.com/Microsoft/Xbox-ATG-Samples/tree/master/PCSamples/Graphics/SimpleHDR_PC12

Ddoitsujin maintainer 2018-09-01 github

Yeah, this requires extremely new DXGI revisions. Supporting those properly is next to impossible.

Ooscarbg 2018-09-01 github

no problem.. only wanted to know if was possible to "easily" add or not..
thanks..

Ooscarbg 2019-07-05 github

just pointing out that latest AMDVLK supports VK_EXT_hdr_metadata on Linux!
so first HDR Vulkan driver..
@doitsujin can share, if that fact, updates your interest to implement HDR on DXVK?
curiously today also tested latest Unity 2019.3.0a8 adds Windows D3D11 and D3D12 HDR support.. so maybe we may see Unity indie titles supporting HDR not too far away..
EDIT: "Add HDR10 support for direct display mode, enable EXT_HDR_METADATA"
seems HDR on AMDVLK requires direct display mode.. DXVK is able to use direct display mode extension?

Vvalentyn-l 2022-10-01 github

Sorry to be writing on a supposedly Closed issue, however I am really wishing for HDR support in DXVK due to its great benefits to performance on Windows in select game (eg. Assassin's Creed Origins). This game supports HDR and it would be lovely if the developers of DXVK could implement an optional config flag for HDR for those that really want it. :)

BBlisto91 2022-10-02 github

Hi there.
This isn't a priority for the devs as HDR is pretty much not supported on Linux at the moment (as far as i know) and so i don't think any of the devs even have the hardware for it.
Also see https://github.com/doitsujin/dxvk/issues/2832

Upstream links