egl: Make the 565 pbuffer-only config single buffered

Graphics / Mesa 3D Graphics Library / Mesa - Kenneth Graunke [whitecape.org] - 22 July 2019 23:58 EDT

In commit dacb11a585face5ca179c34cfc588a71a425c1e0, Eric found the first matching 565 pbuffer config, and stopped. Our double-buffered configs come first in the list, so we added that, making a pbuffer-only config that claimed to be double buffered. This doesn't make sense, since pixmaps/pbuffers are fundamentally not double buffered.

When using that config, every call to eglCreatePbufferSurface would fail with EGL_BAD_MATCH. The call chain looks like this:

- eglCreatePbufferSurface- dri3_create_pbuffer_surface- dri3_create_surface- dri2_get_dri_config

which eventually does:

const bool double_buffer = surface_type == EGL_WINDOW_BIT;

and then fails to find a matching config, because it ends up looking for a single-buffered config - and there aren't any.

To fix this, make the 565 pbuffer config single-buffered. This fixes at least 51 dEQP-EGL.* tests.

Fixes: dacb11a585f ("egl: Add a 565 pbuffer-only EGL config under X11.")

6ad31c4ff33 egl: Make the 565 pbuffer-only config single buffered.
src/egl/drivers/dri2/platform_x11.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

Upstream: cgit.freedesktop.org


  • Share