From ac77fb74a018c37bbc0d42d9d4fafc1b8511ad3f Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Thu, 21 Apr 2016 17:37:40 +0200 Subject: [PATCH] gallium/ddebug: Implement launch_grid. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Does not implement dumping info. Signed-off-by: Bas Nieuwenhuizen Reviewed-by: Marek Olšák --- src/gallium/drivers/ddebug/dd_draw.c | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/gallium/drivers/ddebug/dd_draw.c b/src/gallium/drivers/ddebug/dd_draw.c index 45e4e10d500..f0c88879643 100644 --- a/src/gallium/drivers/ddebug/dd_draw.c +++ b/src/gallium/drivers/ddebug/dd_draw.c @@ -35,6 +35,7 @@ enum call_type { CALL_DRAW_VBO, + CALL_LAUNCH_GRID, CALL_RESOURCE_COPY_REGION, CALL_BLIT, CALL_FLUSH_RESOURCE, @@ -77,6 +78,7 @@ struct dd_call union { struct pipe_draw_info draw_vbo; + struct pipe_grid_info launch_grid; struct call_resource_copy_region resource_copy_region; struct pipe_blit_info blit; struct pipe_resource *flush_resource; @@ -371,6 +373,13 @@ dd_dump_draw_vbo(struct dd_context *dctx, struct pipe_draw_info *info, FILE *f) fprintf(f, "\n"); } +static void +dd_dump_launch_grid(struct dd_context *dctx, struct pipe_grid_info *info, FILE *f) +{ + fprintf(f, "%s:\n", __func__+8); + /* TODO */ +} + static void dd_dump_resource_copy_region(struct dd_context *dctx, struct call_resource_copy_region *info, @@ -485,6 +494,9 @@ dd_dump_call(struct dd_context *dctx, struct dd_call *call, unsigned flags) case CALL_DRAW_VBO: dd_dump_draw_vbo(dctx, &call->info.draw_vbo, f); break; + case CALL_LAUNCH_GRID: + dd_dump_launch_grid(dctx, &call->info.launch_grid, f); + break; case CALL_RESOURCE_COPY_REGION: dd_dump_resource_copy_region(dctx, &call->info.resource_copy_region, f); break; @@ -648,6 +660,22 @@ dd_context_draw_vbo(struct pipe_context *_pipe, dd_after_draw(dctx, &call); } +static void +dd_context_launch_grid(struct pipe_context *_pipe, + const struct pipe_grid_info *info) +{ + struct dd_context *dctx = dd_context(_pipe); + struct pipe_context *pipe = dctx->pipe; + struct dd_call call; + + call.type = CALL_LAUNCH_GRID; + call.info.launch_grid = *info; + + dd_before_draw(dctx); + pipe->launch_grid(pipe, info); + dd_after_draw(dctx, &call); +} + static void dd_context_resource_copy_region(struct pipe_context *_pipe, struct pipe_resource *dst, unsigned dst_level, @@ -789,6 +817,7 @@ dd_init_draw_functions(struct dd_context *dctx) { CTX_INIT(flush); CTX_INIT(draw_vbo); + CTX_INIT(launch_grid); CTX_INIT(resource_copy_region); CTX_INIT(blit); CTX_INIT(clear); -- 2.30.2