gfx-rs/wgpu · error

Failed to create DRM surface

Error message

Failed to create DRM surface

What it means

Panic in the Vulkan DRM surface creation: vkCreateDisplayPlaneSurfaceKHR failed while creating the display-mode surface from the chosen mode and extents, so the Vulkan surface object could not be created.

Source

Thrown at wgpu-hal/src/vulkan/drm.rs:248

                && current_mode.parameters.visible_region.height == height
            {
                mode = Some(current_mode)
            }
        }

        let mode = mode.ok_or(crate::InstanceError::new(
            "Failed to find suitable display mode".to_string(),
        ))?;

        let create_info = vk::DisplaySurfaceCreateInfoKHR::default()
            .display_mode(mode.display_mode)
            .image_extent(mode.parameters.visible_region)
            .transform(vk::SurfaceTransformFlagsKHR::IDENTITY)
            .alpha_mode(vk::DisplayPlaneAlphaFlagsKHR::OPAQUE)
            .plane_index(plane);

        let surface = unsafe { display_instance.create_display_plane_surface(&create_info, None) }
            .expect("Failed to create DRM surface");

        Ok(self.create_surface_from_vk_surface_khr(surface, None))
    }
}

View on GitHub (pinned to 3e11ff59bf)

Solutions

  1. Check driver support for display-plane surfaces and valid plane/transform parameters
  2. Retry with different display mode parameters
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at wgpu-hal/src/vulkan/drm.rs:248 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/d745b47491a5b2b5. Report an issue: GitHub.