r300: respect radeon common code fallbacks
[mesa.git] / src / mesa / drivers / dri / radeon / radeon_cs_int_drm.h
1
2 #ifndef _RADEON_CS_INT_H_
3 #define _RADEON_CS_INT_H_
4
5 struct radeon_cs_space_check {
6 struct radeon_bo_int *bo;
7 uint32_t read_domains;
8 uint32_t write_domain;
9 uint32_t new_accounted;
10 };
11
12 struct radeon_cs_int {
13 /* keep first two in same place */
14 uint32_t *packets;
15 unsigned cdw;
16 unsigned ndw;
17 unsigned section_ndw;
18 unsigned section_cdw;
19 /* private members */
20 struct radeon_cs_manager *csm;
21 void *relocs;
22 unsigned crelocs;
23 unsigned relocs_total_size;
24 const char *section_file;
25 const char *section_func;
26 int section_line;
27 struct radeon_cs_space_check bos[MAX_SPACE_BOS];
28 int bo_count;
29 void (*space_flush_fn)(void *);
30 void *space_flush_data;
31 };
32
33 /* cs functions */
34 struct radeon_cs_funcs {
35 struct radeon_cs_int *(*cs_create)(struct radeon_cs_manager *csm,
36 uint32_t ndw);
37 int (*cs_write_reloc)(struct radeon_cs_int *cs,
38 struct radeon_bo *bo,
39 uint32_t read_domain,
40 uint32_t write_domain,
41 uint32_t flags);
42 int (*cs_begin)(struct radeon_cs_int *cs,
43 uint32_t ndw,
44 const char *file,
45 const char *func,
46 int line);
47 int (*cs_end)(struct radeon_cs_int *cs,
48 const char *file, const char *func,
49 int line);
50
51
52 int (*cs_emit)(struct radeon_cs_int *cs);
53 int (*cs_destroy)(struct radeon_cs_int *cs);
54 int (*cs_erase)(struct radeon_cs_int *cs);
55 int (*cs_need_flush)(struct radeon_cs_int *cs);
56 void (*cs_print)(struct radeon_cs_int *cs, FILE *file);
57 };
58
59 struct radeon_cs_manager {
60 struct radeon_cs_funcs *funcs;
61 int fd;
62 int32_t vram_limit, gart_limit;
63 int32_t vram_write_used, gart_write_used;
64 int32_t read_used;
65 };
66 #endif