diff options
author | José Fonseca <jfonseca@vmware.com> | 2009-10-18 11:57:43 +0100 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2009-10-18 11:57:43 +0100 |
commit | 2e3580d994e2caf6d81763803c8525a7ed42b8fd (patch) | |
tree | 64ccfa6ba7bc221d689c50357527fe6bf733bd14 /src/gallium/drivers/llvmpipe/lp_setup_context.h | |
parent | 0177c6e66cfddeb62feca86e7bd5ae763b9b5244 (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.h | 13 |
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]); |