st/mesa: create aux buffers according to visual
authorBrian Paul <brianp@vmware.com>
Fri, 9 Oct 2009 19:20:28 +0000 (13:20 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 9 Oct 2009 19:22:15 +0000 (13:22 -0600)
Fixes bug 24426 for gallium.

src/mesa/state_tracker/st_framebuffer.c

index 5c0d335d62d14af55fd9a6750ece0d0304e3f062..a5d1ae3b034388dd713b35ee0ae7d82e20d84366 100644 (file)
@@ -52,6 +52,7 @@ st_create_framebuffer( const __GLcontextModes *visual,
    struct st_framebuffer *stfb = ST_CALLOC_STRUCT(st_framebuffer);
    if (stfb) {
       int samples = st_get_msaa();
+      int i;
 
       if (visual->sampleBuffers)
          samples = visual->samples;
@@ -119,6 +120,12 @@ st_create_framebuffer( const __GLcontextModes *visual,
          _mesa_add_renderbuffer(&stfb->Base, BUFFER_ACCUM, accumRb);
       }
 
+      for (i = 0; i < visual->numAuxBuffers; i++) {
+         struct gl_renderbuffer *aux
+            = st_new_renderbuffer_fb(colorFormat, 0, FALSE);
+         _mesa_add_renderbuffer(&stfb->Base, BUFFER_AUX0 + i, aux);
+      }
+
       stfb->Base.Initialized = GL_TRUE;
       stfb->InitWidth = width;
       stfb->InitHeight = height;