libdrm------linuxグラフィックスアプリケーション層コードライブラリ


DRM
The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for  
interfacing with GPUs of modern video cards. DRM exposes an API that user space programs  
can use to send commands and data to the GPU, and perform operations such as configuring  
the mode setting of the display. DRM was first developed as the kernel space component of  
the X Server's Direct Rendering Infrastructure,[1] but since then it has been used by other  
graphic stack alternatives such as Wayland.

drm駆動
カーネルのdrmは主にグラフィックのdriハードウェア加速を実現するためにサービスされ、一連のioctlsの操作を提供することによって、アプリケーション層のソフトウェアが直接グラフィックスハードウェアに対して操作することができる.駆動実際にdrmを使用するのはlibdrmパッケージを経た後の言い訳である.カーネルdrmは主にvblankイベント処理、メモリ管理、出力管理、framebuffer管理、コマンド登録、fencing、suspend/resumeサポート、dmaサービスなどを含む.
カーネルdrmのコアはstructdrmを囲むデバイス構造展開(この構造の定義はDocuments/DocBook/drm.tmplを参照)では、各グラフィックスカードのdrmが静的structdrm_を宣言します.デバイス変数は、radeon駆動を例に挙げます(drivers/gpu/drm/radeon/radeon_drv.cを参照).radeonは会社のグラフィックスカードで、i 915はintel集積グラフィックスカードで、drivers/gpu/drm/i 915/i 915に駆動されています.drv.c.
アプリケーションとのインタフェース
アプリケーションはopenioctlなどを直接システム呼び出してdrmと対話することができるが,実際にはdrmの使用においてlibdrm対drmの
各操作をカプセル化することで、ioctlのnumとそれに対応する関数を記憶することなく、より使いやすくなります.
libdrm
libdrmのコンパイル:
(1)apt install libpthread-stubs0-dev
(2)apt install libpciaccess-dev
(3)./configure
(4)make
(5)make install
テストコード:
ダウンロード:https://download.csdn.net/download/xgbing/10338858