static boolean trace = FALSE;
+static boolean rbug = FALSE;
static const char *
trace_screen_get_name(struct pipe_screen *_screen)
trace_dump_call_end();
- result = trace_transfer_create(tr_tex, result);
+ if (result)
+ result = trace_transfer_create(tr_tex, result);
return result;
}
map = screen->transfer_map(screen, transfer);
if(map) {
- if(transfer->usage != PIPE_TRANSFER_READ) {
+ if(transfer->usage & PIPE_TRANSFER_WRITE) {
assert(!tr_trans->map);
tr_trans->map = map;
}
unsigned width, unsigned height,
enum pipe_format format,
unsigned usage,
+ unsigned tex_usage,
unsigned *pstride)
{
struct trace_screen *tr_scr = trace_screen(_screen);
trace_dump_arg(uint, height);
trace_dump_arg(format, format);
trace_dump_arg(uint, usage);
+ trace_dump_arg(uint, tex_usage);
result = screen->surface_buffer_create(screen,
width, height,
format,
usage,
+ tex_usage,
pstride);
stride = *pstride;
boolean
trace_enabled(void)
{
- return trace;
-}
-
-struct pipe_screen *
-trace_screen_create(struct pipe_screen *screen)
-{
- struct trace_screen *tr_scr;
- struct pipe_winsys *winsys;
- boolean rbug = FALSE;
+ static boolean firstrun = TRUE;
- if(!screen)
- goto error1;
+ if (!firstrun)
+ return trace;
+ firstrun = FALSE;
trace_dump_init();
rbug = TRUE;
}
- if (!trace)
+ return trace;
+}
+
+struct pipe_screen *
+trace_screen_create(struct pipe_screen *screen)
+{
+ struct trace_screen *tr_scr;
+ struct pipe_winsys *winsys;
+
+ if(!screen)
+ goto error1;
+
+ if (!trace_enabled())
goto error1;
trace_dump_call_begin("", "pipe_screen_create");