diff options
author | Ben Skeggs <[email protected]> | 2008-06-16 22:02:02 +1000 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2008-06-29 15:46:18 +1000 |
commit | 5d3070149267251bafc1ff982b77e7f422554f50 (patch) | |
tree | 9df80c1e5f9b873cd8ad9e212949d90435373ffb /src/gallium/drivers/nouveau | |
parent | 431504b99cd55948522e86a249e656e78598ddbd (diff) |
nv50: use stateobjs for sampler/image_control uploads
Diffstat (limited to 'src/gallium/drivers/nouveau')
-rw-r--r-- | src/gallium/drivers/nouveau/nouveau_stateobj.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nouveau_stateobj.h b/src/gallium/drivers/nouveau/nouveau_stateobj.h index d501b76b51e..78b27380702 100644 --- a/src/gallium/drivers/nouveau/nouveau_stateobj.h +++ b/src/gallium/drivers/nouveau/nouveau_stateobj.h @@ -2,6 +2,7 @@ #define __NOUVEAU_STATEOBJ_H__ #include "pipe/p_util.h" +#include "pipe/p_debug.h" struct nouveau_stateobj_reloc { struct pipe_buffer *bo; @@ -68,6 +69,14 @@ so_data(struct nouveau_stateobj *so, unsigned data) } static INLINE void +so_datap(struct nouveau_stateobj *so, unsigned *data, unsigned size) +{ + so->cur_packet += (4 * size); + while (size--) + (*so->cur++) = (*data++); +} + +static INLINE void so_method(struct nouveau_stateobj *so, struct nouveau_grobj *gr, unsigned mthd, unsigned size) { @@ -92,6 +101,15 @@ so_reloc(struct nouveau_stateobj *so, struct pipe_buffer *bo, } static INLINE void +so_dump(struct nouveau_stateobj *so) +{ + unsigned i, nr = so->cur - so->push; + + for (i = 0; i < nr; i++) + debug_printf("+0x%04x: 0x%08x\n", i, so->push[i]); +} + +static INLINE void so_emit(struct nouveau_winsys *nvws, struct nouveau_stateobj *so) { struct nouveau_pushbuf *pb = nvws->channel->pushbuf; |