Advertisement Jump to content
Sign in to follow this  
Tispe

10-bit Monitors

This topic is 1740 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello

 

There are new monitors on the market that support 10-bits per channel. But in CAPS I can only find support for D3DFMT_X8R8G8B8 and D3DFMT_R5G6B5.

 

I do not have a 10bit monitor, but if I had one would a 10bit format appear in CAPS?

 

How can DirectX render to 10bit monitors?

Share this post


Link to post
Share on other sites
Advertisement

That's a potential can of worms you are attempting to open. In order to get it to work you will not only need a monitor with a 10-bit panel, but also a GPU that supports it as well as OS and driver support. Getting all these planets to align can be difficult and it's probably not worth the trouble if you aren't designing something like a image editor or NLE with 10-bit support.

Share this post


Link to post
Share on other sites

I haven't tested this, but logic tells me that even without such a monitor, you should be able to create and draw to a 10/10/10/2 render target, then draw that as a regular fullscreen quad to any format backbuffer.

 

D3D9 has a SetDialogBoxMode call, which is not in itself relevant to this discussion, but does interestingly note the following restriction:

 

 

The application specified a back buffer format compatible with GDI, in other words, one of D3DFMT_X1R5G5B5, D3DFMT_R5G6B5, or D3DFMT_X8R8G8B8.

 

This is enough to tell you that support for such modes doesn't exist in GDI.

 

Mention of GDI is relevant here because it highlights the fact that D3D9 is old technology that is no longer being updated, so you shouldn't expect it to have good support for newer hardware features.

 

Finally, it's important to note that it's not D3D that draws to your monitor; it's your graphics card.  D3D just gives your program a way of telling your graphics card what to draw, your graphics card does the actual drawing.  So this is really a problem for the hardware vendors to solve.

Share this post


Link to post
Share on other sites

First, only Quadro and FirePro GPUs support 10 bit output. NOT GeForce or Radeon. Second, DisplayPort is typically required for 10 bit support, NOT DVI/HDMI. Third, D3D 9 does NOT support 10 bit. You have to use OpenGL or D3D 10+; 9Ex probably supports it. You'd probably access it by creating a D3DFMT_A2R10G10B10 or D3DFMT_A2B10G10R10 format device. Also, 10 bit will shut off Windows compositing/Aero. NVIDIA might have a workaround, not sure. Haven't tested.

 

This document will give you the rundown for NVIDIA/OpenGL: http://www.nvidia.com/docs/IO/40049/TB-04701-001_v02_new.pdf

This document covers AMD/OpenGL: http://www.amd.com/Documents/10-Bit.pdf

Edited by Promit

Share this post


Link to post
Share on other sites

First, only Quadro and FirePro GPUs support 10 bit output. NOT GeForce or Radeon.

 

That actually isn't completely true. In fullscreen it works perfectly fine for Geforce and Radeon, and it works with HDMI. It's only 10 bit desktop modes that require the pro cards (like using it in Photoshop). The DirectX SDK has a '10-bit scanout' sample for D3D10 that shows the difference compared to 8-bit for fullscreen gradients, and it's quite a difference for such cases.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!