5 #include "pipe/p_compiler.h"
13 enum drm_create_screen_mode
{
14 DRM_CREATE_NORMAL
= 0,
16 DRM_CREATE_DRIVER
= 1024,
20 #define DRM_API_HANDLE_TYPE_SHARED 0
21 #define DRM_API_HANDLE_TYPE_KMS 1
24 * For use with pipe_screen::{texture_from_handle|texture_get_handle}.
29 * Unused for texture_from_handle, always
30 * DRM_API_HANDLE_TYPE_SHARED. Input to texture_get_handle,
31 * use TEXTURE_USAGE to select handle for kms or ipc.
35 * Input to texture_from_handle.
36 * Output for texture_get_handle.
40 * Input to texture_from_handle.
41 * Output for texture_get_handle.
47 * Modes other than DRM_CREATE_NORMAL derive from this struct.
50 struct drm_create_screen_arg
{
51 enum drm_create_screen_mode mode
;
57 void (*destroy
)(struct drm_api
*api
);
62 * Kernel driver name, as accepted by drmOpenByName.
64 const char *driver_name
;
67 * Create a pipe srcreen.
69 struct pipe_screen
* (*create_screen
)(struct drm_api
*api
, int drm_fd
,
70 struct drm_create_screen_arg
*arg
);
73 extern struct drm_api
* drm_api_create(void);