[Mesa-dev] [PATCH 3/5] intel/aubinator: fix ring buffer pointer

Toni Lönnberg toni.lonnberg at intel.com
Fri Nov 9 17:15:50 UTC 2018


Reviewed-by: Toni Lönnberg <toni.lonnberg at intel.com>

On Fri, Nov 09, 2018 at 04:49:11PM +0000, Lionel Landwerlin wrote:
> We can only start parsing commands from the head pointer. This was
> working fine up to now because we only dealt with a "made up" ring
> buffer (generated by aub_write) which always had its head at 0.
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
>  src/intel/tools/aubinator.c          | 4 ++--
>  src/intel/tools/aubinator_viewer.cpp | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
> index 04d920d98e5..5fed5f11389 100644
> --- a/src/intel/tools/aubinator.c
> +++ b/src/intel/tools/aubinator.c
> @@ -151,7 +151,7 @@ handle_execlist_write(void *user_data, enum gen_engine engine, uint64_t context_
>     struct gen_batch_decode_bo ring_bo = aub_mem_get_ggtt_bo(&mem,
>                                                              ring_buffer_start);
>     assert(ring_bo.size > 0);
> -   void *commands = (uint8_t *)ring_bo.map + (ring_buffer_start - ring_bo.addr);
> +   void *commands = (uint8_t *)ring_bo.map + (ring_buffer_start - ring_bo.addr) + ring_buffer_head;
>  
>     if (context_descriptor & 0x100 /* ppgtt */) {
>        batch_ctx.get_bo = aub_mem_get_ppgtt_bo;
> @@ -162,7 +162,7 @@ handle_execlist_write(void *user_data, enum gen_engine engine, uint64_t context_
>     (void)engine; /* TODO */
>     gen_print_batch(&batch_ctx, commands,
>                     MIN2(ring_buffer_tail - ring_buffer_head, ring_buffer_length),
> -                   0);
> +                   ring_bo.addr + ring_buffer_head);
>     aub_mem_clear_bo_maps(&mem);
>  }
>  
> diff --git a/src/intel/tools/aubinator_viewer.cpp b/src/intel/tools/aubinator_viewer.cpp
> index dac03472153..5242edf86fc 100644
> --- a/src/intel/tools/aubinator_viewer.cpp
> +++ b/src/intel/tools/aubinator_viewer.cpp
> @@ -729,13 +729,13 @@ display_batch_execlist_write(void *user_data, enum gen_engine engine,
>     struct gen_batch_decode_bo ring_bo =
>        aub_mem_get_ggtt_bo(&window->mem, ring_buffer_start);
>     assert(ring_bo.size > 0);
> -   void *commands = (uint8_t *)ring_bo.map + (ring_buffer_start - ring_bo.addr);
> +   void *commands = (uint8_t *)ring_bo.map + (ring_buffer_start - ring_bo.addr) + ring_buffer_head;
>  
>     window->uses_ppgtt = true;
>  
>     aub_viewer_render_batch(&window->decode_ctx, commands,
>                             MIN2(ring_buffer_tail - ring_buffer_head, ring_buffer_length),
> -                           ring_buffer_start);
> +                           ring_buffer_start + ring_buffer_head);
>  }
>  
>  static void
> -- 
> 2.19.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