gfx-rs/wgpu · error
Failed to acquire drm display
Error message
Failed to acquire drm display
What it means
A panic from .expect() in create_surface_from_drm after the VK_EXT_acquire_drm_display call vkAcquireDrmDisplay returned an error. At this point the DRM display for the connector was already found via get_drm_display, but the Vulkan driver refused to take exclusive ownership of it on behalf of the given file descriptor. Common causes: another client (Xorg, Wayland compositor, another app) already owns the display, the process lacks DRM master permissions, or the driver does not support acquirable DRM displays. Because expect() is used, this aborts the process instead of returning an InstanceError.
Source
Thrown at wgpu-hal/src/vulkan/drm.rs:208
}
let physical_device = physical_device.ok_or(crate::InstanceError::new(
"Failed to find suitable drm device".to_string(),
))?;
let acquire_drm_display_instance =
ext::acquire_drm_display::Instance::new(&self.shared.entry, &self.shared.raw);
let display = unsafe {
acquire_drm_display_instance
.get_drm_display(physical_device, fd, connector_id)
.expect("Failed to get drm display")
};
unsafe {
acquire_drm_display_instance
.acquire_drm_display(physical_device, fd, display)
.expect("Failed to acquire drm display")
}
let display_instance = khr::display::Instance::new(&self.shared.entry, &self.shared.raw);
let modes = unsafe {
display_instance
.get_display_mode_properties(physical_device, display)
.expect("Failed to get display modes")
};
let mut mode = None;
for current_mode in modes {
log::trace!(
"Comparing mode {}x{}@{} with {width}x{height}@{refresh_rate}",
current_mode.parameters.visible_region.width,
current_mode.parameters.visible_region.height,
current_mode.parameters.refresh_rateView on GitHub (pinned to 3e11ff59bf)
Solutions
- Ensure no other DRM master (running compositor/X server) owns the device
- Run with appropriate permissions or against a free virtual terminal
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at wgpu-hal/src/vulkan/drm.rs:208 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of gfx-rs/wgpu@3e11ff59bf (2026-09-03).
Data as JSON: /api/errors/8a6f22791f01b08b.
Report an issue: GitHub.