Module: Mesa Branch: 7.10 Commit: 3b89e1c0e608417146c50d301c2755fd434a8f78 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b89e1c0e608417146c50d301c2755fd434a8f78
Author: Brian Paul <bri...@vmware.com> Date: Fri Jun 10 14:08:28 2011 -0600 st/mesa: fix software accum buffer format bug --- src/mesa/state_tracker/st_cb_fbo.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c index 4f43411..3d0886b 100644 --- a/src/mesa/state_tracker/st_cb_fbo.c +++ b/src/mesa/state_tracker/st_cb_fbo.c @@ -72,8 +72,14 @@ st_renderbuffer_alloc_storage(struct gl_context * ctx, struct gl_renderbuffer *r enum pipe_format format; struct pipe_surface surf_tmpl; - format = st_choose_renderbuffer_format(screen, internalFormat, - rb->NumSamples); + if (strb->software && internalFormat == GL_RGBA16_SNORM) { + /* special case for software accum buffer */ + format = PIPE_FORMAT_R16G16B16A16_SNORM; + } + else { + format = st_choose_renderbuffer_format(screen, internalFormat, + rb->NumSamples); + } if (format == PIPE_FORMAT_NONE) { return FALSE; @@ -268,7 +274,7 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw) strb->Base.InternalFormat = GL_STENCIL_INDEX8_EXT; break; case PIPE_FORMAT_R16G16B16A16_SNORM: - strb->Base.InternalFormat = GL_RGBA16; + strb->Base.InternalFormat = GL_RGBA16_SNORM; break; case PIPE_FORMAT_R8_UNORM: strb->Base.InternalFormat = GL_R8; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit