[Mesa-dev] [PATCH 4/4] i965: Orphan storage in MapBufferRange if invalidating all valid data.
Jason Ekstrand
jason at jlekstrand.net
Thu Jul 13 22:04:59 UTC 2017
Do you have any data on how much this helps? Regardless, the series is
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Mon, Jun 12, 2017 at 5:33 PM, Kenneth Graunke <kenneth at whitecape.org>
wrote:
> We can promote INVALIDATE_RANGE_BIT to INVALIDATE_BUFFER_BIT if the
> range contains the only valid data in the buffer. This allows us to
> orphan the storage, instead of doing stall avoidance blits.
> ---
> src/mesa/drivers/dri/i965/intel_buffer_objects.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> I don't have any performance data for this.
>
> diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> index 09c18db1afe..c305539e1b5 100644
> --- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> +++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> @@ -371,6 +371,13 @@ brw_map_buffer_range(struct gl_context *ctx,
> return NULL;
> }
>
> + if ((access & GL_MAP_INVALIDATE_RANGE_BIT) &&
> + (length == obj->Size ||
> + (intel_obj->valid_data_start >= offset &&
> + intel_obj->valid_data_end <= offset + length))) {
> + access |= GL_MAP_INVALIDATE_BUFFER_BIT;
> + }
> +
> /* If the access is synchronized (like a normal buffer mapping), then
> get
> * things flushed out so the later mapping syncs appropriately through
> GEM.
> * If the user doesn't care about existing buffer contents and mapping
> would
> --
> 2.13.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170713/4f5e87dc/attachment-0001.html>
More information about the mesa-dev
mailing list