--- src/gallium/include/pipe/p_defines.h | 3 ++- src/gallium/include/state_tracker/st_api.h | 1 + src/gallium/state_trackers/dri/dri_drawable.c | 2 ++ src/mesa/state_tracker/st_manager.c | 3 +++ 4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 6c5703a..89f0065 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -322,7 +322,8 @@ enum pipe_transfer_usage { * Flags for the flush function. */ enum pipe_flush_flags { - PIPE_FLUSH_END_OF_FRAME = (1 << 0) + PIPE_FLUSH_END_OF_FRAME = (1 << 0), + PIPE_FLUSH_INVALIDATE_ANCILLARY = (1 << 1), }; /** diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h index 86fdc69..2b42ac5 100644 --- a/src/gallium/include/state_tracker/st_api.h +++ b/src/gallium/include/state_tracker/st_api.h @@ -159,6 +159,7 @@ enum st_context_resource_type { */ #define ST_FLUSH_FRONT (1 << 0) #define ST_FLUSH_END_OF_FRAME (1 << 1) +#define ST_FLUSH_INVALIDATE_ANCILLARY (1 << 2) /** * Value to st_manager->get_param function. diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c index b7df053..668cfb8 100644 --- a/src/gallium/state_trackers/dri/dri_drawable.c +++ b/src/gallium/state_trackers/dri/dri_drawable.c @@ -491,6 +491,8 @@ dri_flush(__DRIcontext *cPriv, flush_flags |= ST_FLUSH_FRONT; if (reason == __DRI2_THROTTLE_SWAPBUFFER) flush_flags |= ST_FLUSH_END_OF_FRAME; + if (flags & __DRI2_FLUSH_INVALIDATE_ANCILLARY) + flush_flags |= ST_FLUSH_INVALIDATE_ANCILLARY; /* Flush the context and throttle if needed. */ if (dri_screen(ctx->sPriv)->throttling_enabled && diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 606d678..10839eb 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -499,6 +499,9 @@ st_context_flush(struct st_context_iface *stctxi, unsigned flags, if (flags & ST_FLUSH_END_OF_FRAME) { pipe_flags |= PIPE_FLUSH_END_OF_FRAME; } + if (flags & ST_FLUSH_INVALIDATE_ANCILLARY) { + pipe_flags |= PIPE_FLUSH_INVALIDATE_ANCILLARY; + } st_flush(st, fence, pipe_flags); if (flags & ST_FLUSH_FRONT) -- 2.1.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev