Merge remote branch 'origin/master' into pipe-video
[mesa.git] / src / gallium / winsys / radeon / drm / radeon_drm_cs.h
1 #ifndef RADEON_DRM_CS_H
2 #define RADEON_DRM_CS_H
3
4 #include "radeon_winsys.h"
5 #include <radeon_drm.h>
6
7 struct radeon_drm_cs {
8 struct r300_winsys_cs base;
9
10 /* The winsys. */
11 struct radeon_drm_winsys *ws;
12
13 /* Flush CS. */
14 void (*flush_cs)(void *);
15 void *flush_data;
16
17 /* Relocs. */
18 unsigned crelocs;
19 unsigned nrelocs;
20 struct drm_radeon_cs_reloc *relocs;
21 struct radeon_bo **relocs_bo;
22 struct drm_radeon_cs cs;
23 struct drm_radeon_cs_chunk chunks[2];
24
25 unsigned used_vram;
26 unsigned used_gart;
27
28 /* 0 = BO not added, 1 = BO added */
29 char is_handle_added[256];
30 struct drm_radeon_cs_reloc *relocs_hashlist[256];
31 unsigned reloc_indices_hashlist[256];
32 };
33
34 static INLINE struct radeon_drm_cs *
35 radeon_drm_cs(struct r300_winsys_cs *base)
36 {
37 return (struct radeon_drm_cs*)base;
38 }
39
40 void radeon_drm_cs_init_functions(struct radeon_drm_winsys *ws);
41
42 #endif