Skip to main content

Module wgpu_backend

Module wgpu_backend 

Source
Expand description

WebGPU-style backend abstraction layer for Proof Engine.

This module provides a GPU-API-agnostic abstraction that could be backed by OpenGL, Vulkan, Metal, WebGPU, or a pure-software fallback. No actual wgpu crate dependency is used — everything is expressed as engine-level abstractions.

§Sub-modules

  • backend — Core GPU backend enum, capabilities, handle types, and context trait
  • renderer — Multi-backend renderer with render passes and draw calls
  • compute — Compute shader dispatch, storage buffers, and CPU fallback
  • shader_translate — Cross-compile shaders between GLSL, WGSL, SPIRV, HLSL, MSL
  • abstraction — Unified GpuDevice / GpuQueue traits
  • quality — Adaptive quality management and benchmarking
  • headless — Off-screen rendering, thumbnails, and server-side rendering

Re-exports§

pub use backend::GpuBackend;
pub use backend::BackendCapabilities;
pub use backend::BackendContext;
pub use backend::BufferHandle;
pub use backend::TextureHandle;
pub use backend::ShaderHandle;
pub use backend::PipelineHandle;
pub use backend::ComputePipelineHandle;
pub use backend::BufferUsage;
pub use backend::TextureFormat;
pub use backend::ShaderStage;
pub use renderer::MultiBackendRenderer;
pub use compute::ComputeContext;
pub use shader_translate::ShaderLanguage;
pub use abstraction::GpuDevice;
pub use abstraction::GpuQueue;
pub use quality::QualityLevel;
pub use quality::QualityManager;
pub use headless::HeadlessRenderer;

Modules§

abstraction
Unified GPU abstraction layer: GpuDevice and GpuQueue traits that provide a single API surface regardless of the underlying graphics backend.
backend
Core GPU backend abstraction: enums, handle types, capability queries, and the BackendContext trait that every concrete backend implements.
compute
Compute shader support: storage buffers, dispatch, CPU fallback, profiling.
headless
Headless (off-screen) rendering: render scenes to pixel buffers without a window, generate thumbnails, batch-render, and server-side rendering.
quality
Adaptive quality management: auto-detect hardware capability, dynamically adjust rendering quality to maintain a target frame rate, and benchmarking.
renderer
Multi-backend renderer: render passes, draw calls, compute dispatch, buffer upload / readback, and vertex layout descriptions.
shader_translate
Shader translation between GLSL, WGSL, SPIRV (text), HLSL, and MSL. Includes reflection (extracting bindings, inputs, outputs) and validation.