egl/gbm: rip out DRI_SWRAST

the swrast struct member is now a bool for consistency

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30472>
This commit is contained in:
Mike Blumenkrantz 2024-07-26 15:32:54 -04:00 committed by Marge Bot
parent d9eae369e9
commit f43883cf67
6 changed files with 9 additions and 14 deletions

View file

@ -604,7 +604,6 @@ static const struct dri_extension_match dri2_core_extensions[] = {
}; };
static const struct dri_extension_match swrast_driver_extensions[] = { static const struct dri_extension_match swrast_driver_extensions[] = {
{__DRI_SWRAST, 5, offsetof(struct dri2_egl_display, swrast), false},
{__DRI_CONFIG_OPTIONS, 2, offsetof(struct dri2_egl_display, configOptions), {__DRI_CONFIG_OPTIONS, 2, offsetof(struct dri2_egl_display, configOptions),
true}, true},
}; };
@ -659,6 +658,8 @@ dri2_load_driver_common(_EGLDisplay *disp,
} }
dri2_dpy->driver_extensions = extensions; dri2_dpy->driver_extensions = extensions;
dri2_dpy->kopper = disp->Options.Zink && !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false); dri2_dpy->kopper = disp->Options.Zink && !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false);
dri2_dpy->swrast = (disp->Options.ForceSoftware && !dri2_dpy->kopper) ||
!dri2_dpy->driver_name || strstr(dri2_dpy->driver_name, "swrast");
return EGL_TRUE; return EGL_TRUE;
} }
@ -742,7 +743,7 @@ dri2_setup_screen(_EGLDisplay *disp)
if ((api_mask & (1 << __DRI_API_GLES3)) && _eglIsApiValid(EGL_OPENGL_ES_API)) if ((api_mask & (1 << __DRI_API_GLES3)) && _eglIsApiValid(EGL_OPENGL_ES_API))
disp->ClientAPIs |= EGL_OPENGL_ES3_BIT_KHR; disp->ClientAPIs |= EGL_OPENGL_ES3_BIT_KHR;
assert(dri2_dpy->image_driver || dri2_dpy->dri2 || dri2_dpy->swrast); assert(dri2_dpy->image_driver || dri2_dpy->dri2 || dri2_dpy->kopper || dri2_dpy->swrast);
disp->Extensions.KHR_create_context = EGL_TRUE; disp->Extensions.KHR_create_context = EGL_TRUE;
disp->Extensions.KHR_create_context_no_error = EGL_TRUE; disp->Extensions.KHR_create_context_no_error = EGL_TRUE;
disp->Extensions.KHR_no_config_context = EGL_TRUE; disp->Extensions.KHR_no_config_context = EGL_TRUE;
@ -907,7 +908,7 @@ dri2_create_screen(_EGLDisplay *disp)
} }
} }
int screen_fd = dri2_dpy->swrast ? -1 : dri2_dpy->fd_render_gpu; int screen_fd = dri2_dpy->swrast || dri2_dpy->kopper ? -1 : dri2_dpy->fd_render_gpu;
dri2_dpy->dri_screen_render_gpu = driCreateNewScreen3( dri2_dpy->dri_screen_render_gpu = driCreateNewScreen3(
0, screen_fd, dri2_dpy->loader_extensions, dri2_dpy->driver_extensions, 0, screen_fd, dri2_dpy->loader_extensions, dri2_dpy->driver_extensions,
&dri2_dpy->driver_configs, false, disp); &dri2_dpy->driver_configs, false, disp);

View file

@ -244,7 +244,6 @@ struct dri2_egl_display {
const __DRIconfig **driver_configs; const __DRIconfig **driver_configs;
const __DRIimageDriverExtension *image_driver; const __DRIimageDriverExtension *image_driver;
const __DRIdri2Extension *dri2; const __DRIdri2Extension *dri2;
const __DRIswrastExtension *swrast;
const __DRI2flushExtension *flush; const __DRI2flushExtension *flush;
const __DRI2flushControlExtension *flush_control; const __DRI2flushControlExtension *flush_control;
const __DRItexBufferExtension *tex_buffer; const __DRItexBufferExtension *tex_buffer;
@ -271,6 +270,7 @@ struct dri2_egl_display {
bool own_device; bool own_device;
bool invalidate_available; bool invalidate_available;
bool kopper; bool kopper;
bool swrast;
int min_swap_interval; int min_swap_interval;
int max_swap_interval; int max_swap_interval;
int default_swap_interval; int default_swap_interval;

View file

@ -646,7 +646,6 @@ dri2_initialize_drm(_EGLDisplay *disp)
dri2_dpy->dri_screen_render_gpu = dri2_dpy->gbm_dri->screen; dri2_dpy->dri_screen_render_gpu = dri2_dpy->gbm_dri->screen;
dri2_dpy->image_driver = dri2_dpy->gbm_dri->image_driver; dri2_dpy->image_driver = dri2_dpy->gbm_dri->image_driver;
dri2_dpy->swrast = dri2_dpy->gbm_dri->swrast;
dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs; dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs;
dri2_dpy->gbm_dri->validate_image = dri2_validate_egl_image; dri2_dpy->gbm_dri->validate_image = dri2_validate_egl_image;

View file

@ -579,7 +579,6 @@ dri2_x11_destroy_surface(_EGLDisplay *disp, _EGLSurface *surf)
xcb_dri2_destroy_drawable(dri2_dpy->conn, dri2_surf->drawable); xcb_dri2_destroy_drawable(dri2_dpy->conn, dri2_surf->drawable);
#endif #endif
} else { } else {
assert(dri2_dpy->swrast);
swrastDestroyDrawable(dri2_dpy, dri2_surf); swrastDestroyDrawable(dri2_dpy, dri2_surf);
} }

View file

@ -240,10 +240,6 @@ static struct dri_extension_match gbm_dri_device_extensions[] = {
{ __DRI_IMAGE_DRIVER, 2, offsetof(struct gbm_dri_device, image_driver), false }, { __DRI_IMAGE_DRIVER, 2, offsetof(struct gbm_dri_device, image_driver), false },
}; };
static struct dri_extension_match gbm_swrast_device_extensions[] = {
{ __DRI_SWRAST, 5, offsetof(struct gbm_dri_device, swrast), false },
};
const __DRIextension ** const __DRIextension **
dri_loader_get_extensions(const char *driver_name); dri_loader_get_extensions(const char *driver_name);
@ -281,11 +277,11 @@ dri_screen_create_for_driver(struct gbm_dri_device *dri, char *driver_name, bool
ARRAY_SIZE(gbm_dri_device_extensions), ARRAY_SIZE(gbm_dri_device_extensions),
extensions); extensions);
} else { } else {
bind_ok = loader_bind_extensions(dri, gbm_swrast_device_extensions, bind_ok = true;
ARRAY_SIZE(gbm_swrast_device_extensions),
extensions);
} }
dri->swrast = swrast;
if (!bind_ok) { if (!bind_ok) {
fprintf(stderr, "failed to bind extensions\n"); fprintf(stderr, "failed to bind extensions\n");
goto fail; goto fail;

View file

@ -51,6 +51,7 @@ struct gbm_dri_device {
char *driver_name; /* Name of the DRI module, without the _dri suffix */ char *driver_name; /* Name of the DRI module, without the _dri suffix */
bool software; /* A software driver was loaded */ bool software; /* A software driver was loaded */
bool swrast; /* this is swrast */
__DRIscreen *screen; __DRIscreen *screen;
__DRIcontext *context; __DRIcontext *context;
@ -58,7 +59,6 @@ struct gbm_dri_device {
const __DRIimageExtension *image; const __DRIimageExtension *image;
const __DRIimageDriverExtension *image_driver; const __DRIimageDriverExtension *image_driver;
const __DRIswrastExtension *swrast;
const __DRI2flushExtension *flush; const __DRI2flushExtension *flush;
const __DRIconfig **driver_configs; const __DRIconfig **driver_configs;