The intension of the KHR_partial_update was not to send the damage back to the platform but to send the damage to the driver to ensure that the following rendering could be restricted to those regions. This patch removes the set_damage_region from the egl_dri vtbl and all the platfrom_*.c files. Then upcomming patches add a new dri2 interface for the drivers to implement
Signed-off-by: Harish Krupo <harish.krupo....@intel.com> --- src/egl/drivers/dri2/egl_dri2.c | 2 +- src/egl/drivers/dri2/egl_dri2.h | 4 -- src/egl/drivers/dri2/egl_dri2_fallbacks.h | 9 ----- src/egl/drivers/dri2/platform_android.c | 45 --------------------- src/egl/drivers/dri2/platform_drm.c | 1 - src/egl/drivers/dri2/platform_surfaceless.c | 1 - src/egl/drivers/dri2/platform_wayland.c | 1 - src/egl/drivers/dri2/platform_x11.c | 2 - src/egl/drivers/dri2/platform_x11_dri3.c | 1 - 9 files changed, 1 insertion(+), 65 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 45d0c7275c..8f1e78186b 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1692,7 +1692,7 @@ dri2_set_damage_region(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint *rects, EGLint n_rects) { struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy); - return dri2_dpy->vtbl->set_damage_region(drv, dpy, surf, rects, n_rects); + return false; } static EGLBoolean diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index 5d8fbfa235..c7ea212946 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -118,10 +118,6 @@ struct dri2_egl_display_vtbl { _EGLSurface *surface, const EGLint *rects, EGLint n_rects); - EGLBoolean (*set_damage_region)(_EGLDriver *drv, _EGLDisplay *dpy, - _EGLSurface *surface, - const EGLint *rects, EGLint n_rects); - EGLBoolean (*swap_buffers_region)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint numRects, const EGLint *rects); diff --git a/src/egl/drivers/dri2/egl_dri2_fallbacks.h b/src/egl/drivers/dri2/egl_dri2_fallbacks.h index a664677572..44d7d2132d 100644 --- a/src/egl/drivers/dri2/egl_dri2_fallbacks.h +++ b/src/egl/drivers/dri2/egl_dri2_fallbacks.h @@ -61,7 +61,6 @@ dri2_fallback_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *dpy, const EGLint *rects, EGLint n_rects) { struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy); - dri2_dpy->vtbl->set_damage_region(drv, dpy, surf, rects, n_rects); return dri2_dpy->vtbl->swap_buffers(drv, dpy, surf); } @@ -89,14 +88,6 @@ dri2_fallback_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy, return EGL_FALSE; } -static inline EGLBoolean -dri2_fallback_set_damage_region(_EGLDriver *drv, _EGLDisplay *dpy, - _EGLSurface *surf, - const EGLint *rects, EGLint n_rects) -{ - return EGL_FALSE; -} - static inline EGLint dri2_fallback_query_buffer_age(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf) diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index cc16fd8118..704e3d311e 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -666,43 +666,6 @@ droid_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw) return EGL_TRUE; } -#if ANDROID_API_LEVEL >= 23 -static EGLBoolean -droid_set_damage_region(_EGLDriver *drv, - _EGLDisplay *disp, - _EGLSurface *draw, const EGLint* rects, EGLint n_rects) -{ - struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); - struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw); - android_native_rect_t* droid_rects = NULL; - int ret; - - if (n_rects == 0) - return EGL_TRUE; - - droid_rects = malloc(n_rects * sizeof(android_native_rect_t)); - if (droid_rects == NULL) - return _eglError(EGL_BAD_ALLOC, "eglSetDamageRegionKHR"); - - for (EGLint num_drects = 0; num_drects < n_rects; num_drects++) { - EGLint i = num_drects * 4; - droid_rects[num_drects].left = rects[i]; - droid_rects[num_drects].bottom = rects[i + 1]; - droid_rects[num_drects].right = rects[i] + rects[i + 2]; - droid_rects[num_drects].top = rects[i + 1] + rects[i + 3]; - } - - /* - * XXX/TODO: Need to check for other return values - */ - - ret = native_window_set_surface_damage(dri2_surf->window, droid_rects, n_rects); - free(droid_rects); - - return ret == 0 ? EGL_TRUE : EGL_FALSE; -} -#endif - static _EGLImage * droid_create_image_from_prime_fd_yuv(_EGLDisplay *disp, _EGLContext *ctx, struct ANativeWindowBuffer *buf, int fd) @@ -1145,11 +1108,6 @@ static const struct dri2_egl_display_vtbl droid_display_vtbl = { .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, /* Android implements the function */ .swap_buffers_region = dri2_fallback_swap_buffers_region, .swap_interval = droid_swap_interval, -#if ANDROID_API_LEVEL >= 23 - .set_damage_region = droid_set_damage_region, -#else - .set_damage_region = dri2_fallback_set_damage_region, -#endif .post_sub_buffer = dri2_fallback_post_sub_buffer, .copy_buffers = dri2_fallback_copy_buffers, .query_buffer_age = droid_query_buffer_age, @@ -1422,9 +1380,6 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *disp) disp->Extensions.ANDROID_image_native_buffer = EGL_TRUE; disp->Extensions.ANDROID_recordable = EGL_TRUE; disp->Extensions.EXT_buffer_age = EGL_TRUE; -#if ANDROID_API_LEVEL >= 23 - disp->Extensions.KHR_partial_update = EGL_TRUE; -#endif disp->Extensions.KHR_image = EGL_TRUE; /* Fill vtbl last to prevent accidentally calling virtual function during diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index 35bc4b5b1a..4f920cbcd4 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -684,7 +684,6 @@ static const struct dri2_egl_display_vtbl dri2_drm_display_vtbl = { .swap_buffers = dri2_drm_swap_buffers, .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, .swap_buffers_region = dri2_fallback_swap_buffers_region, - .set_damage_region = dri2_fallback_set_damage_region, .post_sub_buffer = dri2_fallback_post_sub_buffer, .copy_buffers = dri2_fallback_copy_buffers, .query_buffer_age = dri2_drm_query_buffer_age, diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c index a0348a5e95..4599b553d3 100644 --- a/src/egl/drivers/dri2/platform_surfaceless.c +++ b/src/egl/drivers/dri2/platform_surfaceless.c @@ -240,7 +240,6 @@ static const struct dri2_egl_display_vtbl dri2_surfaceless_display_vtbl = { .swap_buffers = surfaceless_swap_buffers, .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, .swap_buffers_region = dri2_fallback_swap_buffers_region, - .set_damage_region = dri2_fallback_set_damage_region, .post_sub_buffer = dri2_fallback_post_sub_buffer, .copy_buffers = dri2_fallback_copy_buffers, .query_buffer_age = dri2_fallback_query_buffer_age, diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index 11026f9fbf..1afd96a756 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -1235,7 +1235,6 @@ static const struct dri2_egl_display_vtbl dri2_wl_display_vtbl = { .swap_buffers = dri2_wl_swap_buffers, .swap_buffers_with_damage = dri2_wl_swap_buffers_with_damage, .swap_buffers_region = dri2_fallback_swap_buffers_region, - .set_damage_region = dri2_fallback_set_damage_region, .post_sub_buffer = dri2_fallback_post_sub_buffer, .copy_buffers = dri2_fallback_copy_buffers, .query_buffer_age = dri2_wl_query_buffer_age, diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index ea9b0cc6d6..29d93064ea 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -1154,7 +1154,6 @@ static const struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = { .destroy_surface = dri2_x11_destroy_surface, .create_image = dri2_create_image_khr, .swap_buffers = dri2_x11_swap_buffers, - .set_damage_region = dri2_fallback_set_damage_region, .swap_buffers_region = dri2_fallback_swap_buffers_region, .post_sub_buffer = dri2_fallback_post_sub_buffer, .copy_buffers = dri2_x11_copy_buffers, @@ -1176,7 +1175,6 @@ static const struct dri2_egl_display_vtbl dri2_x11_display_vtbl = { .swap_buffers = dri2_x11_swap_buffers, .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, .swap_buffers_region = dri2_x11_swap_buffers_region, - .set_damage_region = dri2_fallback_set_damage_region, .post_sub_buffer = dri2_x11_post_sub_buffer, .copy_buffers = dri2_x11_copy_buffers, .query_buffer_age = dri2_fallback_query_buffer_age, diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c index 0d5a9d037f..373d578bee 100644 --- a/src/egl/drivers/dri2/platform_x11_dri3.c +++ b/src/egl/drivers/dri2/platform_x11_dri3.c @@ -497,7 +497,6 @@ struct dri2_egl_display_vtbl dri3_x11_display_vtbl = { .swap_buffers = dri3_swap_buffers, .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, .swap_buffers_region = dri2_fallback_swap_buffers_region, - .set_damage_region = dri2_fallback_set_damage_region, .post_sub_buffer = dri2_fallback_post_sub_buffer, .copy_buffers = dri3_copy_buffers, .query_buffer_age = dri3_query_buffer_age, -- 2.18.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev