#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 "nouveau/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;
- struct nv30_context *cur_ctx;
+ 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;
}
#endif