[Mesa-dev] [PATCH 15/15] intel: Advertise multisample DRI2 configs on gen >= 6
Chad Versace
chad.versace at linux.intel.com
Sat Jul 21 17:36:54 PDT 2012
This turns on window system multisampling.
No Piglit regressions on Ivybridge.
Tested with `glxgears -samples 1`.
Passes 53/70 of oglconform's winsys multisample tests. The failing tests
mostly consist of those that call glDrawPixels on the depth and stencil
buffer (which fail due to a swrast fallback) or do fancy things with the
msaa alpha enums.
CC: Eric Anholt <eric at anholt.net>
CC: Ian Romanick <idr at freedesktop.org>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
---
src/mesa/drivers/dri/intel/intel_screen.c | 44 +++++++++++++++++++++++++++++--
1 file changed, 42 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 61daea7..420901e 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -866,14 +866,54 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
GLX_SWAP_UNDEFINED_OML, GLX_NONE, GLX_SWAP_COPY_OML,
};
- static const uint8_t msaa_samples[] = {0};
+ static const uint8_t msaa_samples[] = {0, 4};
+
+ struct intel_screen *screen = dri_screen->driverPrivate;
+
+ int num_msaa_modes;
+ if (screen->gen >= 6)
+ num_msaa_modes = 2;
+ else
+ num_msaa_modes = 1;
/* Starting with DRI2 protocol version 1.1 we can request a depth/stencil
* buffer that has a different number of bits per pixel than the color
* buffer. This isn't yet supported here.
*/
struct config_params params[] = {
- /* Configs without accumulation buffer. */
+ /* Multisample configs. */
+ {
+ .color_format = GL_RGB,
+ .color_type = GL_UNSIGNED_SHORT_5_6_5,
+ .depth_sizes = {0, 16},
+ .stencil_sizes = {0, 0},
+ .num_depth_stencil_sizes = 2,
+ .num_back_buffer_modes = 1,
+ .num_msaa_modes = num_msaa_modes,
+ .enable_accum = false,
+ },
+ {
+ .color_format = GL_BGR,
+ .color_type = GL_UNSIGNED_INT_8_8_8_8_REV,
+ .depth_sizes = {0, 24},
+ .stencil_sizes = {0, 8},
+ .num_depth_stencil_sizes = 2,
+ .num_back_buffer_modes = 1,
+ .num_msaa_modes = num_msaa_modes,
+ .enable_accum = false,
+ },
+ {
+ .color_format = GL_BGRA,
+ .color_type = GL_UNSIGNED_INT_8_8_8_8_REV,
+ .depth_sizes = {0, 24},
+ .stencil_sizes = {0, 8},
+ .num_depth_stencil_sizes = 2,
+ .num_back_buffer_modes = 1,
+ .num_msaa_modes = num_msaa_modes,
+ .enable_accum = false,
+ },
+
+ /* Single sample configs. */
{
.color_format = GL_RGB,
.color_type = GL_UNSIGNED_SHORT_5_6_5,
--
1.7.11.2
More information about the mesa-dev
mailing list