aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/nouveau/nv04_context.h
diff options
context:
space:
mode:
authorBen Skeggs <[email protected]>2012-04-13 17:50:37 +1000
committerBen Skeggs <[email protected]>2012-04-14 02:56:12 +1000
commitf3d8bd3f7b9f5c6387cd5e629a82db9ad9a1e652 (patch)
tree7708f8b86ab74d0d62585e0c2a8eb3321e7c81c8 /src/mesa/drivers/dri/nouveau/nv04_context.h
parent2e47d01c9e5325906cf3bb979279599991c6328e (diff)
nouveau: rework and simplify nv04/nv05 driver a bit
TEXTURED_TRIANGLE and MULTITEX_TRIANGLE are both a bit special in that if you use any other graph object in the meantime they'll forget their state and spew a lovely METHOD_CNT error at you when you try to draw. The pre-newlib driver has a flush_notify() hook which does this state re-emit, and a number of random workarounds like extra flushes and state dirtying after various operations to solve this issue. I'm taking a slightly different approach to things instead, which has the nice side-effect of removing the divergent code-paths for ttri/mtri, the flush/dirty workarounds and the need for flush_notify. Also gives a few FPS boost in OA, yay.
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nv04_context.h')
-rw-r--r--src/mesa/drivers/dri/nouveau/nv04_context.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nv04_context.h b/src/mesa/drivers/dri/nouveau/nv04_context.h
index 589aab27b74..b63024c1428 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_context.h
+++ b/src/mesa/drivers/dri/nouveau/nv04_context.h
@@ -35,6 +35,17 @@ struct nv04_context {
struct nouveau_object *eng3d;
struct nouveau_surface dummy_texture;
float viewport[16];
+
+ uint32_t colorkey;
+ struct nouveau_surface *texture[2];
+ uint32_t format[2];
+ uint32_t filter[2];
+ uint32_t alpha[2];
+ uint32_t color[2];
+ uint32_t factor;
+ uint32_t blend;
+ uint32_t ctrl[3];
+ uint32_t fog;
};
#define to_nv04_context(ctx) ((struct nv04_context *)(ctx))