System Environment: -------------------------- --Platform: FC6 --Xf86_video_intel:d9df93578b74785c08ba860b4c9aa23b0c89c91c --Mesa:e54329233522591bbe8aad8a3fd6bcdc1e430f03 --DRM:2db6400396ea5c8a5ce54fe9e211b9d01a11d506 --Kernel:2.6.22 Bug detailed description: -------------------------- this issue doesn't happen on i915 queried max supported color attachments, it return 8 but only color attachment 0~3 can be used with glDrawBuffer/glReadBuffer Reproduce steps: ---------------- start X compile and run the attached test case Current result: ---------------- glDrawBuffer/glReadBuffer will report "invalid enumerant" with GL_COLOR_ATTACHMENT4_EXT~GL_COLOR_ATTACHMENT7_EXT Expected result: ---------------- glDrawBuffer/glReadBuffer should not has this issue
Created attachment 13277 [details] test case
seems following patch can fix this: --- a/src/mesa/main/buffers.c 2007-12-21 10:59:20.000000000 +0800 +++ b/src/mesa/main/buffers.c 2007-12-21 16:55:55.000000000 +0800 @@ -320,6 +320,14 @@ return BUFFER_COLOR2; case GL_COLOR_ATTACHMENT3_EXT: return BUFFER_COLOR3; + case GL_COLOR_ATTACHMENT4_EXT: + return BUFFER_COLOR4; + case GL_COLOR_ATTACHMENT5_EXT: + return BUFFER_COLOR5; + case GL_COLOR_ATTACHMENT6_EXT: + return BUFFER_COLOR6; + case GL_COLOR_ATTACHMENT7_EXT: + return BUFFER_COLOR7; default: /* error */ return -1;
committed to git.
verified. thanks
sorry, I forgot this part. the previous one is just making glFramebufferEXT work with max supported color attachment. following is needed to make this work with glDrawBuffer and glReadBuffer --- a/src/mesa/main/buffers.c 2008-01-02 13:25:29.000000000 +0800 +++ b/src/mesa/main/buffers.c 2008-01-02 13:25:01.000000000 +0800 @@ -275,6 +275,14 @@ return BUFFER_BIT_COLOR2; case GL_COLOR_ATTACHMENT3_EXT: return BUFFER_BIT_COLOR3; + case GL_COLOR_ATTACHMENT4_EXT: + return BUFFER_BIT_COLOR4; + case GL_COLOR_ATTACHMENT5_EXT: + return BUFFER_BIT_COLOR5; + case GL_COLOR_ATTACHMENT6_EXT: + return BUFFER_BIT_COLOR6; + case GL_COLOR_ATTACHMENT7_EXT: + return BUFFER_BIT_COLOR7; default: /* error */ return BAD_MASK;
OK, additional cases commited.
thanks
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.