summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2019-08-27 14:43:33 +1000
committerDave Airlie <[email protected]>2019-09-04 15:22:20 +1000
commitfc01fafdbc83830bd98497378ad22953bcba502c (patch)
tree0968d31f74a7408ef10b3b54dff5dbd9a0283dc1
parenta6f6ca37c82bb6810971cab0dccc308e4d28a05a (diff)
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 <[email protected]>
-rw-r--r--src/gallium/drivers/llvmpipe/lp_context.h2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state.h1
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_cs.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_context.h b/src/gallium/drivers/llvmpipe/lp_context.h
index f1c2d40f9eb..1fd0d0a2dea 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 46885a7e701..8f22debed41 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 cc515c43075..0da862626bc 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;
}
/**