summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-11-23 18:54:11 +1100
committerBen Skeggs <skeggsb@gmail.com>2007-11-23 18:54:19 +1100
commit558f3abb49475ba0aad585e7fb0c07121aecde6f (patch)
tree5553c9e561ddf359858a4cddc8228a387746081c /src/mesa/pipe/nouveau
parentdd1500b8b436dc4a009455489ade7dcf65f03d07 (diff)
nv40: support for keeping multiple vtxprogs on the hw at the same time.
Diffstat (limited to 'src/mesa/pipe/nouveau')
-rw-r--r--src/mesa/pipe/nouveau/nouveau_winsys.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mesa/pipe/nouveau/nouveau_winsys.h b/src/mesa/pipe/nouveau/nouveau_winsys.h
index beee49a134..28f17cdc8f 100644
--- a/src/mesa/pipe/nouveau/nouveau_winsys.h
+++ b/src/mesa/pipe/nouveau/nouveau_winsys.h
@@ -3,6 +3,7 @@
#include <stdint.h>
#include "pipe/p_winsys.h"
+#include "pipe/p_defines.h"
#include "pipe/nouveau/nouveau_bo.h"
#include "pipe/nouveau/nouveau_channel.h"
@@ -10,11 +11,27 @@
#include "pipe/nouveau/nouveau_grobj.h"
#include "pipe/nouveau/nouveau_notifier.h"
+struct nouveau_resource {
+ struct nouveau_resource *prev;
+ struct nouveau_resource *next;
+
+ boolean in_use;
+ void *priv;
+
+ uint start;
+ uint size;
+};
+
struct nouveau_winsys {
struct nouveau_context *nv;
struct nouveau_channel *channel;
+ int (*res_init)(struct nouveau_resource **heap, int size);
+ int (*res_alloc)(struct nouveau_resource *heap, int size, void *priv,
+ struct nouveau_resource **);
+ void (*res_free)(struct nouveau_resource **);
+
/*XXX: this is crappy, and bound to be slow.. however, it's nice and
* simple, it'll do for the moment*/
uint32_t *(*begin_ring)(struct nouveau_grobj *, int mthd, int size);