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;
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;
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);
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
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;
}
setupLoaderExtensions(psp, extensions);
+ // dri2 drivers require working invalidate
+ if (fd != -1 && !psp->dri2.useInvalidate)
+ return NULL;
psp->loaderPrivate = data;