intel: Don't advertise GLX_SWAP_COPY_OML

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>
This commit is contained in:
Chad Versace 2012-08-09 09:06:42 -07:00
parent e917ed6eee
commit 7dc0be8a8b

View 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);