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 <srol...@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; > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev