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-allocatormetal- 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.