intel: Fix rendering to a multisample front buffer
authorChad Versace <chad.versace@linux.intel.com>
Thu, 9 Aug 2012 16:24:29 +0000 (09:24 -0700)
committerChad Versace <chad.versace@linux.intel.com>
Tue, 14 Aug 2012 23:19:25 +0000 (16:19 -0700)
We need to downsample before flushing BUFFER_FAKE_FRONT_LEFT to
BUFFER_FRONT_LEFT in intel_flush_front.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/intel/intel_context.c

index acd59174c707a509760456f50ab2f544c34612f3..a9064c7ee9a179d19e9fd85e8ac40313121f9dca 100644 (file)
@@ -283,6 +283,16 @@ intel_flush_front(struct gl_context *ctx)
       if (screen->dri2.loader->flushFrontBuffer != NULL &&
           driDrawable &&
           driDrawable->loaderPrivate) {
+
+         /* Downsample before flushing FAKE_FRONT_LEFT to FRONT_LEFT.
+          *
+          * This potentially downsamples both front and back buffer. It
+          * is unnecessary to downsample the back, but harms nothing except
+          * performance. And no one cares about front-buffer render
+          * performance.
+          */
+         intel_downsample_for_dri2_flush(intel, driDrawable);
+
          screen->dri2.loader->flushFrontBuffer(driDrawable,
                                                driDrawable->loaderPrivate);