On Mon, Sep 9, 2013 at 11:52 AM, Grigori Goronzy <g...@chown.ath.cx> wrote: > From: Marek Olšák <mar...@gmail.com> > > r600g needs explicit flushing before DRI2 buffers are presented on the screen. > > v2: add (stub) implementations for all drivers, fix frontbuffer flushing > --- > src/gallium/docs/source/context.rst | 13 +++++++++++++ > src/gallium/drivers/freedreno/freedreno_resource.c | 6 ++++++ > src/gallium/drivers/galahad/glhd_context.c | 7 +++++++ > src/gallium/drivers/i915/i915_surface.c | 6 ++++++ > src/gallium/drivers/identity/id_context.c | 11 +++++++++++ > src/gallium/drivers/ilo/ilo_blit.c | 6 ++++++ > src/gallium/drivers/llvmpipe/lp_surface.c | 7 +++++++ > src/gallium/drivers/noop/noop_pipe.c | 8 ++++++++ > src/gallium/drivers/nv30/nv30_miptree.c | 6 ++++++ > src/gallium/drivers/nv30/nv30_resource.c | 1 + > src/gallium/drivers/nv30/nv30_resource.h | 4 ++++ > src/gallium/drivers/nv50/nv50_surface.c | 7 +++++++ > src/gallium/drivers/nvc0/nvc0_surface.c | 7 +++++++ > src/gallium/drivers/r300/r300_blit.c | 6 ++++++ > src/gallium/drivers/r600/r600_blit.c | 6 ++++++ > src/gallium/drivers/radeonsi/r600_blit.c | 6 ++++++ > src/gallium/drivers/rbug/rbug_context.c | 15 +++++++++++++++ > src/gallium/drivers/softpipe/sp_surface.c | 7 +++++++ > src/gallium/drivers/svga/svga_pipe_blit.c | 8 ++++++++ > src/gallium/drivers/trace/tr_context.c | 21 > +++++++++++++++++++++ > src/gallium/include/pipe/p_context.h | 13 +++++++++++++ > .../state_trackers/dri/common/dri_drawable.c | 4 ++++ > src/gallium/state_trackers/dri/drm/dri2.c | 10 +++++++--- > 23 files changed, 182 insertions(+), 3 deletions(-) > > diff --git a/src/gallium/docs/source/context.rst > b/src/gallium/docs/source/context.rst > index 95f6b22..d5b4d77 100644 > --- a/src/gallium/docs/source/context.rst > +++ b/src/gallium/docs/source/context.rst > @@ -423,6 +423,19 @@ Flushing > ``flush`` > > > +``flush_resource`` > + > +Flush the resource cache, so that the resource can be used > +by an external client. Possible usage: > +- flushing a resource before presenting it on the screen > +- flushing a resource if some other process or device wants to use it > +This shouldn't be used to flush caches if the resource is only managed > +by a single pipe_screen and is not shared with another process. > +(i.e. you shouldn't use it to flush caches explicitly if you want to e.g. > +use the resource for texturing) > + > + > + > Resource Busy Queries > ^^^^^^^^^^^^^^^^^^^^^ > > diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c > b/src/gallium/drivers/freedreno/freedreno_resource.c > index 3e051ea..3a7e31c 100644 > --- a/src/gallium/drivers/freedreno/freedreno_resource.c > +++ b/src/gallium/drivers/freedreno/freedreno_resource.c > @@ -337,6 +337,11 @@ render_blit(struct pipe_context *pctx, struct > pipe_blit_info *info) > return true; > } > > +static void > +fd_flush_resource(struct pipe_context *ctx, struct pipe_resource *resource) > +{ > +} > + > void > fd_resource_screen_init(struct pipe_screen *pscreen) > { > @@ -357,4 +362,5 @@ fd_resource_context_init(struct pipe_context *pctx) > pctx->surface_destroy = fd_surface_destroy; > pctx->resource_copy_region = fd_resource_copy_region; > pctx->blit = fd_blit; > + pctx->flush_resource = fd_flush_resource; > } > diff --git a/src/gallium/drivers/galahad/glhd_context.c > b/src/gallium/drivers/galahad/glhd_context.c > index ee9de05..4b51b77 100644 > --- a/src/gallium/drivers/galahad/glhd_context.c > +++ b/src/gallium/drivers/galahad/glhd_context.c > @@ -783,6 +783,12 @@ galahad_context_blit(struct pipe_context *_pipe, > } > > static void > +galahad_context_flush_resource(struct pipe_context *ctx, > + struct pipe_resource *resource) > +{ > +}
galahad is like identity, it should redirect calls to the driver under it. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev