[Mesa-dev] [PATCH v2] gallium: Implement APPLE_object_purgeable (iris, freedeno, vc4)

Chris Wilson chris at chris-wilson.co.uk
Thu Feb 28 11:53:24 UTC 2019


Quoting Emil Velikov (2019-02-28 11:44:28)
> On Tue, 26 Feb 2019 at 21:52, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> >
> > A few of the GEM drivers provide matching ioctls to allow control of
> > their bo caches. Hook these up to APPLE_object_purgeable to allow
> > clients to discard video memory under pressure where they are able to
> > fallback to restoring content themselves, e.g. from their own (presumably
> > compressed, on disk) caches.
> >
> > v2: Refactor the repeated resource purging.
> >
> > Cc: Eric Anholt <eric at anholt.net>
> > Cc: Kenneth Graunke <kenneth at whitecape.org>
> > Cc: Rob Clark <robdclark at gmail.com>
> > ---
> >  .../drivers/freedreno/freedreno_resource.c    |  10 ++
> >  .../drivers/freedreno/freedreno_screen.c      |   1 +
> >  src/gallium/drivers/iris/iris_resource.c      |  10 ++
> >  src/gallium/drivers/iris/iris_screen.c        |   1 +
> >  src/gallium/drivers/vc4/vc4_bufmgr.c          |  15 ++
> >  src/gallium/drivers/vc4/vc4_bufmgr.h          |   3 +
> >  src/gallium/drivers/vc4/vc4_resource.c        |  10 ++
> >  src/gallium/drivers/vc4/vc4_screen.c          |   3 +
> >  src/gallium/include/pipe/p_defines.h          |   1 +
> >  src/gallium/include/pipe/p_screen.h           |  20 +++
> >  src/mesa/Makefile.sources                     |   2 +
> >  src/mesa/meson.build                          |   2 +
> >  src/mesa/state_tracker/st_cb_objectpurge.c    | 141 ++++++++++++++++++
> >  src/mesa/state_tracker/st_cb_objectpurge.h    |  38 +++++
> >  src/mesa/state_tracker/st_context.c           |   2 +
> >  src/mesa/state_tracker/st_extensions.c        |   1 +
> >  16 files changed, 260 insertions(+)
> >  create mode 100644 src/mesa/state_tracker/st_cb_objectpurge.c
> >  create mode 100644 src/mesa/state_tracker/st_cb_objectpurge.h
> >
> As-is this is, kind of, blocked on getting it right on all drivers.
> Can I'd suggest splitting this in 4 patches:
>  - st/mesa - src/mesa + src/gallium/include + src/gallium/aux
>  - iris
>  - freedreno
>  - vc4
> 
> This way others can wire their drivers while the iris/freedreno/vc4
> review/testing is ongoing.

Sure, even more so when the changes are non trivial as they will have to
be pass the functional tests [to be written]. Hopefully, I can break
iris locally.
-Chris


More information about the mesa-dev mailing list