mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 11:10:10 +01:00
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:
parent
d9eae369e9
commit
f43883cf67
6 changed files with 9 additions and 14 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue