From 67ae5ba7b293e4c816fdb428d8f0d04c4e1fff98 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Tue, 8 Jul 2025 17:34:09 -0400 Subject: [PATCH] egl/surfaceless: Select kopper based on dri2_dpy->kopper This also cleanly separates kopper and swrast extensions Reviewed-by: Adam Jackson Reviewed-By: Mike Blumenkrantz Part-of: --- src/egl/drivers/dri2/platform_surfaceless.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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;