OSDN Git Service

intel: Don't advertise GLX_SWAP_COPY_OML
authorChad Versace <chad.versace@linux.intel.com>
Thu, 9 Aug 2012 16:06:42 +0000 (09:06 -0700)
committerChad Versace <chad.versace@linux.intel.com>
Thu, 27 Sep 2012 21:32:40 +0000 (14:32 -0700)
This patch removes all gl_config's with swapMethod=GLX_SWAP_COPY_OML. When
page flipping, we are unable to comply with swap-copy semantics.

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

index 50959b7..5cb7e5d 100644 (file)
@@ -909,8 +909,9 @@ intel_detect_swizzling(struct intel_screen *screen)
 static __DRIconfig**
 intel_screen_make_configs(__DRIscreen *dri_screen)
 {
+   /* GLX_SWAP_COPY_OML is not supported due to page flipping. */
    static const GLenum back_buffer_modes[] = {
-       GLX_NONE, GLX_SWAP_UNDEFINED_OML, GLX_SWAP_COPY_OML
+       GLX_SWAP_UNDEFINED_OML, GLX_NONE,
    };
 
    static const uint8_t singlesample_samples[1] = {0};
@@ -955,8 +956,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
                                      depth_bits,
                                      stencil_bits,
                                      num_depth_stencil_bits,
-                                     back_buffer_modes,
-                                     ARRAY_SIZE(back_buffer_modes),
+                                     back_buffer_modes, 2,
                                      singlesample_samples, 1,
                                      false);
       configs = driConcatConfigs(configs, new_configs);
@@ -978,7 +978,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
 
       new_configs = driCreateConfigs(fb_format[i], fb_type[i],
                                      depth_bits, stencil_bits, 1,
-                                     back_buffer_modes + 1, 1,
+                                     back_buffer_modes, 1,
                                      singlesample_samples, 1,
                                      true);
       configs = driConcatConfigs(configs, new_configs);
@@ -995,7 +995,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
     *
     * Only doublebuffer configs with GLX_SWAP_UNDEFINED_OML behavior are
     * supported.  Singlebuffer configs are not supported because no one wants
-    * them. GLX_SWAP_COPY_OML is not supported due to page flipping.
+    * them.
     */
    for (int i = 0; i < ARRAY_SIZE(fb_format); i++) {
       if (screen->gen < 6)
@@ -1025,7 +1025,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
                                      depth_bits,
                                      stencil_bits,
                                      num_depth_stencil_bits,
-                                     back_buffer_modes + 1, 1,
+                                     back_buffer_modes, 1,
                                      multisample_samples,
                                      num_msaa_modes,
                                      false);