Crate memkit_gpu

Crate memkit_gpu 

Source
Expand description

§memkit-gpu

Backend-agnostic GPU memory management for memkit.

§Features

  • Backend-agnostic: Write code once, run on Vulkan, Metal, DX12
  • Unified API: Same types work across all backends
  • Zero-cost abstraction: Backend selection at compile time

§Backends

  • vulkan - Vulkan backend via ash + gpu-allocator
  • metal - Metal backend (planned)
  • dx12 - DirectX 12 backend (planned)
  • dummy - No-op backend for testing

§Example

use memkit_gpu::{MkGpu, MkMemoryType, MkBufferUsage, DummyBackend};

// Create with dummy backend for testing
let gpu = MkGpu::new(DummyBackend::new());

// Create buffers
let staging = gpu.create_staging_buffer(1024).unwrap();
let device = gpu.create_device_buffer(1024, MkBufferUsage::VERTEX).unwrap();

Re-exports§

pub use backend::MkGpuBackend;
pub use backend::MkGpuCapabilities;
pub use backend::DummyBackend;
pub use backend::DummyBackendConfig;
pub use backend::DummyError;
pub use buffer::MkDeviceBuffer;
pub use buffer::MkBufferUsage;
pub use memory::MkMemoryType;
pub use staging::MkStagingBuffer;
pub use transfer::MkGpuTransfer;
pub use transfer::MkTransferBuilder;
pub use sync::MkFence;
pub use pool::MkGpuPool;

Modules§

backend
GPU backend trait and implementations.
buffer
GPU buffer types.
memory
GPU memory types.
pool
GPU memory pools.
staging
Staging buffer for CPU-GPU transfers.
sync
GPU synchronization primitives.
transfer
GPU memory transfer operations.

Structs§

MkGpu
Main GPU allocator handle, generic over backend.