gallium: add start_slot parameter to set_vertex_buffers
[mesa.git] / src / gallium / drivers / nv30 / nv30_screen.h
index 5fbd998b53943c35ebac43b449d7bd4106b4401e..2ee087ef751919f02d414e852c61e00277347997 100644 (file)
@@ -1,41 +1,51 @@
 #ifndef __NV30_SCREEN_H__
 #define __NV30_SCREEN_H__
 
+#include <stdio.h>
+
+#define NOUVEAU_ERR(fmt, args...) \
+   fprintf(stderr, "%s:%d -  "fmt, __FUNCTION__, __LINE__, ##args);
+
+#include "util/u_double_list.h"
+
 #include "nouveau/nouveau_screen.h"
+#include "nouveau/nouveau_fence.h"
+#include "nouveau/nouveau_heap.h"
+#include "nv30_winsys.h"
+#include "nv30_resource.h"
 
-#include "nv04/nv04_surface_2d.h"
+struct nv30_context;
 
 struct nv30_screen {
-       struct nouveau_screen base;
+   struct nouveau_screen base;
 
-       struct nouveau_winsys *nvws;
+   struct nv30_context *cur_ctx;
 
-       unsigned cur_pctx;
+   struct nouveau_bo *notify;
 
-       /* HW graphics objects */
-       struct nv04_surface_2d *eng2d;
-       struct nouveau_grobj *rankine;
-       struct nouveau_notifier *sync;
+   struct nouveau_object *ntfy;
+   struct nouveau_object *fence;
 
-       /* Query object resources */
-       struct nouveau_notifier *query;
-       struct nouveau_resource *query_heap;
+   struct nouveau_object *query;
+   struct nouveau_heap *query_heap;
+   struct list_head queries;
 
-       /* Vtxprog resources */
-       struct nouveau_resource *vp_exec_heap;
-       struct nouveau_resource *vp_data_heap;
+   struct nouveau_object *null;
+   struct nouveau_object *eng3d;
+   struct nouveau_object *m2mf;
+   struct nouveau_object *surf2d;
+   struct nouveau_object *swzsurf;
+   struct nouveau_object *sifm;
 
-       /* Current 3D state of channel */
-       struct nouveau_stateobj *state[NV30_STATE_MAX];
+   /*XXX: nvfx state */
+   struct nouveau_heap *vp_exec_heap;
+   struct nouveau_heap *vp_data_heap;
 };
 
 static INLINE struct nv30_screen *
-nv30_screen(struct pipe_screen *screen)
+nv30_screen(struct pipe_screen *pscreen)
 {
-       return (struct nv30_screen *)screen;
+   return (struct nv30_screen *)pscreen;
 }
 
-void
-nv30_screen_init_transfer_functions(struct pipe_screen *pscreen);
-
 #endif