1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum GpuError {
8 #[error("failed to request GPU adapter: {0}")]
10 AdapterRequest(#[from] wgpu::RequestAdapterError),
11
12 #[error("failed to request GPU device: {0}")]
14 DeviceRequest(#[from] wgpu::RequestDeviceError),
15
16 #[error("failed to create surface: {0}")]
18 SurfaceCreation(#[from] wgpu::CreateSurfaceError),
19
20 #[error("surface is incompatible with adapter")]
22 IncompatibleSurface,
23
24 #[error("failed to acquire swap chain texture: {0}")]
26 SwapChainAcquire(#[from] wgpu::SurfaceError),
27
28 #[error("shader compilation error: {0}")]
30 ShaderCompilation(String),
31
32 #[error("buffer creation error: {0}")]
34 BufferCreation(String),
35
36 #[error("pipeline creation error: {0}")]
38 PipelineCreation(String),
39
40 #[error("platform error: {0}")]
42 Platform(#[from] sable_platform::PlatformError),
43
44 #[error("window handle error: {0}")]
46 HandleError(#[from] raw_window_handle::HandleError),
47}
48
49pub type Result<T> = std::result::Result<T, GpuError>;