[package] name = "gpu-allocator" version = "0.28.0" authors = ["Traverse Research "] edition = "2021" license = "MIT OR Apache-2.0" description = "Memory allocator for GPU memory in Vulkan and DirectX 12" categories = ["rendering", "rendering::graphics-api"] homepage = "https://github.com/Traverse-Research/gpu-allocator" repository = "https://github.com/Traverse-Research/gpu-allocator" keywords = ["vulkan", "memory", "allocator"] documentation = "https://docs.rs/gpu-allocator/" rust-version = "1.71" include = [ "/README.md", "/LICENSE-*", "/src", "/examples", ] [package.metadata.docs.rs] all-features = true [dependencies] log = { version = "0.4", default-features = false } thiserror = { version = "2.0", default-features = false } presser = { version = "0.3", default-features = false } # Only needed for Vulkan. Disable all default features as good practice, # such as the ability to link/load a Vulkan library. ash = { version = "0.38", optional = true, default-features = false, features = ["debug"] } # Only needed for visualizer. egui = { version = ">=0.24, <=0.27", optional = true, default-features = false } egui_extras = { version = ">=0.24, <=0.27", optional = true, default-features = false } hashbrown = { version = "0.16.0", optional = true } [target.'cfg(target_vendor = "apple")'.dependencies] objc2 = { version = "0.6", default-features = false, optional = true } objc2-foundation = { version = "0.3", default-features = false, optional = true } objc2-metal = { version = "0.3", default-features = false, features = [ "MTLAccelerationStructure", "MTLAllocation", "MTLBuffer", "MTLDevice", "MTLHeap", "MTLResidencySet", "MTLResource", "MTLTexture", "std", ], optional = true } [target.'cfg(windows)'.dependencies.windows] version = ">=0.53, <=0.62" features = [ "Win32_Graphics_Direct3D12", "Win32_Graphics_Dxgi_Common", ] optional = true [dev-dependencies] # Enable the "loaded" feature to be able to access the Vulkan entrypoint. ash = { version = "0.38", default-features = false, features = ["debug", "loaded"] } env_logger = "0.11" [target.'cfg(windows)'.dev-dependencies.windows] # API-breaks since Windows 0.58 only affect our examples version = ">=0.58, <=0.62" features = [ "Win32_Graphics_Direct3D", "Win32_Graphics_Direct3D12", "Win32_Graphics_Dxgi_Common", ] [target.'cfg(target_vendor = "apple")'.dev-dependencies] objc2-metal = { version = "0.3", default-features = false, features = [ "MTLPixelFormat", ] } [[example]] name = "vulkan-buffer" required-features = ["vulkan", "ash/loaded"] [[example]] name = "d3d12-buffer-winrs" required-features = ["d3d12"] [[example]] name = "metal-buffer" required-features = ["metal"] [features] std = ["presser/std"] visualizer = ["dep:egui", "dep:egui_extras"] vulkan = ["dep:ash"] d3d12 = ["dep:windows"] metal = ["dep:objc2", "dep:objc2-metal", "dep:objc2-foundation"] # Enables the FreeListAllocator when `std` is not enabled by using the `hashbrown` crate hashbrown = ["dep:hashbrown"] default = ["std", "d3d12", "vulkan", "metal"]