前言
本系列文章为Linux kernel学习过程中的笔记,仅作学习交流用途。
This series of articles are notes during the learning process of Linux kernel, only for learning and communication.
本篇为Direct Rendering Manager (DRM)入门。
一、什么是DRM?
DRM全称为Direct Rendering Manager,是Linux kernel中负责管理现代显卡的GPU接口的子系统,可以提供多种API,允许用户空间程序与GPU交互,包括发送指令、数据到GPU和执行操作等。用户空间程序可以使用DRM API来操控GPU执行硬件加速3D渲染,视频解码和通用GPU计算等操作。
二、DRM概述
在此之前,Linux kernel已经有一套API称为fbdev,用于管理framebuffer,但是这套方案不适用于现代GPU硬件。特别是当2个及以上程序想要同时控制同一块硬件并按照各自的方式设置硬件资源时,大多数情况下程序都会崩溃。
于是就引入DRM这套子系统,可以使得多个程序来协同地使用硬件资源。DRM拥有对GPU的独家管理权,负责初始化和管理硬件资源,包括command queue,memory等,想要使用GPU的程序就发