This patch series was intended to: a) de-duplicate code across various platforms. b) do preparatory work for platform_tizen.
There was some confusion[1] on how we want to move forward with platform_tizen. Until we can figure that out, I suggest we drop patches that move stuff out of platform_android in preparation for platform_tizen [patches {1, 3, 4, 6}] for now. I would change this suggestion if other platforms (platform_wayland, platform_drm) start using the new dri2_surface_* functions and advertising the associated extensions by the end of the series, i.e EXT_buffer_age. I think patch 5 can be it's own standalone patch in platform_android for now. You can also justify patch 8 if platform_surfaceless starts using dri2_surface_get_front_image. So in conclusion, I think we can go forward with patches {2, 5, 7, 8, 9}, with the appropriate changes. [1] https://www.mail-archive.com/mesa-dev@lists.freedesktop. org/msg173164.html On Tue, Oct 24, 2017 at 2:44 PM, Gwan-gyeong Mun <elong...@gmail.com> wrote: > From: "Mun, Gwan-gyeong" <elong...@gmail.com> > > To share common free outdated buffers and update size code. > This compares width and height arguments with current egl surface > dimension, > if the compared surface dimension is differ, then it free local buffers and > updates dimension. > > In preparation to adding of new platform which uses this helper. > > v2: Fixes from Eric's review: > a) Split out series of refactor for helpers to a separate series. > b) Add the new helper function and use them to replace the old code in > the > same patch. > > v3: Fixes from Emil and Gurchetan's review > - Follow the naming convention which prevents too verbose name of > functions. > a) use a dri2_surface_$action_$object naming convention > b) change a first argument type "struct dri2_egl_surface" to > "_EGLSurface". > > Signed-off-by: Mun Gwan-gyeong <elong...@gmail.com> > Reviewed-by: Emil Velikov <emil.veli...@collabora.com> > --- > src/egl/drivers/dri2/egl_dri2.c | 13 +++++++++++++ > src/egl/drivers/dri2/egl_dri2.h | 3 +++ > src/egl/drivers/dri2/platform_android.c | 8 ++------ > 3 files changed, 18 insertions(+), 6 deletions(-) > > diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_ > dri2.c > index 503450542e..238e299aed 100644 > --- a/src/egl/drivers/dri2/egl_dri2.c > +++ b/src/egl/drivers/dri2/egl_dri2.c > @@ -1079,6 +1079,19 @@ dri2_egl_surface_free_local_buffers(struct > dri2_egl_surface *dri2_surf) > } > } > > +void > +dri2_surface_fixup(_EGLSurface *surf, int width, int height) > +{ > + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf); > + > + /* free outdated buffers and update the surface size */ > + if (surf->Width != width || surf->Height != height) { > + dri2_egl_surface_free_local_buffers(dri2_surf); > + surf->Width = width; > + surf->Height = height; > + } > +} > + > /** > * Called via eglTerminate(), drv->API.Terminate(). > * > diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_ > dri2.h > index cd2487ab22..208a03d73a 100644 > --- a/src/egl/drivers/dri2/egl_dri2.h > +++ b/src/egl/drivers/dri2/egl_dri2.h > @@ -455,6 +455,9 @@ dri2_egl_surface_alloc_local_buffer(struct > dri2_egl_surface *dri2_surf, > void > dri2_egl_surface_free_local_buffers(struct dri2_egl_surface *dri2_surf); > > +void > +dri2_surface_fixup(_EGLSurface *surf, int width, int height); > + > EGLBoolean > dri2_init_surface(_EGLSurface *surf, _EGLDisplay *dpy, EGLint type, > _EGLConfig *conf, const EGLint *attrib_list, EGLBoolean > enable_out_fence); > diff --git a/src/egl/drivers/dri2/platform_android.c > b/src/egl/drivers/dri2/platform_android.c > index e390365b8b..d00a3333a2 100644 > --- a/src/egl/drivers/dri2/platform_android.c > +++ b/src/egl/drivers/dri2/platform_android.c > @@ -414,12 +414,8 @@ update_buffers(struct dri2_egl_surface *dri2_surf) > } > > /* free outdated buffers and update the surface size */ > - if (dri2_surf->base.Width != dri2_surf->buffer->width || > - dri2_surf->base.Height != dri2_surf->buffer->height) { > - dri2_egl_surface_free_local_buffers(dri2_surf); > - dri2_surf->base.Width = dri2_surf->buffer->width; > - dri2_surf->base.Height = dri2_surf->buffer->height; > - } > + dri2_surface_fixup(&dri2_surf->base, dri2_surf->buffer->width, > + dri2_surf->buffer->height); > > return 0; > } > -- > 2.14.2 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev