Need help with accum buffer and pixelformatdescriptor

I’m very confused about how to specify accumulation buffer precision with windows’ PIXELFORMATDESCRIPTOR data structure.

I am getting a 64 bit RGBA accumulation buffer no matter what I specify for cAccumBits…even if I specify 0! I can verify this with glGets and I can use this 64 bit accumulation buffer, so I know it’s really there.

The problem is, I need either a 128 bit accumulation buffer or I need it turned off to save the memory. How can I modify my PIXELFORMATDESCRIPTOR to accomplish either of these things?

I’m using a 6800 ultra with driver version 93.71 at the moment.

Thanks!

You can try to enumerate all pixelformats and see if there is one which matches your other buffer settings but doesn’t offer accum bits.
If there is none, you can hope that the buffers are not allocated if you don’t use them.
If you need more bits, you can only use floating point FP32 buffers with fragment shaders to do the calculations you need. You will need at least two because there is no blending support with FP32 on GF6 and you need to do some ping-pong algorithm to combine results.

Thanks Relic.

I did a web search about enumerating pixel formats and found an MS app that does just that: http://support.microsoft.com/kb/q176752/

It turns out that every RGBA pixel format with 32 color bits has a 64 bit accumulation buffer associated with it. No more, no less. I hope you’re right about the memory not being used if there are no glAccum calls.

I was really hoping I wouldn’t have to emulate glAccum functionality with two float textures and fragment programs, but it looks like I do. :frowning:

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.