当前位置:网站首页>DRM display framework as I understand it
DRM display framework as I understand it
2022-07-02 05:49:00 【Croxd】
What is? DRM:
DRM The full name is DirectRenderingManager, yes linux A mainstream display framework , Support multi-layer synthesis , Provide unified for user layers API(libdrm), To visit GPU, Achieve unified management . It is to solve the problem of multiple programs on video card Access to collaborative resource usage .DRM It can be simply divided into three modules :
- libdrm: It's a library , Provide general to the upper layer API, It's for all kinds of bottom ioctl To encapsulate , Used for image display and image processing . Of course with drm Of ioctl Or with framebuffer You can also operate the display image .
- GEM: memory management , Mainly responsible for displaying buffer Distribution and release of 、 Sharing and processing of video memory CPU、GPU Memory synchronization
- KMS:Kernel Mode Setting, Used to update the screen and parameter settings , Complete the configuration of the graphics card , And hardware gpu The operation is encapsulated by a layer of interface . Can be abstracted as :Framebuffer、CRTC、Plane、Encoder、Connector Equal module .
DRM Frame diagram :

KMS Frame composition :
- Framebuffer: A memory area , Used to store displayed image data , Both driver and application layers can access , And save the resolution 、 Color pattern (yuv、rgb) Etc .
- Crtc: Display control , As for display timings,resolution Other configuration , Scan read Framebuffer The data of , It's superimposing Plane The content of is transmitted to Encoder. stay vop(Video Output Processor) in , That is to say lcdc controller .
- Plane: and Framebuffer The same is a piece of memory , It is a hardware image layer , An image layer consists of one or more plane form . The superposition of different mobile phone interfaces is this principle . There are three types of plane:
- DRM_PLANE_TYPE_PRIMARY: Main layer , Display the background or image content
- DRM_PLANE_TYPE_OVERLAY: Used to display overlay 、 The zoom
- DRM_PLANE_TYPE_CURSOR: Used to display the mouse
- Encoder: Encoder , Convert the received data into different signals :mipi、edp、vga etc. .
- Connector: Specific external interfaces , Such as edp, hdmi, mipi etc. , Connect to the physical display output device , It stores information about the output device , Such as :EDID、 Video mode, etc .
The general process is that the user fills the displayed data in Framebuffer, And then through libdrm Interface notification VOP equipment ,(crtc)vop Drive will Framebuffer and plane The data is superimposed and then converted into standard LCDC timing sequential , And then through Encoder Translate into concrete mipi、edp、vga Equal signal , To Connector display output .
KMS Frame diagram :

边栏推荐
- Fabric. JS iText sets the color and background color of the specified text
- File contains vulnerabilities (II)
- Get the details of the next largest number
- Zzuli:1069 learn from classmate Z
- Fabric. JS iText set italics manually
- How to write good code - Defensive Programming Guide
- 【论文翻译】GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
- Determine whether there is an element in the string type
- PHP read file (read JSON file, convert to array)
- 软件测试 - 概念篇
猜你喜欢
随机推荐
RNN recurrent neural network
Grbl software: basic knowledge of simple explanation
记录sentry的踩坑之路
15 C language advanced dynamic memory management
TypeScript的泛型和泛型约束
Sliding window on the learning road
Vscode paste image plugin saves image path settings
Software testing Q & A
Typora installation (no need to enter serial number)
【技术随记-08】
Financial portal related information
Fundamentals of software testing
Lantern Festival gift - plant vs zombie game (realized by Matlab)
A collection of commonly used plug-ins for idea development tools
Go language web development is very simple: use templates to separate views from logic
RGB infinite cube (advanced version)
来啦~ 使用 EasyExcel 导出时进行数据转换系列新篇章!
Vite打包后的dist不能直接在浏览器打开吗
如何写出好代码 — 防御式编程指南
[golang syntax] be careful with the copy of slices









