[package] name = "gpu-allocator" version = "0.27.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.70" include = [ "/README.md", "/LICENSE-*", "/src", "/examples", ] [package.metadata.docs.rs] all-features = true [dependencies] log = "0.4" thiserror = "1.0" presser = { version = "0.3" } # 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 } [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] metal = { version = "0.29.0", default-features = false, features = ["link", "dispatch"], optional = true } [target.'cfg(windows)'.dependencies] # Only needed for public-winapi interop helpers winapi = { version = "0.3.9", features = ["d3d12", "winerror", "impl-default", "impl-debug"], optional = true } [target.'cfg(windows)'.dependencies.windows] version = ">=0.53,<=0.58" 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.10" [target.'cfg(windows)'.dev-dependencies] winapi = { version = "0.3.9", features = ["d3d12", "d3d12sdklayers", "dxgi1_6", "winerror", "impl-default", "impl-debug", "winuser", "windowsx", "libloaderapi"] } [target.'cfg(windows)'.dev-dependencies.windows] # API-breaks since Windows 0.58 only affect our examples version = "0.58" features = [ "Win32_Graphics_Direct3D", "Win32_Graphics_Direct3D12", "Win32_Graphics_Dxgi_Common", ] [[example]] name = "vulkan-buffer" required-features = ["vulkan", "ash/loaded"] [[example]] name = "d3d12-buffer" required-features = ["d3d12", "public-winapi"] [[example]] name = "d3d12-buffer-winrs" required-features = ["d3d12"] [[example]] name = "metal-buffer" required-features = ["metal"] [features] visualizer = ["dep:egui", "dep:egui_extras"] vulkan = ["dep:ash"] d3d12 = ["dep:windows"] metal = ["dep:metal"] # Expose helper functionality for winapi types to interface with gpu-allocator, which is primarily windows-rs driven public-winapi = ["dep:winapi"] default = ["d3d12", "vulkan"]