summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup_context.h
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-10-18 11:57:43 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-10-18 11:57:43 +0100
commit2e3580d994e2caf6d81763803c8525a7ed42b8fd (patch)
tree64ccfa6ba7bc221d689c50357527fe6bf733bd14 /src/gallium/drivers/llvmpipe/lp_setup_context.h
parent0177c6e66cfddeb62feca86e7bd5ae763b9b5244 (diff)
llvmpipe: Maintain a copy of the shader constants to prevent clobbering.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_setup_context.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup_context.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_context.h b/src/gallium/drivers/llvmpipe/lp_setup_context.h
index c15a59e4d1..82ec71f100 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_context.h
+++ b/src/gallium/drivers/llvmpipe/lp_setup_context.h
@@ -43,6 +43,10 @@
#define DATA_BLOCK_SIZE (16 * 1024 - sizeof(unsigned) - sizeof(void *))
+#define LP_SETUP_NEW_FS 0x01
+#define LP_SETUP_NEW_CONSTANTS 0x02
+
+
/* switch to a non-pointer value for this:
*/
typedef void (*lp_rast_cmd)( struct lp_rasterizer *, const union lp_rast_cmd_arg );
@@ -112,9 +116,16 @@ struct setup_context {
const struct lp_rast_state *stored;
struct lp_rast_state current;
- boolean dirty;
} fs;
+ struct {
+ struct pipe_buffer *current;
+ unsigned stored_size;
+ const void *stored_data;
+ } constants;
+
+ unsigned dirty;
+
void (*point)( struct setup_context *,
const float (*v0)[4]);