# libdrm-amdgpu-sys-rs libdrm_amdgpu bindings for Rust, and some methods ported from Mesa3D (mainly [ac_gpu_info.c](https://gitlab.freedesktop.org/mesa/mesa/blob/main/src/amd/common/ac_gpu_info.c)). ## Reference * [Mesa / drm · GitLab](https://gitlab.freedesktop.org/mesa/drm/) * [Mesa / mesa · GitLab](https://gitlab.freedesktop.org/mesa/mesa/) * Linux Kernel * `drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c` ## License * MIT License ## Documentation * [libdrm_amdgpu_sys - Rust](https://docs.rs/libdrm_amdgpu_sys/latest/libdrm_amdgpu_sys/) ## Dependent dynamic libraries * libdrm * libdrm_amdgpu ### Distribution specific instructions #### Debian/Ubuntu ``` sudo apt install libdrm-dev ``` ## Examples ``` 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(); AMDGPU::DeviceHandle::init(fd.into_raw_fd()).unwrap() }; let mark_name = amdgpu_dev.get_marketing_name().unwrap(); let device_info = amdgpu_dev.device_info().unwrap(); ``` ### 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_bindgen ```