nv50: introduce the big formats table
[mesa.git] / src / gallium / drivers / nv50 / nv50_screen.h
1 #ifndef __NV50_SCREEN_H__
2 #define __NV50_SCREEN_H__
3
4 #include "nouveau/nouveau_screen.h"
5
6 struct nv50_context;
7
8 struct nv50_screen {
9 struct nouveau_screen base;
10
11 struct nouveau_winsys *nvws;
12
13 struct nv50_context *cur_ctx;
14
15 struct nouveau_grobj *tesla;
16 struct nouveau_grobj *eng2d;
17 struct nouveau_grobj *m2mf;
18 struct nouveau_notifier *sync;
19
20 struct nouveau_bo *constbuf_misc[1];
21 struct nouveau_bo *constbuf_parm[PIPE_SHADER_TYPES];
22
23 struct nouveau_resource *immd_heap;
24
25 struct pipe_resource *strm_vbuf[16];
26
27 struct nouveau_bo *tic;
28 struct nouveau_bo *tsc;
29
30 boolean force_push;
31 };
32
33 static INLINE struct nv50_screen *
34 nv50_screen(struct pipe_screen *screen)
35 {
36 return (struct nv50_screen *)screen;
37 }
38
39 extern void nv50_screen_relocs(struct nv50_screen *);
40
41 struct nv50_format {
42 uint32_t rt;
43 uint32_t tic;
44 uint32_t vtx;
45 uint32_t usage;
46 };
47
48 extern const struct nv50_format nv50_format_table[];
49
50 #endif