DRI2: report swap events correctly in direct rendered case
[mesa.git] / src / gallium / winsys / drm / i965 / gem / i965_drm_winsys.h
1
2 #ifndef INTEL_DRM_WINSYS_H
3 #define INTEL_DRM_WINSYS_H
4
5 #include "i965/brw_winsys.h"
6
7 #include "drm.h"
8 #include "intel_bufmgr.h"
9
10
11
12 /*
13 * Winsys
14 */
15
16
17 struct i965_libdrm_winsys
18 {
19 struct brw_winsys_screen base;
20 drm_intel_bufmgr *gem;
21
22 boolean send_cmd;
23
24 int fd; /**< Drm file discriptor */
25
26 unsigned id;
27 };
28
29 static INLINE struct i965_libdrm_winsys *
30 i965_libdrm_winsys(struct brw_winsys_screen *iws)
31 {
32 return (struct i965_libdrm_winsys *)iws;
33 }
34
35 struct i965_libdrm_winsys *i965_libdrm_winsys_create(int fd, unsigned pci_id);
36
37 void i965_libdrm_winsys_init_buffer_functions(struct i965_libdrm_winsys *idws);
38
39
40 /* Buffer.
41 */
42 struct i965_libdrm_buffer {
43 struct brw_winsys_buffer base;
44
45 drm_intel_bo *bo;
46
47 void *ptr;
48 unsigned map_count;
49 unsigned data_type; /* valid while mapped */
50 unsigned tiling;
51
52 boolean map_gtt;
53 boolean flinked;
54 unsigned flink;
55 };
56
57 static INLINE struct i965_libdrm_buffer *
58 i965_libdrm_buffer(struct brw_winsys_buffer *buffer)
59 {
60 return (struct i965_libdrm_buffer *)buffer;
61 }
62
63
64 #endif