diff options
author | Brian Paul <brianp@vmware.com> | 2009-12-03 16:05:12 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-12-03 16:05:12 -0700 |
commit | e2f46344560f8f1193b311ad41883011e67eea00 (patch) | |
tree | 9b3eef5812a33dc7fbc2c6160c36c136533f0e62 /src/gallium/drivers/llvmpipe/lp_setup.c | |
parent | ffd0759973165368ac8ce07d9bcffeb0acf88e6f (diff) |
llvmpipe: checkpoint some initial state binning code
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_setup.c')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c index 142fec4f80..36bd0ad4dd 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.c +++ b/src/gallium/drivers/llvmpipe/lp_setup.c @@ -594,14 +594,24 @@ lp_setup_update_shader_state( struct setup_context *setup ) memcmp(setup->fs.stored, &setup->fs.current, sizeof setup->fs.current) != 0) { - struct lp_rast_state *stored; - - stored = get_data(&setup->data, sizeof *stored); + /* The fs state that's been stored in the bins is different from + * the new, current state. So allocate a new lp_rast_state object + * and append it to the bin's setup data buffer. + */ + struct lp_rast_state *stored = + (struct lp_rast_state *) get_data(&setup->data, sizeof *stored); if(stored) { memcpy(stored, &setup->fs.current, sizeof setup->fs.current); setup->fs.stored = stored; + +#if 0 + /* put the state-set command into all bins */ + bin_everywhere( setup, + lp_rast_set_state, + *setup->fs.stored ); +#endif } } } |