xref: /aosp_15_r20/external/libdrm/man/drmModeGetResources.3.rst (revision 7688df22e49036ff52a766b7101da3a49edadb8c)
1*7688df22SAndroid Build Coastguard Worker===================
2*7688df22SAndroid Build Coastguard WorkerdrmModeGetResources
3*7688df22SAndroid Build Coastguard Worker===================
4*7688df22SAndroid Build Coastguard Worker
5*7688df22SAndroid Build Coastguard Worker--------------------------------------------------
6*7688df22SAndroid Build Coastguard Workerretrieve current display configuration information
7*7688df22SAndroid Build Coastguard Worker--------------------------------------------------
8*7688df22SAndroid Build Coastguard Worker
9*7688df22SAndroid Build Coastguard Worker:Date: September 2012
10*7688df22SAndroid Build Coastguard Worker:Manual section: 3
11*7688df22SAndroid Build Coastguard Worker:Manual group: Direct Rendering Manager
12*7688df22SAndroid Build Coastguard Worker
13*7688df22SAndroid Build Coastguard WorkerSynopsis
14*7688df22SAndroid Build Coastguard Worker========
15*7688df22SAndroid Build Coastguard Worker
16*7688df22SAndroid Build Coastguard Worker``#include <xf86drm.h>``
17*7688df22SAndroid Build Coastguard Worker
18*7688df22SAndroid Build Coastguard Worker``#include <xf86drmMode.h>``
19*7688df22SAndroid Build Coastguard Worker
20*7688df22SAndroid Build Coastguard Worker``drmModeResPtr drmModeGetResources(int fd);``
21*7688df22SAndroid Build Coastguard Worker
22*7688df22SAndroid Build Coastguard WorkerDescription
23*7688df22SAndroid Build Coastguard Worker===========
24*7688df22SAndroid Build Coastguard Worker
25*7688df22SAndroid Build Coastguard Worker``drmModeGetResources`` allocates, populates, and returns a drmModeRes
26*7688df22SAndroid Build Coastguard Workerstructure containing information about the current display
27*7688df22SAndroid Build Coastguard Workerconfiguration. The structure contains the following fields:
28*7688df22SAndroid Build Coastguard Worker
29*7688df22SAndroid Build Coastguard Worker::
30*7688df22SAndroid Build Coastguard Worker
31*7688df22SAndroid Build Coastguard Worker   typedef struct _drmModeRes {
32*7688df22SAndroid Build Coastguard Worker       int count_fbs;
33*7688df22SAndroid Build Coastguard Worker       uint32_t *fbs;
34*7688df22SAndroid Build Coastguard Worker
35*7688df22SAndroid Build Coastguard Worker       int count_crtcs;
36*7688df22SAndroid Build Coastguard Worker       uint32_t *crtcs;
37*7688df22SAndroid Build Coastguard Worker
38*7688df22SAndroid Build Coastguard Worker       int count_connectors;
39*7688df22SAndroid Build Coastguard Worker       uint32_t *connectors;
40*7688df22SAndroid Build Coastguard Worker
41*7688df22SAndroid Build Coastguard Worker       int count_encoders;
42*7688df22SAndroid Build Coastguard Worker       uint32_t *encoders;
43*7688df22SAndroid Build Coastguard Worker
44*7688df22SAndroid Build Coastguard Worker       uint32_t min_width, max_width;
45*7688df22SAndroid Build Coastguard Worker       uint32_t min_height, max_height;
46*7688df22SAndroid Build Coastguard Worker   } drmModeRes, *drmModeResPtr;
47*7688df22SAndroid Build Coastguard Worker
48*7688df22SAndroid Build Coastguard WorkerThe *count_fbs* and *fbs* fields indicate the number of currently allocated
49*7688df22SAndroid Build Coastguard Workerframebuffer objects (i.e., objects that can be attached to a given CRTC
50*7688df22SAndroid Build Coastguard Workeror sprite for display).
51*7688df22SAndroid Build Coastguard Worker
52*7688df22SAndroid Build Coastguard WorkerThe *count_crtcs* and *crtcs* fields list the available CRTCs in the
53*7688df22SAndroid Build Coastguard Workerconfiguration. A CRTC is simply an object that can scan out a
54*7688df22SAndroid Build Coastguard Workerframebuffer to a display sink, and contains mode timing and relative
55*7688df22SAndroid Build Coastguard Workerposition information. CRTCs drive encoders, which are responsible for
56*7688df22SAndroid Build Coastguard Workerconverting the pixel stream into a specific display protocol (e.g., MIPI
57*7688df22SAndroid Build Coastguard Workeror HDMI).
58*7688df22SAndroid Build Coastguard Worker
59*7688df22SAndroid Build Coastguard WorkerThe *count_connectors* and *connectors* fields list the available physical
60*7688df22SAndroid Build Coastguard Workerconnectors on the system. Note that some of these may not be exposed
61*7688df22SAndroid Build Coastguard Workerfrom the chassis (e.g., LVDS or eDP). Connectors are attached to
62*7688df22SAndroid Build Coastguard Workerencoders and contain information about the attached display sink (e.g.,
63*7688df22SAndroid Build Coastguard Workerwidth and height in mm, subpixel ordering, and various other
64*7688df22SAndroid Build Coastguard Workerproperties).
65*7688df22SAndroid Build Coastguard Worker
66*7688df22SAndroid Build Coastguard WorkerThe *count_encoders* and *encoders* fields list the available encoders on
67*7688df22SAndroid Build Coastguard Workerthe device. Each encoder may be associated with a CRTC, and may be used
68*7688df22SAndroid Build Coastguard Workerto drive a particular encoder.
69*7688df22SAndroid Build Coastguard Worker
70*7688df22SAndroid Build Coastguard WorkerThe *min_\** and *max_\** fields indicate the maximum size of a framebuffer
71*7688df22SAndroid Build Coastguard Workerfor this device (i.e., the scanout size limit).
72*7688df22SAndroid Build Coastguard Worker
73*7688df22SAndroid Build Coastguard WorkerReturn Value
74*7688df22SAndroid Build Coastguard Worker============
75*7688df22SAndroid Build Coastguard Worker
76*7688df22SAndroid Build Coastguard Worker``drmModeGetResources`` returns a drmModeRes structure pointer on
77*7688df22SAndroid Build Coastguard Workersuccess, NULL on failure. The returned structure must be freed with
78*7688df22SAndroid Build Coastguard Worker**drmModeFreeResources**\ (3).
79*7688df22SAndroid Build Coastguard Worker
80*7688df22SAndroid Build Coastguard WorkerReporting Bugs
81*7688df22SAndroid Build Coastguard Worker==============
82*7688df22SAndroid Build Coastguard Worker
83*7688df22SAndroid Build Coastguard WorkerBugs in this function should be reported to
84*7688df22SAndroid Build Coastguard Workerhttps://gitlab.freedesktop.org/mesa/drm/-/issues
85*7688df22SAndroid Build Coastguard Worker
86*7688df22SAndroid Build Coastguard WorkerSee Also
87*7688df22SAndroid Build Coastguard Worker========
88*7688df22SAndroid Build Coastguard Worker
89*7688df22SAndroid Build Coastguard Worker**drm**\ (7), **drm-kms**\ (7), **drmModeGetFB**\ (3), **drmModeAddFB**\ (3),
90*7688df22SAndroid Build Coastguard Worker**drmModeAddFB2**\ (3), **drmModeRmFB**\ (3), **drmModeDirtyFB**\ (3),
91*7688df22SAndroid Build Coastguard Worker**drmModeGetCrtc**\ (3), **drmModeSetCrtc** (3), **drmModeGetEncoder** (3),
92*7688df22SAndroid Build Coastguard Worker**drmModeGetConnector**\ (3)
93