Merge branch 'mesa_7_6_branch'
[mesa.git] / src / gallium / winsys / drm / intel / gem / intel_drm_winsys.h
1
2 #ifndef INTEL_DRM_WINSYS_H
3 #define INTEL_DRM_WINSYS_H
4
5 #include "i915/intel_batchbuffer.h"
6
7 #include "drm.h"
8 #include "intel_bufmgr.h"
9
10
11 /*
12 * Winsys
13 */
14
15
16 struct intel_drm_winsys
17 {
18 struct intel_winsys base;
19
20 boolean softpipe;
21 boolean dump_cmd;
22
23 int fd; /**< Drm file discriptor */
24
25 unsigned id;
26
27 size_t max_batch_size;
28
29 struct {
30 drm_intel_bufmgr *gem;
31 } pools;
32 };
33
34 static INLINE struct intel_drm_winsys *
35 intel_drm_winsys(struct intel_winsys *iws)
36 {
37 return (struct intel_drm_winsys *)iws;
38 }
39
40 struct intel_drm_winsys * intel_drm_winsys_create(int fd, unsigned pci_id);
41 struct pipe_fence_handle * intel_drm_fence_create(drm_intel_bo *bo);
42
43 void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws);
44 void intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws);
45 void intel_drm_winsys_init_fence_functions(struct intel_drm_winsys *idws);
46
47
48 /*
49 * Buffer
50 */
51
52
53 struct intel_drm_buffer {
54 unsigned magic;
55
56 drm_intel_bo *bo;
57
58 void *ptr;
59 unsigned map_count;
60 boolean map_gtt;
61
62 boolean flinked;
63 unsigned flink;
64 };
65
66 static INLINE struct intel_drm_buffer *
67 intel_drm_buffer(struct intel_buffer *buffer)
68 {
69 return (struct intel_drm_buffer *)buffer;
70 }
71
72 static INLINE drm_intel_bo *
73 intel_bo(struct intel_buffer *buffer)
74 {
75 return intel_drm_buffer(buffer)->bo;
76 }
77
78 #endif