X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Ftrace%2Ftr_dump.c;h=49349496ac6cbac3b2ba0b94659c71c1b0da7fe1;hb=222a2fb99859f3ac237def59d40413bb1a464f11;hp=b173b8abf894f0bb6f4eda575d1ba499f3e81d04;hpb=25b3d554c4403b3b63f58cea6f0fc0cf3232a1c0;p=mesa.git diff --git a/src/gallium/drivers/trace/tr_dump.c b/src/gallium/drivers/trace/tr_dump.c index b173b8abf89..49349496ac6 100644 --- a/src/gallium/drivers/trace/tr_dump.c +++ b/src/gallium/drivers/trace/tr_dump.c @@ -45,7 +45,7 @@ #include "pipe/p_compiler.h" #include "os/os_thread.h" -#include "os/os_time.h" +#include "util/os_time.h" #include "util/u_debug.h" #include "util/u_memory.h" #include "util/u_string.h" @@ -59,7 +59,7 @@ static boolean close_stream = FALSE; static FILE *stream = NULL; -pipe_static_mutex(call_mutex); +static mtx_t call_mutex = _MTX_INITIALIZER_NP; static long unsigned call_no = 0; static boolean dumping = FALSE; @@ -133,15 +133,6 @@ trace_dump_newline(void) } -static inline void -trace_dump_tag(const char *name) -{ - trace_dump_writes("<"); - trace_dump_writes(name); - trace_dump_writes("/>"); -} - - static inline void trace_dump_tag_begin(const char *name) { @@ -164,49 +155,6 @@ trace_dump_tag_begin1(const char *name, } -static inline void -trace_dump_tag_begin2(const char *name, - const char *attr1, const char *value1, - const char *attr2, const char *value2) -{ - trace_dump_writes("<"); - trace_dump_writes(name); - trace_dump_writes(" "); - trace_dump_writes(attr1); - trace_dump_writes("=\'"); - trace_dump_escape(value1); - trace_dump_writes("\' "); - trace_dump_writes(attr2); - trace_dump_writes("=\'"); - trace_dump_escape(value2); - trace_dump_writes("\'>"); -} - - -static inline void -trace_dump_tag_begin3(const char *name, - const char *attr1, const char *value1, - const char *attr2, const char *value2, - const char *attr3, const char *value3) -{ - trace_dump_writes("<"); - trace_dump_writes(name); - trace_dump_writes(" "); - trace_dump_writes(attr1); - trace_dump_writes("=\'"); - trace_dump_escape(value1); - trace_dump_writes("\' "); - trace_dump_writes(attr2); - trace_dump_writes("=\'"); - trace_dump_escape(value2); - trace_dump_writes("\' "); - trace_dump_writes(attr3); - trace_dump_writes("=\'"); - trace_dump_escape(value3); - trace_dump_writes("\'>"); -} - - static inline void trace_dump_tag_end(const char *name) { @@ -302,12 +250,12 @@ boolean trace_dump_trace_enabled(void) void trace_dump_call_lock(void) { - pipe_mutex_lock(call_mutex); + mtx_lock(&call_mutex); } void trace_dump_call_unlock(void) { - pipe_mutex_unlock(call_mutex); + mtx_unlock(&call_mutex); } /* @@ -331,24 +279,24 @@ boolean trace_dumping_enabled_locked(void) void trace_dumping_start(void) { - pipe_mutex_lock(call_mutex); + mtx_lock(&call_mutex); trace_dumping_start_locked(); - pipe_mutex_unlock(call_mutex); + mtx_unlock(&call_mutex); } void trace_dumping_stop(void) { - pipe_mutex_lock(call_mutex); + mtx_lock(&call_mutex); trace_dumping_stop_locked(); - pipe_mutex_unlock(call_mutex); + mtx_unlock(&call_mutex); } boolean trace_dumping_enabled(void) { boolean ret; - pipe_mutex_lock(call_mutex); + mtx_lock(&call_mutex); ret = trace_dumping_enabled_locked(); - pipe_mutex_unlock(call_mutex); + mtx_unlock(&call_mutex); return ret; } @@ -395,14 +343,14 @@ void trace_dump_call_end_locked(void) void trace_dump_call_begin(const char *klass, const char *method) { - pipe_mutex_lock(call_mutex); + mtx_lock(&call_mutex); trace_dump_call_begin_locked(klass, method); } void trace_dump_call_end(void) { trace_dump_call_end_locked(); - pipe_mutex_unlock(call_mutex); + mtx_unlock(&call_mutex); } void trace_dump_arg_begin(const char *name) @@ -500,23 +448,22 @@ void trace_dump_box_bytes(const void *data, unsigned stride, unsigned slice_stride) { + enum pipe_format format = resource->format; size_t size; + assert(box->height > 0); + assert(box->depth > 0); + + size = util_format_get_nblocksx(format, box->width ) * util_format_get_blocksize(format) + + (util_format_get_nblocksy(format, box->height) - 1) * stride + + (box->depth - 1) * slice_stride; + /* * Only dump buffer transfers to avoid huge files. * TODO: Make this run-time configurable */ if (resource->target != PIPE_BUFFER) { size = 0; - } else { - enum pipe_format format = resource->format; - if (slice_stride) - size = box->depth * slice_stride; - else if (stride) - size = util_format_get_nblocksy(format, box->height) * stride; - else { - size = util_format_get_nblocksx(format, box->width) * util_format_get_blocksize(format); - } } trace_dump_bytes(data, size); @@ -625,20 +572,6 @@ void trace_dump_ptr(const void *value) trace_dump_null(); } - -void trace_dump_resource_ptr(struct pipe_resource *_resource) -{ - if (!dumping) - return; - - if (_resource) { - struct trace_resource *tr_resource = trace_resource(_resource); - trace_dump_ptr(tr_resource->resource); - } else { - trace_dump_null(); - } -} - void trace_dump_surface_ptr(struct pipe_surface *_surface) { if (!dumping)