init accum buffer fields in _mesa_update_framebuffer_visual()
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index 612746a..d0dbbba 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -427,7 +427,8 @@
  * etc. are satisfied by the fields of ctx->DrawBuffer->Visual.  These can
  * change depending on the renderbuffer bindings.  This function updates
  * the given framebuffer's Visual from the current renderbuffer bindings.
- * This is only intended for user-created framebuffers.
+ *
+ * This may apply to user-created framebuffers or window system framebuffers.
  *
  * Also note: ctx->DrawBuffer->Visual.depthBits might not equal
  * ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer.DepthBits.
@@ -483,6 +484,18 @@
          = fb->Attachment[BUFFER_STENCIL].Renderbuffer->StencilBits;
    }
 
+   if (fb->Attachment[BUFFER_ACCUM].Renderbuffer) {
+      fb->Visual.haveAccumBuffer = GL_TRUE;
+      fb->Visual.accumRedBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->RedBits;
+      fb->Visual.accumGreenBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->GreenBits;
+      fb->Visual.accumBlueBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->BlueBits;
+      fb->Visual.accumAlphaBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->AlphaBits;
+   }
+
    compute_depth_max(fb);
 }