0
\$\begingroup\$

These 2 lines (in C# using OpenTK) seem to cause 1 second lag every frame on a machine with a Geforce 9500 GT

GL.ClearBuffer(ClearBuffer.Color, 0, new float[] { 0, 0, 0, 0 }); // accum
GL.ClearBuffer(ClearBuffer.Color, 1, new float[] { 1, 0, 0, 0 }); // reveal (only red)

The framebuffer in question has 2 color attachments (Rgba16f and R16), and one depth attachement. The framebuffer status after setup indicates no problems.

This is also just one of 3 framebuffers that are cleared every frame - only this one turns the my game into a diashow. There is no such problem on any other card I've tested. Before clearing both color attachment are bound using

DrawBuffersEnum[] bufs = new DrawBuffersEnum[] { DrawBuffersEnum.ColorAttachment0, DrawBuffersEnum.ColorAttachment1 };
GL.DrawBuffers(2, bufs);

How could a very particular gfx card be so slow in clearing 2 color attachments? o.O

\$\endgroup\$

1 Answer 1

2
\$\begingroup\$

The problem was that I used ushorts in one of my VBOs to save a bit on memory, but seems to be very costly when doing lookups on certain AMD cards. After switching back to full integers the performance drop was gone.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .