The glReadPixel is slow in ATI X300 series card!!

I find something strange with my graphic card.
My computer system is

1GB DDR2 ram.
Pentium 4 3.00GB.
ATI X300 series.

I try to read a block of pixel with the glReadPixel functions but it was very slow. It takes about 0.2 second to read a block of 1024*1024 pixels.

So I check the setting of my graphics driver and there are 3 options for the “z-buffer”. 1)Force 24 bit. 2)Force 16 bit. 3) Disable. The default setting is Disable. So I try to set it to 16 bits and now the glReadPixel works fine in this mode (about 0.015 second). But another problem exist. I render a few line of text using the font that created by wglUseFontOutlines. The text is 100 length and 10 lines so its about 1000 characters. The rendering of these text is very slow and about 8 fps. I change the z-buffer setting back to disable and the rendering of text is fast now but glReadPixels is slow. I run the same program in anothor computer system.

Pentium III 700
384 Sd Ram
Geforce Ti 4200.

The both text rendering and glReadPixel are fast under this computer system.

Can anyone explain why would this happen and any solution?

First of all, it is very possible that your context with 16-bit z-buffer uses software rendering. What about full depth-buffer(24-bit)? Also, readback (AFAIK particularly on ATI cards) was always slow. Maybe you should try updating your drivers or using the Gl_arb_pixel_buffer_object
extension (if supported ).

You are right Zengar, after update the latest graphic driver it solve the problem. Thanks.