summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv40/nv40_context.h
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-02-16 21:27:53 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-02-18 12:46:25 +1100
commit5e091b573aa0a0c45f8ff34429f2a9d4198bb80a (patch)
tree0f5466954eeed371b00d5487989e1602398435c7 /src/gallium/drivers/nv40/nv40_context.h
parent9a6c39bd2e857398199f46f302a70317a70e3a8d (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.h19
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 f511759e3b..c4523112db 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;