From 82d62cf04f3c585ba324fcef16417fbee4a3d220 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 15 Feb 2013 10:36:32 -0700 Subject: trace: fix incorrect trace_surface::base.context pointer When a trace_surface object is created in trace_surf_create() we weren't correctly setting the surface's context pointer. Instead of it being the trace context, it was the wrapped driver's context. This caused things to blow up sometimes during surface deallocation. Reviewed-by: Jose Fonseca --- src/gallium/drivers/trace/tr_texture.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/trace/tr_texture.c') diff --git a/src/gallium/drivers/trace/tr_texture.c b/src/gallium/drivers/trace/tr_texture.c index 81ebc9ee770..aae13383865 100644 --- a/src/gallium/drivers/trace/tr_texture.c +++ b/src/gallium/drivers/trace/tr_texture.c @@ -74,7 +74,8 @@ trace_resource_destroy(struct trace_screen *tr_scr, struct pipe_surface * -trace_surf_create(struct trace_resource *tr_res, +trace_surf_create(struct trace_context *tr_ctx, + struct trace_resource *tr_res, struct pipe_surface *surface) { struct trace_surface *tr_surf; @@ -89,6 +90,7 @@ trace_surf_create(struct trace_resource *tr_res, goto error; memcpy(&tr_surf->base, surface, sizeof(struct pipe_surface)); + tr_surf->base.context = &tr_ctx->base; pipe_reference_init(&tr_surf->base.reference, 1); tr_surf->base.texture = NULL; -- cgit v1.2.3