diff options
author | Ben Skeggs <[email protected]> | 2012-04-13 17:50:37 +1000 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2012-04-14 02:56:12 +1000 |
commit | f3d8bd3f7b9f5c6387cd5e629a82db9ad9a1e652 (patch) | |
tree | 7708f8b86ab74d0d62585e0c2a8eb3321e7c81c8 /src/mesa/drivers/dri/nouveau/nv04_context.h | |
parent | 2e47d01c9e5325906cf3bb979279599991c6328e (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.h | 11 |
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)) |