You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is no way to enable HDR by api on supported platforms.
I'm conducting some initial research about how hard it is to add it.
What are the supported platforms?!?
Windows 10 and later versions with dx12, dx11 and Vulkan. (Baldur's gate 3 and ghost recon breakpoint supports hdr both on dx11 and Vulkan ).
Linux: No. It is lagging implementing hdr.
Switch: No. on Switch 1 is indeed impossible due to old hdmi interface.
OSX: It has hdr display support and metal offer hdr output, but don't know any actual implementation.
IOS : Maybe with Metal.
Android : Maybe with Vulkan (limited to few brands and chipsets???).
PS4 pro PS5 : Yes don't know details.
XBOX series : Yes as for Windows through dx12 plus some games featuring dolby vision.
Future Platforms: Ideally in future every platform will support hdr of some kind.
A proper solution will provide in kinc just the bare minimum to enable it without direct calls to platform specific code.
hdr has some requirements about render target formats, metadata generally set on the swapchain and comes with tools for propert tone mapping and color management.
while the metadata and render target setup are something kinc could provide, shaders and other high level code should be provided by the user.
Ideally a sample could be made in kha and or kore to show a mvp implementation of the full pipeline.A minimal sample could simply render a raw hdr texture to screen with no further processing just to evaluate the visual parity with hdr image viewer.
hdr could be enabled for any arbitrary Color-Space or some platforms/graphic apis enforce/limit the color-space choice?
is there something to set at a low level to enable certain color-spaces on specific platform/api?
Formats enabling hdr provide:
Color: RGB or YCbCr (luminance chroma)
Ranges: in integer from 8 10 and 12bit or 255 1023 4095 colors per channel full or limited (especially used in video to adjust white and black levels)
Gamma : 1.0 , 2.2 and ST.2084 (Perceptual Quantization or PQ)
Primaries : BT.601, BT.709, BT.2020 ( source directx manual) where is P3 isn't it commonly used ?!?
Transfer Matrix : same as primaries ?!?
Basic color setup is sRgb BT.709 primaries no wide color gamut, but still better than sdr due to 10bit.
Usual output render target format are:
10 10 10 2 for hdr10
16 16 16 16 for scRGB
Implementation Specifics:
Dx11:
to create an hdr enabled shapchain:
swapChainDesc.Format = DXGI_FORMAT_R10G10B10A2_UNORM;
SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
AlphaMode = DXGI_ALPHA_MODE_IGNORE;
D3D11CreateDeviceAndSwapChain with
D3D11_CREATE_DEVICE_BGRA_SUPPORT
DXGI_FORMAT_R10G10B10A2_UNORM and
DXGI_FORMAT_R16G16B16A16_FLOAT
implies the use of color in wide gamut?!?
Dx12
Dx12 provides IDXGISwapChain3::SetColorSpace1 enumerated formats also supporting custom format (through additional api?!?)
There is no way to enable HDR by api on supported platforms.
I'm conducting some initial research about how hard it is to add it.
What are the supported platforms?!?
A proper solution will provide in kinc just the bare minimum to enable it without direct calls to platform specific code.
hdr has some requirements about render target formats, metadata generally set on the swapchain and comes with tools for propert tone mapping and color management.
while the metadata and render target setup are something kinc could provide, shaders and other high level code should be provided by the user.
Ideally a sample could be made in kha and or kore to show a mvp implementation of the full pipeline.A minimal sample could simply render a raw hdr texture to screen with no further processing just to evaluate the visual parity with hdr image viewer.
hdr could be enabled for any arbitrary Color-Space or some platforms/graphic apis enforce/limit the color-space choice?
is there something to set at a low level to enable certain color-spaces on specific platform/api?
Formats enabling hdr provide:
Basic color setup is sRgb BT.709 primaries no wide color gamut, but still better than sdr due to 10bit.
Usual output render target format are:
10 10 10 2 for hdr10
16 16 16 16 for scRGB
Implementation Specifics:
Dx12 provides IDXGISwapChain3::SetColorSpace1 enumerated formats also supporting custom format (through additional api?!?)
Open issues :
Is there a minimum set of formats that every platform/ graphic target supports?
Dolby Vision for games(some xbox titles seems to feature it e.g. gears5).
The text was updated successfully, but these errors were encountered: