#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"
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;
}
-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)
{
}
-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)
{
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);
}
/*
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;
}
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)
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);