version ======= Mesa master, cset e608d92c5b42d192772066194531db8bfaff86ce Description =========== Under double buffer mode, glReadPixels() cannot get the right alpha value after the object was draw with specified RGBA values (by glColor()). R/G/B value is right respectively. In fact, the alpha value achieved is the value that is used to clear the color buffer (glClearColor()). Misc ==== under single buffer mode, this bug doesn't happen.
Created attachment 9393 [details] simple case for reading pixels
OK, I found/fixed a few things. Checked into git. BTW, there's a bug in your program. If you want/need an alpha channel, you need to add GLUT_ALPHA to your glutInitDisplayMode() call.
right, that is a bug in my case ;). I remember that I also encountered this alpha channel issue in some case which enable GLUT_ALPHA. Thank you, Paul. I will verify your commit soon.
this bug still exists at dba21ed913da2222e3b55fc8ba724ca93acbabf1.
Which driver are you using?
Actually, it bug doesn't happen with intel i965 dri driver (I only tried this on i965). It only appears only if the 3D driver is removed and Mesa fall back on software rendering.
I can't reproduce this. Things seem OK here w/ current Mesa/git. Using i915/i945 driver.
Reproduce Step: 1. remove all intel 3d driver; 2. launch X, AIGLX should complain cannot find the right dri driver and fall back on software rendering, which likes: (EE) AIGLX error: dlopen of /opt/X11R7/lib/dri/i965_dri.so failed (/opt/X11R7/lib/dri/i965_dri.so: cannot open shared object file: No such file or directory) (EE) AIGLX: reverting to software rendering 3. run the attached case for this bug (add GLUT_ALPHA ;)
Anyway, now the bug does not exist w/ 915/965 driver or soft rendering. Change the status to FIXED.
Mass version move, cvs -> git
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.