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