radeon_drm_cs.h revision 1f0348c4a2ba4f8ca812a2daccf3b01c3f984ef1
1#ifndef RADEON_DRM_CS_H
2#define RADEON_DRM_CS_H
3
4#include "radeon_winsys.h"
5#include <radeon_drm.h>
6
7struct 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
34static INLINE struct radeon_drm_cs *
35radeon_drm_cs(struct r300_winsys_cs *base)
36{
37    return (struct radeon_drm_cs*)base;
38}
39
40void radeon_drm_cs_init_functions(struct radeon_drm_winsys *ws);
41
42#endif
43