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 | |
| parent | ffd0759973165368ac8ce07d9bcffeb0acf88e6f (diff) | |
llvmpipe: checkpoint some initial state binning code
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/llvmpipe/lp_rast.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup.c | 16 | 
2 files changed, 15 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c index 2d319777ee..d5fe6e9369 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.c +++ b/src/gallium/drivers/llvmpipe/lp_rast.c @@ -235,6 +235,8 @@ void lp_rast_load_zstencil( struct lp_rasterizer *rast,  void lp_rast_set_state( struct lp_rasterizer *rast,                          const union lp_rast_cmd_arg arg )  { +   const struct lp_rast_state *state = arg.set_state; +     RAST_DEBUG("%s\n", __FUNCTION__);     /* XXX to do */ 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           }        }     }  | 
