10bit framebuffer

If I use WGL_ARB_pixel_format is it possible to get 10bits for rgb on a Matrox Parhelia or ATI 9500+ for my frame buffer?

AFAIK the 10 bit color accuracy is only used internally on fragment operations. You can’t set a 10 bit framebuffer.

I believe Parhelia can output a 10/10/10/2 frame buffer. I don’t think any ATI cards have that capability right now.


I’ve seen a few places claim in 9700Pro/9800Pro reviews that ATI now has “High precision 10-bit per channel frame buffer support”

This may be slightly off topic, but I’ve always wondered this: Wouldn’t you need a monitor with a contrast ratio of at least 2^(bits per component) to be able to see the full range? To distinguish 10 bit color, then, you’d need a monitor with a contrast ratio of at least 1024:1, wouldn’t you?

Is blending supported in these higher precision frame buffers?

[This message has been edited by Zeno (edited 07-23-2003).]

I believe contrast ratio is the difference between the brightest and darkest colours displayable. That’s not quite the same as the smallest step between two displayable colours.

That said, a quality LCD will have a contrast ratio approaching 512:1 and CRTs have ratios over 10000:1

If you are adjusting the transfer function digitally to correct for your display you need the extra bits to preserve sufficient precision out of your LUT.

I think you also need to draw some distinctions here between what you can render what you might swap (copy vs MUX is a key difference) to the framebuffer and what you output through the DAC and the transfer functions between each stage.

Simply saying you need a monitor with huge contrast ratio to use this is a bit misleading. I’m not even sure it’s true given visual adaption and contrast sensitivity, but we know that precision into any transfer function for whatever your desired effect is essential.

[This message has been edited by dorbie (edited 07-23-2003).]

What does “framebuffer” mean? If it means “render target” then you can already do it using existing OpenGL extensions on Radeon 9500 and up. If it means “scanout buffer” then I’m not aware of any direct API support for that, either on OpenGL or DirectX, although it’s possible the hardware supports it.

OK, how about this definition:

the buffer such that, when I call “SwapBuffers”, I see the stuff I rendered there to the screen. Can I get an RGBA_10_10_10_2 format? Preferably one that supports alpha blending.

I was trying to draw a distinction between the “render target” and the desktop, I thought the issue of mux vs copy made that clear. When your swap is a copy with the potential to include a transfer function what is your framebuffer? An interesting question really. :slight_smile: