diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c index 8ddcae04f1b..611ac5cd0c8 100644 --- a/src/gallium/frontends/dri/dri2.c +++ b/src/gallium/frontends/dri/dri2.c @@ -2477,7 +2477,6 @@ dri2_init_screen(__DRIscreen * sPriv) screen->can_share_buffer = true; screen->auto_fake_front = dri_with_format(sPriv); - screen->broken_invalidate = !sPriv->dri2.useInvalidate; screen->lookup_egl_image = dri2_lookup_egl_image; const __DRIimageLookupExtension *loader = sPriv->dri2.image; @@ -2540,7 +2539,6 @@ dri_kms_init_screen(__DRIscreen * sPriv) screen->can_share_buffer = false; screen->auto_fake_front = dri_with_format(sPriv); - screen->broken_invalidate = !sPriv->dri2.useInvalidate; screen->lookup_egl_image = dri2_lookup_egl_image; const __DRIimageLookupExtension *loader = sPriv->dri2.image; diff --git a/src/gallium/frontends/dri/dri_drawable.c b/src/gallium/frontends/dri/dri_drawable.c index 2c4ba4d2009..2cf977eb05c 100644 --- a/src/gallium/frontends/dri/dri_drawable.c +++ b/src/gallium/frontends/dri/dri_drawable.c @@ -75,7 +75,7 @@ dri_st_framebuffer_validate(struct st_context_iface *stctx, lastStamp = drawable->dPriv->lastStamp; new_stamp = (drawable->texture_stamp != lastStamp); - if (new_stamp || new_mask || screen->broken_invalidate) { + if (new_stamp || new_mask) { if (new_stamp && drawable->update_drawable_info) drawable->update_drawable_info(drawable); diff --git a/src/gallium/frontends/dri/dri_screen.c b/src/gallium/frontends/dri/dri_screen.c index 661cea4cca3..f331057fdcb 100644 --- a/src/gallium/frontends/dri/dri_screen.c +++ b/src/gallium/frontends/dri/dri_screen.c @@ -763,14 +763,7 @@ static int dri_get_param(struct st_manager *smapi, enum st_manager_param param) { - struct dri_screen *screen = (struct dri_screen *)smapi; - - switch(param) { - case ST_MANAGER_BROKEN_INVALIDATE: - return screen->broken_invalidate; - default: - return 0; - } + return 0; } void diff --git a/src/gallium/frontends/dri/dri_screen.h b/src/gallium/frontends/dri/dri_screen.h index 0ee2feb5616..fc7d63699c4 100644 --- a/src/gallium/frontends/dri/dri_screen.h +++ b/src/gallium/frontends/dri/dri_screen.h @@ -53,9 +53,6 @@ struct dri_screen struct st_manager base; struct st_api *st_api; - /* on old libGL's invalidate doesn't get called as it should */ - boolean broken_invalidate; - /* dri */ __DRIscreen *sPriv; boolean throttle; diff --git a/src/gallium/frontends/dri/dri_util.c b/src/gallium/frontends/dri/dri_util.c index 7d2665a2171..bdaedf12594 100644 --- a/src/gallium/frontends/dri/dri_util.c +++ b/src/gallium/frontends/dri/dri_util.c @@ -121,6 +121,9 @@ driCreateNewScreen2(int scrn, int fd, } setupLoaderExtensions(psp, extensions); + // dri2 drivers require working invalidate + if (fd != -1 && !psp->dri2.useInvalidate) + return NULL; psp->loaderPrivate = data;