mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
drisw: add robustness extension support.
Port the code from dri2 so that drisw drivers can support the robustness extension Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5971>
This commit is contained in:
parent
12c06a0deb
commit
80f7b58d90
1 changed files with 23 additions and 1 deletions
|
|
@ -449,6 +449,10 @@ static __DRIimageExtension driSWImageExtension = {
|
|||
.destroyImage = dri2_destroy_image,
|
||||
};
|
||||
|
||||
static const __DRIrobustnessExtension dri2Robustness = {
|
||||
.base = { __DRI2_ROBUSTNESS, 1 }
|
||||
};
|
||||
|
||||
/*
|
||||
* Backend function for init_screen.
|
||||
*/
|
||||
|
|
@ -464,6 +468,18 @@ static const __DRIextension *drisw_screen_extensions[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static const __DRIextension *drisw_robust_screen_extensions[] = {
|
||||
&driTexBufferExtension.base,
|
||||
&dri2RendererQueryExtension.base,
|
||||
&dri2ConfigQueryExtension.base,
|
||||
&dri2FenceExtension.base,
|
||||
&dri2NoErrorExtension.base,
|
||||
&dri2Robustness.base,
|
||||
&driSWImageExtension.base,
|
||||
&dri2FlushControlExtension.base,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const struct drisw_loader_funcs drisw_lf = {
|
||||
.get_image = drisw_get_image,
|
||||
.put_image = drisw_put_image,
|
||||
|
|
@ -496,7 +512,7 @@ drisw_init_screen(__DRIscreen * sPriv)
|
|||
screen->swrast_no_present = debug_get_option_swrast_no_present();
|
||||
|
||||
sPriv->driverPrivate = (void *)screen;
|
||||
sPriv->extensions = drisw_screen_extensions;
|
||||
|
||||
if (loader->base.version >= 4) {
|
||||
if (loader->putImageShm)
|
||||
lf = &drisw_shm_lf;
|
||||
|
|
@ -515,6 +531,12 @@ drisw_init_screen(__DRIscreen * sPriv)
|
|||
if (!configs)
|
||||
goto fail;
|
||||
|
||||
if (pscreen->get_param(pscreen, PIPE_CAP_DEVICE_RESET_STATUS_QUERY)) {
|
||||
sPriv->extensions = drisw_robust_screen_extensions;
|
||||
screen->has_reset_status_query = true;
|
||||
}
|
||||
else
|
||||
sPriv->extensions = drisw_screen_extensions;
|
||||
screen->lookup_egl_image = dri2_lookup_egl_image;
|
||||
|
||||
return configs;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue