egl: Rename dri2_detect_swrast() and also detect kopper

This is exactly the same kopper check we had before, it's just moved to
the detect helper so we can do it dynamically in the future.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36014>
This commit is contained in:
Faith Ekstrand 2025-07-04 15:50:10 -04:00 committed by Marge Bot
parent 67ae5ba7b2
commit 3294cad341
8 changed files with 14 additions and 13 deletions

View file

@ -584,10 +584,11 @@ const __DRIimageLookupExtension image_lookup_extension = {
};
void
dri2_detect_swrast(_EGLDisplay *disp)
dri2_detect_swrast_kopper(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
dri2_dpy->kopper = disp->Options.Zink && !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false);
dri2_dpy->swrast = (disp->Options.ForceSoftware && !dri2_dpy->kopper && strcmp(dri2_dpy->driver_name, "vmwgfx")) ||
!dri2_dpy->driver_name || strstr(dri2_dpy->driver_name, "swrast");
dri2_dpy->swrast_not_kms = dri2_dpy->swrast && (!dri2_dpy->driver_name || strcmp(dri2_dpy->driver_name, "kms_swrast"));
@ -1043,7 +1044,6 @@ dri2_display_create(_EGLDisplay *disp)
dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
dri2_dpy->multibuffers_available = true;
dri2_dpy->kopper = disp->Options.Zink && !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false);
disp->DriverData = (void *)dri2_dpy;
return dri2_dpy;

View file

@ -441,7 +441,7 @@ extern const __DRIswrastLoaderExtension swrast_pbuffer_loader_extension;
extern const __DRIkopperLoaderExtension kopper_pbuffer_loader_extension;
void
dri2_detect_swrast(_EGLDisplay *disp);
dri2_detect_swrast_kopper(_EGLDisplay *disp);
/* Helper for platforms not using dri2_create_screen */
void

View file

@ -1041,7 +1041,7 @@ droid_load_driver(_EGLDisplay *disp, bool swrast)
}
dri2_dpy->loader_extensions = droid_image_loader_extensions;
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
return true;
@ -1195,7 +1195,7 @@ dri2_initialize_android(_EGLDisplay *disp)
dri2_dpy->loader_extensions = droid_swrast_image_loader_extensions;
dri2_dpy->fd_render_gpu = -1;
dri2_dpy->pure_swrast = true;
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
if (!dri2_create_screen(disp)) {
err = "DRI2: Failed to create swrast screen";

View file

@ -293,7 +293,7 @@ device_probe_device(_EGLDisplay *disp)
}
}
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
dri2_dpy->loader_extensions = image_loader_extensions;
return true;
@ -316,7 +316,7 @@ device_probe_device_sw(_EGLDisplay *disp)
return false;
/* HACK: should be driver_swrast_null */
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
dri2_dpy->loader_extensions = swrast_loader_extensions;
return true;

View file

@ -632,7 +632,7 @@ dri2_initialize_drm(_EGLDisplay *disp)
dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->driver_name);
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
dri2_dpy->dri_screen_render_gpu = dri2_dpy->gbm_dri->screen;
dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs;

View file

@ -288,7 +288,7 @@ surfaceless_probe_device(_EGLDisplay *disp, bool swrast, bool zink)
}
if (dri2_dpy->driver_name) {
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
if (dri2_dpy->kopper)
dri2_dpy->loader_extensions = kopper_loader_extensions;
else if (swrast)
@ -359,7 +359,7 @@ surfaceless_probe_device_sw(_EGLDisplay *disp)
if (!dri2_dpy->driver_name)
return false;
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
if (dri2_dpy->kopper)
dri2_dpy->loader_extensions = kopper_loader_extensions;

View file

@ -2620,7 +2620,7 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
goto cleanup;
}
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
dri2_dpy->loader_extensions = dri2_dpy->kopper ? kopper_loader_extensions
: dri2_loader_extensions;
@ -3126,7 +3126,7 @@ dri2_initialize_wayland_swrast(_EGLDisplay *disp)
goto cleanup;
dri2_dpy->driver_name = strdup(disp->Options.Zink ? "zink" : "swrast");
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
dri2_dpy->loader_extensions = dri2_dpy->kopper ? kopper_loader_extensions
: swrast_loader_extensions;

View file

@ -1313,7 +1313,8 @@ dri2_initialize_x11(_EGLDisplay *disp)
return EGL_FALSE;
}
#endif
dri2_detect_swrast(disp);
dri2_detect_swrast_kopper(disp);
if (dri2_dpy->kopper)
return dri2_initialize_x11_kopper(disp, force_zink);