mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-20 02:20:15 +01:00
Sync headers with drm-next
Synchronize drm.h, drm_mode.h and drm_fourcc.h to drm-next. Generated using make headers_install Generated from drm-next branch commit 2a084f4ad727244768b919455aa9dc1c04630487 Signed-off-by: Simon Ser <contact@emersion.fr>
This commit is contained in:
parent
35a21916c8
commit
31e68ea81c
3 changed files with 127 additions and 14 deletions
|
|
@ -591,34 +591,65 @@ struct drm_set_version {
|
|||
int drm_dd_minor;
|
||||
};
|
||||
|
||||
/* DRM_IOCTL_GEM_CLOSE ioctl argument type */
|
||||
/**
|
||||
* struct drm_gem_close - Argument for &DRM_IOCTL_GEM_CLOSE ioctl.
|
||||
* @handle: Handle of the object to be closed.
|
||||
* @pad: Padding.
|
||||
*
|
||||
* Releases the handle to an mm object.
|
||||
*/
|
||||
struct drm_gem_close {
|
||||
/** Handle of the object to be closed. */
|
||||
__u32 handle;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/* DRM_IOCTL_GEM_FLINK ioctl argument type */
|
||||
/**
|
||||
* struct drm_gem_flink - Argument for &DRM_IOCTL_GEM_FLINK ioctl.
|
||||
* @handle: Handle for the object being named.
|
||||
* @name: Returned global name.
|
||||
*
|
||||
* Create a global name for an object, returning the name.
|
||||
*
|
||||
* Note that the name does not hold a reference; when the object
|
||||
* is freed, the name goes away.
|
||||
*/
|
||||
struct drm_gem_flink {
|
||||
/** Handle for the object being named */
|
||||
__u32 handle;
|
||||
|
||||
/** Returned global name */
|
||||
__u32 name;
|
||||
};
|
||||
|
||||
/* DRM_IOCTL_GEM_OPEN ioctl argument type */
|
||||
/**
|
||||
* struct drm_gem_open - Argument for &DRM_IOCTL_GEM_OPEN ioctl.
|
||||
* @name: Name of object being opened.
|
||||
* @handle: Returned handle for the object.
|
||||
* @size: Returned size of the object
|
||||
*
|
||||
* Open an object using the global name, returning a handle and the size.
|
||||
*
|
||||
* This handle (of course) holds a reference to the object, so the object
|
||||
* will not go away until the handle is deleted.
|
||||
*/
|
||||
struct drm_gem_open {
|
||||
/** Name of object being opened */
|
||||
__u32 name;
|
||||
|
||||
/** Returned handle for the object */
|
||||
__u32 handle;
|
||||
|
||||
/** Returned size of the object */
|
||||
__u64 size;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct drm_gem_change_handle - Argument for &DRM_IOCTL_GEM_CHANGE_HANDLE ioctl.
|
||||
* @handle: The handle of a gem object.
|
||||
* @new_handle: An available gem handle.
|
||||
*
|
||||
* This ioctl changes the handle of a GEM object to the specified one.
|
||||
* The new handle must be unused. On success the old handle is closed
|
||||
* and all further IOCTL should refer to the new handle only.
|
||||
* Calls to DRM_IOCTL_PRIME_FD_TO_HANDLE will return the new handle.
|
||||
*/
|
||||
struct drm_gem_change_handle {
|
||||
__u32 handle;
|
||||
__u32 new_handle;
|
||||
};
|
||||
|
||||
/**
|
||||
* DRM_CAP_DUMB_BUFFER
|
||||
*
|
||||
|
|
@ -1303,6 +1334,14 @@ extern "C" {
|
|||
*/
|
||||
#define DRM_IOCTL_SET_CLIENT_NAME DRM_IOWR(0xD1, struct drm_set_client_name)
|
||||
|
||||
/**
|
||||
* DRM_IOCTL_GEM_CHANGE_HANDLE - Move an object to a different handle
|
||||
*
|
||||
* Some applications (notably CRIU) need objects to have specific gem handles.
|
||||
* This ioctl changes the object at one gem handle to use a new gem handle.
|
||||
*/
|
||||
#define DRM_IOCTL_GEM_CHANGE_HANDLE DRM_IOWR(0xD2, struct drm_gem_change_handle)
|
||||
|
||||
/*
|
||||
* Device specific ioctls should only be in their respective headers
|
||||
* The device specific ioctl range is from 0x40 to 0x9f.
|
||||
|
|
|
|||
|
|
@ -210,6 +210,10 @@ extern "C" {
|
|||
#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
|
||||
#define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
|
||||
|
||||
/* 48 bpp RGB */
|
||||
#define DRM_FORMAT_RGB161616 fourcc_code('R', 'G', '4', '8') /* [47:0] R:G:B 16:16:16 little endian */
|
||||
#define DRM_FORMAT_BGR161616 fourcc_code('B', 'G', '4', '8') /* [47:0] B:G:R 16:16:16 little endian */
|
||||
|
||||
/* 64 bpp RGB */
|
||||
#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8') /* [63:0] x:R:G:B 16:16:16:16 little endian */
|
||||
#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8') /* [63:0] x:B:G:R 16:16:16:16 little endian */
|
||||
|
|
@ -218,7 +222,7 @@ extern "C" {
|
|||
#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */
|
||||
|
||||
/*
|
||||
* Floating point 64bpp RGB
|
||||
* Half-Floating point - 16b/component
|
||||
* IEEE 754-2008 binary16 half-precision float
|
||||
* [15:0] sign:exponent:mantissa 1:5:10
|
||||
*/
|
||||
|
|
@ -228,6 +232,20 @@ extern "C" {
|
|||
#define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */
|
||||
#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
|
||||
|
||||
#define DRM_FORMAT_R16F fourcc_code('R', ' ', ' ', 'H') /* [15:0] R 16 little endian */
|
||||
#define DRM_FORMAT_GR1616F fourcc_code('G', 'R', ' ', 'H') /* [31:0] G:R 16:16 little endian */
|
||||
#define DRM_FORMAT_BGR161616F fourcc_code('B', 'G', 'R', 'H') /* [47:0] B:G:R 16:16:16 little endian */
|
||||
|
||||
/*
|
||||
* Floating point - 32b/component
|
||||
* IEEE 754-2008 binary32 float
|
||||
* [31:0] sign:exponent:mantissa 1:8:23
|
||||
*/
|
||||
#define DRM_FORMAT_R32F fourcc_code('R', ' ', ' ', 'F') /* [31:0] R 32 little endian */
|
||||
#define DRM_FORMAT_GR3232F fourcc_code('G', 'R', ' ', 'F') /* [63:0] R:G 32:32 little endian */
|
||||
#define DRM_FORMAT_BGR323232F fourcc_code('B', 'G', 'R', 'F') /* [95:0] R:G:B 32:32:32 little endian */
|
||||
#define DRM_FORMAT_ABGR32323232F fourcc_code('A', 'B', '8', 'F') /* [127:0] R:G:B:A 32:32:32:32 little endian */
|
||||
|
||||
/*
|
||||
* RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits
|
||||
* of unused padding per component:
|
||||
|
|
|
|||
|
|
@ -962,6 +962,14 @@ struct hdr_output_metadata {
|
|||
* Request that the kernel sends back a vblank event (see
|
||||
* struct drm_event_vblank) with the &DRM_EVENT_FLIP_COMPLETE type when the
|
||||
* page-flip is done.
|
||||
*
|
||||
* When used with atomic uAPI, one event will be delivered per CRTC included in
|
||||
* the atomic commit. A CRTC is included in an atomic commit if one of its
|
||||
* properties is set, or if a property is set on a connector or plane linked
|
||||
* via the CRTC_ID property to the CRTC. At least one CRTC must be included,
|
||||
* and all pulled in CRTCs must be either previously or newly powered on (in
|
||||
* other words, a powered off CRTC which stays off cannot be included in the
|
||||
* atomic commit).
|
||||
*/
|
||||
#define DRM_MODE_PAGE_FLIP_EVENT 0x01
|
||||
/**
|
||||
|
|
@ -1058,7 +1066,7 @@ struct drm_mode_crtc_page_flip_target {
|
|||
* struct drm_mode_create_dumb - Create a KMS dumb buffer for scanout.
|
||||
* @height: buffer height in pixels
|
||||
* @width: buffer width in pixels
|
||||
* @bpp: bits per pixel
|
||||
* @bpp: color mode
|
||||
* @flags: must be zero
|
||||
* @handle: buffer object handle
|
||||
* @pitch: number of bytes between two consecutive lines
|
||||
|
|
@ -1066,6 +1074,54 @@ struct drm_mode_crtc_page_flip_target {
|
|||
*
|
||||
* User-space fills @height, @width, @bpp and @flags. If the IOCTL succeeds,
|
||||
* the kernel fills @handle, @pitch and @size.
|
||||
*
|
||||
* The value of @bpp is a color-mode number describing a specific format
|
||||
* or a variant thereof. The value often corresponds to the number of bits
|
||||
* per pixel for most modes, although there are exceptions. Each color mode
|
||||
* maps to a DRM format plus a number of modes with similar pixel layout.
|
||||
* Framebuffer layout is always linear.
|
||||
*
|
||||
* Support for all modes and formats is optional. Even if dumb-buffer
|
||||
* creation with a certain color mode succeeds, it is not guaranteed that
|
||||
* the DRM driver supports any of the related formats. Most drivers support
|
||||
* a color mode of 32 with a format of DRM_FORMAT_XRGB8888 on their primary
|
||||
* plane.
|
||||
*
|
||||
* +------------+------------------------+------------------------+
|
||||
* | Color mode | Framebuffer format | Compatible formats |
|
||||
* +============+========================+========================+
|
||||
* | 32 | * DRM_FORMAT_XRGB8888 | * DRM_FORMAT_BGRX8888 |
|
||||
* | | | * DRM_FORMAT_RGBX8888 |
|
||||
* | | | * DRM_FORMAT_XBGR8888 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 24 | * DRM_FORMAT_RGB888 | * DRM_FORMAT_BGR888 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 16 | * DRM_FORMAT_RGB565 | * DRM_FORMAT_BGR565 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 15 | * DRM_FORMAT_XRGB1555 | * DRM_FORMAT_BGRX1555 |
|
||||
* | | | * DRM_FORMAT_RGBX1555 |
|
||||
* | | | * DRM_FORMAT_XBGR1555 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 8 | * DRM_FORMAT_C8 | * DRM_FORMAT_D8 |
|
||||
* | | | * DRM_FORMAT_R8 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 4 | * DRM_FORMAT_C4 | * DRM_FORMAT_D4 |
|
||||
* | | | * DRM_FORMAT_R4 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 2 | * DRM_FORMAT_C2 | * DRM_FORMAT_D2 |
|
||||
* | | | * DRM_FORMAT_R2 |
|
||||
* +------------+------------------------+------------------------+
|
||||
* | 1 | * DRM_FORMAT_C1 | * DRM_FORMAT_D1 |
|
||||
* | | | * DRM_FORMAT_R1 |
|
||||
* +------------+------------------------+------------------------+
|
||||
*
|
||||
* Color modes of 10, 12, 15, 30 and 64 are only supported for use by
|
||||
* legacy user space. Please don't use them in new code. Other modes
|
||||
* are not support.
|
||||
*
|
||||
* Do not attempt to allocate anything but linear framebuffer memory
|
||||
* with single-plane RGB data. Allocation of other framebuffer
|
||||
* layouts requires dedicated ioctls in the respective DRM driver.
|
||||
*/
|
||||
struct drm_mode_create_dumb {
|
||||
__u32 height;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue