[Mesa-dev] [PATCH 1/4] i965: Add an env var for forcing window system MSAA.

Eric Anholt eric at anholt.net
Fri Mar 21 17:45:56 PDT 2014


Sometimes it would be nice to benchmark some app with MSAA versus not, but
it doesn't offer the controls you want.  Just provide a handy knob to
force the issue.
---
 src/mesa/drivers/dri/i965/intel_screen.c | 15 +++++++++++++++
 src/mesa/drivers/dri/i965/intel_screen.h |  2 ++
 2 files changed, 17 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
index 4e9a775..0788a1b 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -975,6 +975,11 @@ intelCreateBuffer(__DRIscreen * driScrnPriv,
 
    _mesa_initialize_window_framebuffer(fb, mesaVis);
 
+   if (screen->winsys_msaa_samples_override != -1) {
+      num_samples = screen->winsys_msaa_samples_override;
+      fb->Visual.samples = num_samples;
+   }
+
    if (mesaVis->redBits == 5)
       rgbFormat = MESA_FORMAT_B5G6R5_UNORM;
    else if (mesaVis->sRGBCapable)
@@ -1335,6 +1340,16 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
 
    intelScreen->hw_has_swizzling = intel_detect_swizzling(intelScreen);
 
+   const char *force_msaa = getenv("INTEL_FORCE_MSAA");
+   if (force_msaa) {
+      intelScreen->winsys_msaa_samples_override =
+         intel_quantize_num_samples(intelScreen, atoi(force_msaa));
+      printf("Forcing winsys sample count to %d\n",
+             intelScreen->winsys_msaa_samples_override);
+   } else {
+      intelScreen->winsys_msaa_samples_override = -1;
+   }
+
    set_max_gl_versions(intelScreen);
 
    /* Notification of GPU resets requires hardware contexts and a kernel new
diff --git a/src/mesa/drivers/dri/i965/intel_screen.h b/src/mesa/drivers/dri/i965/intel_screen.h
index 0969021..945f6f5 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.h
+++ b/src/mesa/drivers/dri/i965/intel_screen.h
@@ -62,6 +62,8 @@ struct intel_screen
     */
    unsigned program_id;
 
+   int winsys_msaa_samples_override;
+
    struct {
       struct ra_regs *regs;
 
-- 
1.9.0



More information about the mesa-dev mailing list