[Mesa-dev] [PATCH] trace: Fix trace_context_transfer_unmap methods.
Roland Scheidegger
sroland at vmware.com
Mon Jun 4 16:06:15 UTC 2018
Alright, this now has all the right bits buffer/texture_subdata would use.
That said, I'm still a bit confused why this is necessary. Is that just
so the dumped output looks like it's the same as if you called
texture/buffer_subdata? Makes sense then, but in reality it still was a
transfer.
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Am 04.06.2018 um 15:01 schrieb Jose Fonseca:
> The emitted buffer_subdata/texture_subdata call didn't match the
> respective signatures.
>
> v2: Actually emit buffer_subdata call.
> ---
> .../auxiliary/driver_trace/tr_context.c | 60 +++++++++++++------
> 1 file changed, 42 insertions(+), 18 deletions(-)
>
> diff --git a/src/gallium/auxiliary/driver_trace/tr_context.c b/src/gallium/auxiliary/driver_trace/tr_context.c
> index 6d918d42a38..dc091aee2e9 100644
> --- a/src/gallium/auxiliary/driver_trace/tr_context.c
> +++ b/src/gallium/auxiliary/driver_trace/tr_context.c
> @@ -1430,35 +1430,59 @@ trace_context_transfer_unmap(struct pipe_context *_context,
> */
>
> struct pipe_resource *resource = transfer->resource;
> - unsigned level = transfer->level;
> unsigned usage = transfer->usage;
> const struct pipe_box *box = &transfer->box;
> unsigned stride = transfer->stride;
> unsigned layer_stride = transfer->layer_stride;
>
> - if (resource->target == PIPE_BUFFER)
> + if (resource->target == PIPE_BUFFER) {
> + unsigned offset = box->x;
> + unsigned size = box->width;
> +
> trace_dump_call_begin("pipe_context", "buffer_subdata");
> - else
> +
> + trace_dump_arg(ptr, context);
> + trace_dump_arg(ptr, resource);
> + trace_dump_arg(uint, usage);
> + trace_dump_arg(uint, offset);
> + trace_dump_arg(uint, size);
> +
> + trace_dump_arg_begin("data");
> + trace_dump_box_bytes(tr_trans->map,
> + resource,
> + box,
> + stride,
> + layer_stride);
> + trace_dump_arg_end();
> +
> + trace_dump_arg(uint, stride);
> + trace_dump_arg(uint, layer_stride);
> +
> + trace_dump_call_end();
> + } else {
> + unsigned level = transfer->level;
> +
> trace_dump_call_begin("pipe_context", "texture_subdata");
>
> - trace_dump_arg(ptr, context);
> - trace_dump_arg(ptr, resource);
> - trace_dump_arg(uint, level);
> - trace_dump_arg(uint, usage);
> - trace_dump_arg(box, box);
> + trace_dump_arg(ptr, context);
> + trace_dump_arg(ptr, resource);
> + trace_dump_arg(uint, level);
> + trace_dump_arg(uint, usage);
> + trace_dump_arg(box, box);
>
> - trace_dump_arg_begin("data");
> - trace_dump_box_bytes(tr_trans->map,
> - resource,
> - box,
> - stride,
> - layer_stride);
> - trace_dump_arg_end();
> + trace_dump_arg_begin("data");
> + trace_dump_box_bytes(tr_trans->map,
> + resource,
> + box,
> + stride,
> + layer_stride);
> + trace_dump_arg_end();
>
> - trace_dump_arg(uint, stride);
> - trace_dump_arg(uint, layer_stride);
> + trace_dump_arg(uint, stride);
> + trace_dump_arg(uint, layer_stride);
>
> - trace_dump_call_end();
> + trace_dump_call_end();
> + }
>
> tr_trans->map = NULL;
> }
>
More information about the mesa-dev
mailing list