1a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#ifndef __NV30_SCREEN_H__
2a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#define __NV30_SCREEN_H__
3a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
4a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include <stdio.h>
5a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
6a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#define NOUVEAU_ERR(fmt, args...) \
7a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   fprintf(stderr, "%s:%d -  "fmt, __FUNCTION__, __LINE__, ##args);
8a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
9a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include "util/u_double_list.h"
10a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
11a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include "nouveau/nouveau_screen.h"
12a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include "nouveau/nouveau_fence.h"
13a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include "nouveau/nouveau_heap.h"
14a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include "nv30_winsys.h"
15a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#include "nv30_resource.h"
16a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
17a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggsstruct nv30_context;
18a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
19a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggsstruct nv30_screen {
20a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_screen base;
21a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
22a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nv30_context *cur_ctx;
23a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
24a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_bo *notify;
25a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
26a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *ntfy;
27a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *fence;
28a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
29a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *query;
30a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_heap *query_heap;
31a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct list_head queries;
32a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
33a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *null;
34a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *eng3d;
35a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *m2mf;
36a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *surf2d;
37a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *swzsurf;
38a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_object *sifm;
39a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
40a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   /*XXX: nvfx state */
41a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_heap *vp_exec_heap;
42a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   struct nouveau_heap *vp_data_heap;
43a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs};
44a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
45a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggsstatic INLINE struct nv30_screen *
46a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggsnv30_screen(struct pipe_screen *pscreen)
47a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs{
48a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs   return (struct nv30_screen *)pscreen;
49a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs}
50a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs
51a2fc42b899de22273c1df96091bfb5c636075cb0Ben Skeggs#endif
52