Expand description
§libdrm-amdgpu-sys-rs
libdrm_amdgpu bindings for Rust, and some methods ported from Mesa3D (mainly ac_gpu_info.c).
§Reference
- Mesa / drm · GitLab
- Mesa / mesa · GitLab
- Linux Kernel
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
§License
- MIT License
§Documentation
§Dependent dynamic libraries
- libdrm
- libdrm_amdgpu
§Feature flags
link_drm- Dynamically linking
libdrm.so.2andlibdrm_amdgpu.so.1 - enabled by default
- Dynamically linking
dynamic_loading- Dynamically loading
libdrm.so.2andlibdrm_amdgpu.so.1 link_drmanddynamic_loadingcannot be enabled at the same time.cargo add libdrm_amdgpu_sys --no-default-features -F "dynamic_loading"
- Dynamically loading
§Distribution specific instructions
§Debian/Ubuntu
sudo apt install libdrm-dev§Examples
use libdrm_amdgpu_sys::LibDrmAmdgpu;
use libdrm_amdgpu_sys::AMDGPU::DeviceHandle;
use libdrm_amdgpu_sys::AMDGPU::GPU_INFO;
let libdrm_amdgpu = LibDrmAmdgpu::new().unwrap();
let (amdgpu_dev, drm_major, drm_minor) = {
use std::fs::OpenOptions;
use std::os::fd::IntoRawFd;
let fd = OpenOptions::new().read(true).write(true).open("/dev/dri/renderD128").unwrap();
libdrm_amdgpu.init_device_handle(fd.into_raw_fd()).unwrap()
};
let device_info = amdgpu_dev.device_info().unwrap();
let device_name = device_info.find_device_name_or_default();§Dynamic Loading
§Cargo.toml
libdrm_amdgpu_sys = { version = "0.8", default-features = false, features = ["dynamic_loading"] }§amdgpu_info
cargo run --example amdgpu_info§vbios_dump
cargo run --example vbios_dump§gpu_metrics
cargo run --example gpu_metrics§Build
To generate a new bindings/drm.rs .
cargo build --features=buildtime_bindgenModules§
Macros§
- query_
error - Convert
errnotoErr(i32)
Structs§
- LibDrm
- LibDrm
Amdgpu - drmMode
Connector - drmMode
Object Properties - drmMode
Property - drmMode
Property Blob - drmMode
Res - drmVersion
- drm_
mode_ property_ enum
Enums§
Constants§
- DRM_
CLIENT_ CAP_ ASPECT_ RATIO - DRM_
CLIENT_ CAP_ ATOMIC - DRM_
CLIENT_ CAP_ CURSOR_ PLANE_ HOTSPOT - DRM_
CLIENT_ CAP_ STEREO_ 3D - DRM_
CLIENT_ CAP_ UNIVERSAL_ PLANES - DRM_
CLIENT_ CAP_ WRITEBACK_ CONNECTORS