2 #ifndef INTEL_DRM_DEVICE_H
3 #define INTEL_DRM_DEVICE_H
5 #include "pipe/internal/p_winsys_screen.h"
6 #include "pipe/p_context.h"
9 #include "intel_bufmgr.h"
15 struct intel_be_device
17 struct pipe_winsys base
;
19 int fd
; /**< Drm file discriptor */
23 size_t max_batch_size
;
24 size_t max_vertex_size
;
27 drm_intel_bufmgr
*gem
;
31 static INLINE
struct intel_be_device
*
32 intel_be_device(struct pipe_winsys
*winsys
)
34 return (struct intel_be_device
*)winsys
;
38 intel_be_init_device(struct intel_be_device
*device
, int fd
, unsigned id
);
44 struct intel_be_buffer
{
45 struct pipe_buffer base
;
52 * Create a be buffer from a drm bo handle.
57 intel_be_buffer_from_handle(struct pipe_screen
*screen
,
58 const char* name
, unsigned handle
);
61 * Gets a handle from a buffer.
63 * If buffer is destroyed handle may become invalid.
66 intel_be_handle_from_buffer(struct pipe_screen
*screen
,
67 struct pipe_buffer
*buffer
,
71 * Gets the global handle from a buffer.
73 * If buffer is destroyed handle may become invalid.
76 intel_be_global_handle_from_buffer(struct pipe_screen
*screen
,
77 struct pipe_buffer
*buffer
,
80 static INLINE
struct intel_be_buffer
*
81 intel_be_buffer(struct pipe_buffer
*buf
)
83 return (struct intel_be_buffer
*)buf
;
86 static INLINE drm_intel_bo
*
87 intel_bo(struct pipe_buffer
*buf
)
89 return intel_be_buffer(buf
)->bo
;