summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/trace/tr_context.c
diff options
context:
space:
mode:
authorJakob Bornecrantz <jakob@vmware.com>2009-04-17 15:55:51 +0200
committerJakob Bornecrantz <jakob@vmware.com>2009-04-17 16:03:01 +0200
commit44d0e0caf4ad3b01dc08d8432867c449dc3f2a23 (patch)
treea0d8ad22f727c44c3cca74d9cbcd48f949d30891 /src/gallium/drivers/trace/tr_context.c
parent1e42f68fd612b2a4c877b91393e5ff5bc34dbe0d (diff)
trace: Keep screen objects on lists
Diffstat (limited to 'src/gallium/drivers/trace/tr_context.c')
-rw-r--r--src/gallium/drivers/trace/tr_context.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gallium/drivers/trace/tr_context.c b/src/gallium/drivers/trace/tr_context.c
index 696b6a4f59..38646f8aad 100644
--- a/src/gallium/drivers/trace/tr_context.c
+++ b/src/gallium/drivers/trace/tr_context.c
@@ -26,6 +26,8 @@
**************************************************************************/
#include "util/u_memory.h"
+#include "util/u_simple_list.h"
+
#include "pipe/p_screen.h"
#include "tr_dump.h"
@@ -1014,16 +1016,17 @@ trace_context_flush(struct pipe_context *_pipe,
static INLINE void
trace_context_destroy(struct pipe_context *_pipe)
{
+ struct trace_screen *tr_scr = trace_screen(_pipe->screen);
struct trace_context *tr_ctx = trace_context(_pipe);
struct pipe_context *pipe = tr_ctx->pipe;
trace_dump_call_begin("pipe_context", "destroy");
-
trace_dump_arg(ptr, pipe);
+ trace_dump_call_end();
- pipe->destroy(pipe);
+ trace_screen_remove_from_list(tr_scr, contexts, tr_ctx);
- trace_dump_call_end();
+ pipe->destroy(pipe);
FREE(tr_ctx);
}
@@ -1150,6 +1153,8 @@ trace_context_create(struct pipe_screen *_screen,
trace_dump_ret(ptr, pipe);
trace_dump_call_end();
+ trace_screen_add_to_list(tr_scr, contexts, tr_ctx);
+
return &tr_ctx->base;
error1: