From fc01fafdbc83830bd98497378ad22953bcba502c Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 27 Aug 2019 14:43:33 +1000 Subject: [PATCH] llvmpipe: introduce new state dirty tracking for compute. Compute doesn't share dirty state with the fragment pipeline so create a separate path for it. Reviewed-by: Roland Scheidegger --- src/gallium/drivers/llvmpipe/lp_context.h | 2 +- src/gallium/drivers/llvmpipe/lp_state.h | 1 + src/gallium/drivers/llvmpipe/lp_state_cs.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_context.h b/src/gallium/drivers/llvmpipe/lp_context.h index f1c2d40..1fd0d0a 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.h +++ b/src/gallium/drivers/llvmpipe/lp_context.h @@ -104,7 +104,7 @@ struct llvmpipe_context { unsigned active_occlusion_queries; unsigned dirty; /**< Mask of LP_NEW_x flags */ - + unsigned cs_dirty; /**< Mask of LP_CSNEW_x flags */ /** Mapped vertex buffers */ ubyte *mapped_vbuffer[PIPE_MAX_ATTRIBS]; diff --git a/src/gallium/drivers/llvmpipe/lp_state.h b/src/gallium/drivers/llvmpipe/lp_state.h index 46885a7..8f22deb 100644 --- a/src/gallium/drivers/llvmpipe/lp_state.h +++ b/src/gallium/drivers/llvmpipe/lp_state.h @@ -59,6 +59,7 @@ #define LP_NEW_FS_SSBOS 0x80000 #define LP_NEW_FS_IMAGES 0x100000 +#define LP_CSNEW_CS 0x1 struct vertex_info; struct pipe_context; diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c index cc515c4..0da8626 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_cs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c @@ -61,6 +61,7 @@ llvmpipe_bind_compute_state(struct pipe_context *pipe, return; llvmpipe->cs = (struct lp_compute_shader *)cs; + llvmpipe->cs_dirty |= LP_CSNEW_CS; } /** -- 2.7.4