mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-11 08:00:13 +01:00
egl/dri2: trigger drawable invalidation from surface queries for zink
this mimics dri3 behavior and avoids scenarios where renderbuffers can get out of sync with their resources fixes #6744 Acked-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22858>
This commit is contained in:
parent
1563aea69f
commit
12a47b84b7
2 changed files with 4 additions and 1 deletions
|
|
@ -1031,7 +1031,7 @@ dri2_setup_extensions(_EGLDisplay *disp)
|
|||
|
||||
extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen_render_gpu);
|
||||
|
||||
if (dri2_dpy->image_driver || dri2_dpy->dri2) {
|
||||
if (dri2_dpy->image_driver || dri2_dpy->dri2 || disp->Options.Zink) {
|
||||
if (!loader_bind_extensions(dri2_dpy, dri2_core_extensions, ARRAY_SIZE(dri2_core_extensions), extensions))
|
||||
return EGL_FALSE;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -464,8 +464,11 @@ dri2_query_surface(_EGLDisplay *disp, _EGLSurface *surf,
|
|||
case EGL_WIDTH:
|
||||
case EGL_HEIGHT:
|
||||
if (x11_get_drawable_info(drawable, &x, &y, &w, &h, dri2_surf)) {
|
||||
bool changed = surf->Width != w || surf->Height != h;
|
||||
surf->Width = w;
|
||||
surf->Height = h;
|
||||
if (changed && dri2_dpy->flush)
|
||||
dri2_dpy->flush->invalidate(drawable);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue