4c3e08a43f5d8131ce78761580922c8fef1022d4
[mesa.git] / src / gallium / drivers / nouveau / nouveau_winsys.h
1 #ifndef NOUVEAU_WINSYS_H
2 #define NOUVEAU_WINSYS_H
3
4 #include <stdint.h>
5 #include "pipe/internal/p_winsys_screen.h"
6 #include "pipe/p_defines.h"
7
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"
16
17 #define NOUVEAU_CAP_HW_VTXBUF (0xbeef0000)
18 #define NOUVEAU_CAP_HW_IDXBUF (0xbeef0001)
19
20 #define NOUVEAU_TEXTURE_USAGE_LINEAR (1 << 16)
21
22 #define NOUVEAU_BUFFER_USAGE_TEXTURE (1 << 16)
23 #define NOUVEAU_BUFFER_USAGE_ZETA (1 << 17)
24 #define NOUVEAU_BUFFER_USAGE_TRANSFER (1 << 18)
25
26 /* use along with GPU_WRITE for 2D-only writes */
27 #define NOUVEAU_BUFFER_USAGE_NO_RENDER (1 << 19)
28
29 extern struct pipe_screen *
30 nv04_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
31
32 extern struct pipe_context *
33 nv04_create(struct pipe_screen *, unsigned pctx_id);
34
35 extern struct pipe_screen *
36 nv10_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
37
38 extern struct pipe_context *
39 nv10_create(struct pipe_screen *, unsigned pctx_id);
40
41 extern struct pipe_screen *
42 nv20_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
43
44 extern struct pipe_context *
45 nv20_create(struct pipe_screen *, unsigned pctx_id);
46
47 extern struct pipe_screen *
48 nv30_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
49
50 extern struct pipe_context *
51 nv30_create(struct pipe_screen *, unsigned pctx_id);
52
53 extern struct pipe_screen *
54 nv40_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
55
56 extern struct pipe_context *
57 nv40_create(struct pipe_screen *, unsigned pctx_id);
58
59 extern struct pipe_screen *
60 nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
61
62 extern struct pipe_context *
63 nv50_create(struct pipe_screen *, unsigned pctx_id);
64
65 #endif