[Mesa-dev] [PATCH 6/6] i965: Use BLORP for buffer object stall avoidance blits instead of BLT.
Jason Ekstrand
jason at jlekstrand.net
Tue Aug 29 22:53:32 UTC 2017
On August 29, 2017 2:29:25 PM Kenneth Graunke <kenneth at whitecape.org> wrote:
> Improves performance of GFXBench4 tests at 1024x768 on a Kabylake GT2:
> - Manhattan 3.1 by 1.32134% +/- 0.322734% (n=8).
> - Car Chase by 1.25607% +/- 0.291262% (n=5).
Woohoo! That's not bad. Apart from my little niggle on patch 1,
everything looks good to me.
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
> ---
> src/mesa/drivers/dri/i965/intel_buffer_objects.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> index 01443c2b7fc..49e68bd7392 100644
> --- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> +++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> @@ -37,7 +37,7 @@
> #include "x86/common_x86_asm.h"
>
> #include "brw_context.h"
> -#include "intel_blit.h"
> +#include "brw_blorp.h"
> #include "intel_buffer_objects.h"
> #include "intel_batchbuffer.h"
> #include "intel_tiled_memcpy.h"
> @@ -294,9 +294,9 @@ brw_buffer_subdata(struct gl_context *ctx,
>
> brw_bo_subdata(temp_bo, 0, size, data);
>
> - intel_emit_linear_blit(brw,
> - intel_obj->buffer, offset,
> + brw_blorp_copy_buffers(brw,
> temp_bo, 0,
> + intel_obj->buffer, offset,
> size);
> brw_emit_mi_flush(brw);
>
> @@ -533,11 +533,11 @@ brw_flush_mapped_buffer_range(struct gl_context *ctx,
> * another blit of that area and the complete newer data will land the
> * second time.
> */
> - intel_emit_linear_blit(brw,
> - intel_obj->buffer,
> - obj->Mappings[index].Offset + offset,
> + brw_blorp_copy_buffers(brw,
> intel_obj->range_map_bo[index],
> intel_obj->map_extra[index] + offset,
> + intel_obj->buffer,
> + obj->Mappings[index].Offset + offset,
> length);
> mark_buffer_gpu_usage(intel_obj,
> obj->Mappings[index].Offset + offset,
> @@ -565,10 +565,10 @@ brw_unmap_buffer(struct gl_context *ctx,
> brw_bo_unmap(intel_obj->range_map_bo[index]);
>
> if (!(obj->Mappings[index].AccessFlags & GL_MAP_FLUSH_EXPLICIT_BIT)) {
> - intel_emit_linear_blit(brw,
> - intel_obj->buffer,
> obj->Mappings[index].Offset,
> + brw_blorp_copy_buffers(brw,
> intel_obj->range_map_bo[index],
> intel_obj->map_extra[index],
> + intel_obj->buffer,
> obj->Mappings[index].Offset,
> obj->Mappings[index].Length);
> mark_buffer_gpu_usage(intel_obj, obj->Mappings[index].Offset,
> obj->Mappings[index].Length);
> @@ -646,9 +646,9 @@ brw_copy_buffer_subdata(struct gl_context *ctx,
> dst_bo = intel_bufferobj_buffer(brw, intel_dst, write_offset, size, true);
> src_bo = intel_bufferobj_buffer(brw, intel_src, read_offset, size, false);
>
> - intel_emit_linear_blit(brw,
> - dst_bo, write_offset,
> - src_bo, read_offset, size);
> + brw_blorp_copy_buffers(brw,
> + src_bo, read_offset,
> + dst_bo, write_offset, size);
>
> /* Since we've emitted some blits to buffers that will (likely) be used
> * in rendering operations in other cache domains in this batch, emit a
> --
> 2.14.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list