i965/msaa: Allow GL_SAMPLES to be set to 1 prior to Gen6.
authorPaul Berry <stereotype441@gmail.com>
Fri, 27 Jul 2012 01:02:20 +0000 (18:02 -0700)
committerPaul Berry <stereotype441@gmail.com>
Wed, 1 Aug 2012 19:45:20 +0000 (12:45 -0700)
This patch allows GL_SAMPLES to be set to either 0 or 1 on i965
platforms that don't support MSAA (those prior to Gen6).  Setting
GL_SAMPLES=1 has the same effect as setting it to 0 on these platforms
(because MSAA is unsupported), but is distinguishable via the GL API.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50165

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/dri/intel/intel_fbo.c

index a53985b189354d9441fc1636268921ced627f992..613287f6d3d17101bf4b5eb515b47f043a881cde 100644 (file)
@@ -202,7 +202,15 @@ quantize_num_samples(struct intel_context *intel, unsigned num_samples)
          return 0;
       return 0;
    default:
-      /* MSAA unsupported */
+      /* MSAA unsupported.  However, a careful reading of
+       * EXT_framebuffer_multisample reveals that we need to permit
+       * num_samples to be 1 (since num_samples is permitted to be as high as
+       * GL_MAX_SAMPLES, and GL_MAX_SAMPLES must be at least 1).  Since
+       * platforms before Gen6 don't support MSAA, this is safe, because
+       * multisampling won't happen anyhow.
+       */
+      if (num_samples > 0)
+         return 1;
       return 0;
    }
 }