Advertisement

Back buffer DXGI_FORMAT

Started by October 19, 2017 08:59 AM
7 comments, last by matt77hias 7 years, 3 months ago

Should one prefer DXGI_FORMAT_R10G10B10A2_UNORM over DXGI_FORMAT_R8G8B8A8_UNORM for the back buffer?

The alpha is a wasted channel anyway?

🧙

Certainly no harm in using a 10-bit back buffer. A lot of displays these days will understand a 10-bit signal. Some will have the ability to reproduce 2^30 colours, others might use the extra information to 'dither' the extra levels with their 8-bit capability.

Just remember to be gamma correct when you write to it, as there's no _SRGB version of the 10-bit format.

Adam Miles - Principal Software Development Engineer - Microsoft Xbox Advanced Technology Group

Advertisement

The most common display output standard at the moment is 8-bit sRGB, so an 8-bit output format is perfectly fine.

New "UHD" TV's and monitors are coming out with "wide color gamut" and "high dynamic range", which supports 10 bits per channel... however, the very definition of Red/Green/Blue (wavelengths) is different to the old standard and the gamma/curve is completely different too. Therefore if you displayed old content on these screens, it would look completely broken! So, to avoid that, all these new monitors actually default to the old TV standards by defaults and require programs to opt-in to the new colour space. I wouldn't be surprised if in this default compatibility mode, they still work with 8-bit colour instead of the 10/12 bit that they're capable of.

If you're interested in WCG/HDR, check out this MSDN link. If you happen to own a new "HDR" TV it will be a fun exercise to add support for the new colour space to your game ;)

3 minutes ago, Hodgman said:

If you're interested in WCG/HDR, check out this MSDN link. If you happen to own a new "HDR" TV it will be a fun exercise to add support for the new colour space to your game

Read something similar in the tone mapping section of DirectXTK:

"A Rec.709 to Rec.2020 color primary rotation and ST.2084 display curve is applied for HDR10 output."

🧙

Though, it looks perceptually the same on my monitor (without changing my tone mapping).

🧙

Don't confuse a 10-bit SRGB/Rec709 output with 10-bit HDR/Rec2020.

The fact that you're now using a 10-bit swap chain and potentially getting a 10-bit output is a completely separate and unrelated matter from whether you're using HDR or Rec.2020.

Adam Miles - Principal Software Development Engineer - Microsoft Xbox Advanced Technology Group

Advertisement

There is also chance that the OS ( windows 10 shenanigan here ) have to do something to your buffer ( compositing widgets like audio volume ) and convert it back to 16161616F linear as they kind of killed the exclusive fullscreen mode ( at least dx12 ) :(

Worse, with HDR, because they may do that, but don't support REC2020 color space with a 16F swapchain, Microsoft told us to just convert the Rec2020 to Rec709 and keep it unclamped ( negative values and >1 values ) instead of…

38 minutes ago, galop1n said:

windows 10

I still have three pure Windows 8.1 PCs (Windows 10 didn't conquer a byte though tried many times) :D

40 minutes ago, galop1n said:

There is also chance that the OS ( windows 10 shenanigan here ) have to do something to your buffer ( compositing widgets like audio volume ) and convert it back to 16161616F linear as they kind of killed the exclusive fullscreen mode ( at least dx12 ) :(

Worse, with HDR, because they may do that, but don't support REC2020 color space with a 16F swapchain, Microsoft told us to just convert the Rec2020 to Rec709 and keep it unclamped ( negative values and >1 values ) instead of…

So keep the byte/channel?

🧙

This topic is closed to new replies.

Advertisement