Mesa (7.10): st/mesa: fix software accum buffer format bug
Brian Paul
brianp at kemper.freedesktop.org
Fri Jun 10 21:26:27 UTC 2011
Module: Mesa
Branch: 7.10
Commit: 3b89e1c0e608417146c50d301c2755fd434a8f78
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b89e1c0e608417146c50d301c2755fd434a8f78
Author: Brian Paul <brianp at 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;
More information about the mesa-commit
mailing list