i915g: Add flag to not send commands to hw
[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 boolean send_cmd;
22
23 int fd; /**< Drm file discriptor */
24
25 size_t max_batch_size;
26
27 struct {
28 drm_intel_bufmgr *gem;
29 } pools;
30 };
31
32 static INLINE struct i915_drm_winsys *
33 i915_drm_winsys(struct i915_winsys *iws)
34 {
35 return (struct i915_drm_winsys *)iws;
36 }
37
38 struct pipe_fence_handle * i915_drm_fence_create(drm_intel_bo *bo);
39
40 void i915_drm_winsys_init_batchbuffer_functions(struct i915_drm_winsys *idws);
41 void i915_drm_winsys_init_buffer_functions(struct i915_drm_winsys *idws);
42 void i915_drm_winsys_init_fence_functions(struct i915_drm_winsys *idws);
43
44
45 /*
46 * Buffer
47 */
48
49
50 struct i915_drm_buffer {
51 unsigned magic;
52
53 drm_intel_bo *bo;
54
55 void *ptr;
56 unsigned map_count;
57 boolean map_gtt;
58
59 boolean flinked;
60 unsigned flink;
61 };
62
63 static INLINE struct i915_drm_buffer *
64 i915_drm_buffer(struct i915_winsys_buffer *buffer)
65 {
66 return (struct i915_drm_buffer *)buffer;
67 }
68
69 static INLINE drm_intel_bo *
70 intel_bo(struct i915_winsys_buffer *buffer)
71 {
72 return i915_drm_buffer(buffer)->bo;
73 }
74
75 #endif