summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/ddebug
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2016-04-21 17:37:40 +0200
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2016-05-13 07:43:46 +0200
commitac77fb74a018c37bbc0d42d9d4fafc1b8511ad3f (patch)
treec0af56baa69188f6b6cce33f5060f1f3a331a277 /src/gallium/drivers/ddebug
parent22b35122faae0c6907a29876c33240afb345edf1 (diff)
gallium/ddebug: Implement launch_grid.
Does not implement dumping info. Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/ddebug')
-rw-r--r--src/gallium/drivers/ddebug/dd_draw.c29
1 files changed, 29 insertions, 0 deletions
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;
@@ -372,6 +374,13 @@ dd_dump_draw_vbo(struct dd_context *dctx, struct pipe_draw_info *info, FILE *f)
}
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,
FILE *f)
@@ -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;
@@ -649,6 +661,22 @@ dd_context_draw_vbo(struct pipe_context *_pipe,
}
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,
unsigned dstx, unsigned dsty, unsigned dstz,
@@ -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);