diff options
author | Ben Skeggs <[email protected]> | 2008-02-16 21:27:53 +1100 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2008-02-18 12:46:25 +1100 |
commit | 5e091b573aa0a0c45f8ff34429f2a9d4198bb80a (patch) | |
tree | 0f5466954eeed371b00d5487989e1602398435c7 /src/gallium/drivers/nv40/nv40_context.h | |
parent | 9a6c39bd2e857398199f46f302a70317a70e3a8d (diff) |
nv40: ensure scissor gets disabled where necessary
Fixes progs/demos/lodbias.
Makes a complete mess of things, but now there's a motivation to finish
this off :)
Diffstat (limited to 'src/gallium/drivers/nv40/nv40_context.h')
-rw-r--r-- | src/gallium/drivers/nv40/nv40_context.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv40/nv40_context.h b/src/gallium/drivers/nv40/nv40_context.h index f511759e3be..c4523112dbc 100644 --- a/src/gallium/drivers/nv40/nv40_context.h +++ b/src/gallium/drivers/nv40/nv40_context.h @@ -54,6 +54,11 @@ struct nv40_channel_context { struct nouveau_resource *vp_data_heap; }; +struct nv40_rasterizer_state { + struct pipe_rasterizer_state pipe; + struct nouveau_stateobj *so; +}; + struct nv40_context { struct pipe_context pipe; struct nouveau_winsys *nvws; @@ -63,7 +68,8 @@ struct nv40_context { int chipset; - uint32_t dirty; + unsigned dirty; + unsigned hw_dirty; struct nv40_sampler_state *tex_sampler[PIPE_MAX_SAMPLERS]; struct nv40_miptree *tex_miptree[PIPE_MAX_SAMPLERS]; @@ -71,14 +77,23 @@ struct nv40_context { unsigned fp_samplers; unsigned vp_samplers; + struct { + struct pipe_scissor_state scissor; + } pipe_state; + + struct { + unsigned scissor_enabled; + struct nouveau_stateobj *scissor; + } state; + struct nouveau_stateobj *so_framebuffer; struct nouveau_stateobj *so_fragtex[16]; struct nouveau_stateobj *so_vtxbuf; struct nouveau_stateobj *so_blend; + struct nv40_rasterizer_state *rasterizer; struct nouveau_stateobj *so_rast; struct nouveau_stateobj *so_zsa; struct nouveau_stateobj *so_bcol; - struct nouveau_stateobj *so_scissor; struct nouveau_stateobj *so_viewport; struct nouveau_stateobj *so_stipple; |