1 #ifndef NOUVEAU_WINSYS_H
2 #define NOUVEAU_WINSYS_H
5 #include "util/u_simple_screen.h"
6 #include "pipe/p_defines.h"
8 #include "nouveau/nouveau_bo.h"
9 #include "nouveau/nouveau_channel.h"
10 #include "nouveau/nouveau_class.h"
11 #include "nouveau/nouveau_device.h"
12 #include "nouveau/nouveau_grobj.h"
13 #include "nouveau/nouveau_notifier.h"
14 #include "nouveau/nouveau_resource.h"
15 #include "nouveau/nouveau_pushbuf.h"
17 #define NOUVEAU_CAP_HW_VTXBUF (0xbeef0000)
18 #define NOUVEAU_CAP_HW_IDXBUF (0xbeef0001)
20 #define NOUVEAU_TEXTURE_USAGE_LINEAR (1 << 16)
22 #define NOUVEAU_BUFFER_USAGE_TEXTURE (1 << 16)
23 #define NOUVEAU_BUFFER_USAGE_ZETA (1 << 17)
24 #define NOUVEAU_BUFFER_USAGE_TRANSFER (1 << 18)
26 /* use along with GPU_WRITE for 2D-only writes */
27 #define NOUVEAU_BUFFER_USAGE_NO_RENDER (1 << 19)
29 extern struct pipe_screen
*
30 nv04_screen_create(struct pipe_winsys
*ws
, struct nouveau_device
*);
32 extern struct pipe_context
*
33 nv04_create(struct pipe_screen
*, unsigned pctx_id
);
35 extern struct pipe_screen
*
36 nv10_screen_create(struct pipe_winsys
*ws
, struct nouveau_device
*);
38 extern struct pipe_context
*
39 nv10_create(struct pipe_screen
*, unsigned pctx_id
);
41 extern struct pipe_screen
*
42 nv20_screen_create(struct pipe_winsys
*ws
, struct nouveau_device
*);
44 extern struct pipe_context
*
45 nv20_create(struct pipe_screen
*, unsigned pctx_id
);
47 extern struct pipe_screen
*
48 nv30_screen_create(struct pipe_winsys
*ws
, struct nouveau_device
*);
50 extern struct pipe_context
*
51 nv30_create(struct pipe_screen
*, unsigned pctx_id
);
53 extern struct pipe_screen
*
54 nv40_screen_create(struct pipe_winsys
*ws
, struct nouveau_device
*);
56 extern struct pipe_context
*
57 nv40_create(struct pipe_screen
*, unsigned pctx_id
);
59 extern struct pipe_screen
*
60 nv50_screen_create(struct pipe_winsys
*ws
, struct nouveau_device
*);
62 extern struct pipe_context
*
63 nv50_create(struct pipe_screen
*, unsigned pctx_id
);