diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c index b90e8672e8f..9df753f1c15 100644 --- a/src/egl/drivers/dri2/platform_surfaceless.c +++ b/src/egl/drivers/dri2/platform_surfaceless.c @@ -208,14 +208,17 @@ static const __DRIimageLoaderExtension image_loader_extension = { static const __DRIextension *image_loader_extensions[] = { &image_loader_extension.base, &image_lookup_extension.base, - &background_callable_extension.base, - &kopper_pbuffer_loader_extension.base, NULL, + &background_callable_extension.base, NULL, }; static const __DRIextension *swrast_loader_extensions[] = { &swrast_pbuffer_loader_extension.base, &image_loader_extension.base, - &image_lookup_extension.base, - &kopper_pbuffer_loader_extension.base, NULL, + &image_lookup_extension.base, NULL, +}; + +static const __DRIextension *kopper_loader_extensions[] = { + &kopper_pbuffer_loader_extension.base, &image_lookup_extension.base, + &image_lookup_extension.base, NULL, }; static bool @@ -286,7 +289,9 @@ surfaceless_probe_device(_EGLDisplay *disp, bool swrast, bool zink) if (dri2_dpy->driver_name) { dri2_detect_swrast(disp); - if (swrast || zink) + if (dri2_dpy->kopper) + dri2_dpy->loader_extensions = kopper_loader_extensions; + else if (swrast) dri2_dpy->loader_extensions = swrast_loader_extensions; else dri2_dpy->loader_extensions = image_loader_extensions; @@ -356,7 +361,10 @@ surfaceless_probe_device_sw(_EGLDisplay *disp) dri2_detect_swrast(disp); - dri2_dpy->loader_extensions = swrast_loader_extensions; + if (dri2_dpy->kopper) + dri2_dpy->loader_extensions = kopper_loader_extensions; + else + dri2_dpy->loader_extensions = swrast_loader_extensions; dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu;