Roll third_party/vulkan_memory_allocator/ e0216a548..5e49f57a6 (87 commits)

This is a roll to the same revision that ANGLE uses to unblock the ANGLE roll.

$ git log e0216a548..5e49f57a6 --date=short --no-merges --format='%ad %ae %s'
2021-11-12 jmadill Fix compiliation error on Mac/Android.
2021-11-03 jmadill Suppress semicolon warning in GN.
2021-08-30 geofflang Supress a build warning.
2021-06-10 pkasting Update Chromium-side files for upstream roll
2021-04-06 cwallez Make the vulkan-headers directory overridable.
2021-02-12 shawn.p.huang change the default gn target to include vma.cpp
2021-02-03 ehmaldonado Move metadata in OWNERS files to DIR_METADATA files
2021-01-27 shawn.p.huang Add vma.cpp contains vma's implementation.
2021-01-27 shawn.p.huang Add a new target with the VmaUsage.cpp and VmaUsage.h
2020-08-26 jmadill Suppress two override suggestion warnings.
2020-06-25 thakis mac: Only call system aligned_alloc() with the 11.0+ SDK.
2020-06-25 thakis Only use system aligned_alloc on mac/ios if the SDK has them.
2020-06-25 thakis Make vulkan_memory_allocator build with the MacOSX11.0 SDK.
2020-05-05 jmadill Restore
2020-05-04 jmadill Suppress a couple more VMA warnings and update README.
2020-05-01 jmadill Update integration for use with Chromium.
2020-04-17 jonahr Modify to not depend directly on volk.
2020-04-07 jmadill Update location modifications.
2020-04-03 jmadill Fix Clang implicit fallthrough warning.
2020-04-03 jmadill Add local modifications for Vulkan Memory Allocator.
2021-11-05 adam.sawicki Documented some members of VmaVulkanFunctions to clarify which functions to fetch
2021-11-03 adam.sawicki Fixing TravisCI (Linux) CI #2
2021-11-03 adam.sawicki Fixing TravisCI (Linux) CI
2021-11-03 git Correct Haskell bindings author name
2021-11-03 git Add typedefs for virtual allocation structs in ordinary identifier namespace
2021-10-30 adam.sawicki Fixed icon of Travis CI Linux build in README
2021-10-30 adam.sawicki Fix for compilation on Linux
2021-10-30 adam.sawicki Added mention of virtual allocator to README
2021-10-30 adam.sawicki Made virtual allocations not applying VMA_DEBUG_MARGIN
2021-10-30 adam.sawicki Fixes to various bugs found during extensive testing
2021-10-30 adam.sawicki Optimized VmaBlockMetadata_Buddy - using VmaPoolAllocator to allocate nodes
2021-10-30 adam.sawicki Refactoring: Added function VmaAddStatInfoAllocation, VmaAddStatInfoUnusedRange
2021-10-30 adam.sawicki Improved VmaBlockMetadata_Buddy when used as a virtual allocator, to support allocation sizes down to 1
2021-10-30 adam.sawicki Removed VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER to simplify the code
2021-10-30 adam.sawicki Added support for VMA_VIRTUAL_BLOCK_CREATE_BUDDY_ALGORITHM_BIT
2021-10-30 adam.sawicki Changed behavior of buddy allocator to align allocation sizes to power of 2 instead of accounting the remaining space (internal fragmentation) as free
2021-10-30 adam.sawicki Added support for VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT
2021-10-29 adam.sawicki Implemented VmaBlockMetadata_Linear::Clear
2021-10-28 adam.sawicki Preparations for adding support for alternative algorithms in virtual blocks and tests for them
2021-10-28 adam.sawicki Added documentation chapter "Virtual allocator"
2021-10-28 adam.sawicki Written documentation for API of the virtual allocator
2021-10-28 adam.sawicki Implemented vmaBuildVirtualBlockStatsString, vmaFreeVirtualBlockStatsString
2021-10-28 adam.sawicki Improvement in vmaCreateAllocator in case creation fails
2021-10-28 adam.sawicki Implemented vmaClearVirtualBlock
2021-10-28 adam.sawicki Implemented vmaCalculateVirtualBlockStats
2021-10-28 adam.sawicki Enabled more tests
2021-10-28 adam.sawicki More coding and more tests. Basic functionality is working now.
2021-10-28 adam.sawicki Essential refactoring that made the test not crashing.
2021-10-28 adam.sawicki More implementation and first tests.
2021-10-28 adam.sawicki Defined interface for virtual allocator:
2021-10-27 adam.sawicki Fixed TestInvalidAllocations
2021-10-27 adam.sawicki Necessary refactoring to prepare for virtual allocator
2021-10-21 adam.sawicki Fixing logic of VmaDefragmentationAlgorithm_Fast::PostprocessMetadata broken by #201
2021-10-18 GermanAizek Code refactor (lower scope, local var, default constructor and destructor)
2021-10-18 adam.sawicki Fixes in comments
2021-10-06 lukasz.izdebski doxygen directory fix
2021-10-06 lukasz.izdebski doxygen generation fix
2021-10-06 lukasz.izdebski Doxygen added to CMake, shader project dependency added to Sample Project
2021-09-30 danielkrupinski Replace tabs with spaces
2021-09-30 adam.sawicki Standardized line endings to LF
2021-09-29 danielkrupinski Use forwarding references with std::forward()
2021-09-22 rverschelde Remove trailing whitespace
2021-09-20 danielkrupinski Adjust VMA_MIN() and VMA_MAX() macros to work despite NOMINMAX being defined or not.
2021-09-20 adam.sawicki Little improvement in README
2021-09-20 sk Fixed issue #192 with hardcoded VK_USE_PLATFORM_WIN32_KHR
2021-07-29 adam.sawicki Fixes and improvements in documentation
2021-07-28 adam.sawicki Include block IDs in debug log messages
2021-07-28 adam.sawicki Minor fixes in the docs - language
2021-07-28 adam.sawicki Added documentation chapter about OpenGL interop
2021-07-28 adam.sawicki Moved main documentation text from the beginning to the end of file
2021-07-28 adam.sawicki Removed unused variable
2021-07-25 phil-el Do not fail travis build if the build directory already exists.
2021-07-23 Hindrik1997 Add include_directories to CMake to include the header files.
2021-07-21 Hindrik1997 Disable broken aligned_alloc on new versions of macOS and revert to old behaviour.
2021-07-07 adam.sawicki Fixed documentation of the new function vmaCreateBufferWithAlignment
2021-07-07 adam.sawicki Added VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes
2021-06-28 adam.sawicki Added function vmaCreateBufferWithAlignment
2021-06-25 adam.sawicki Used range-based for loops wherever I could
2021-06-21 adam.sawicki Regenerated documentation
2021-06-21 adam.sawicki Fixed docs
2021-06-21 adam.sawicki Fixes. Left only new member VmaPoolCreateInfo::pMemoryAllocateNext.
2021-06-18 adam.sawicki Fix to online documentation
2021-06-18 adam.sawicki Added VmaPoolCreateInfo::minAllocationAlignment
2021-06-14 adam.sawicki Renamed macro VMA_DEBUG_ALIGNMENT to VMA_MIN_ALIGNMENT as there are valid use cases for it other than debugging purposes.
2020-10-23 adam.sawicki Added VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes
2020-10-05 adam.sawicki Add VmaPoolCreateInfo::pMemoryAllocateNext

Created with:
  roll-dep third_party/vulkan_memory_allocator

Change-Id: Id06b17662ff37425b5b8b7f7d1901da6d73c5260
Commit-Queue: Austin Eng <>
Auto-Submit: Austin Eng <>
Reviewed-by: Loko Kung <>
Commit-Queue: Loko Kung <>
1 file changed
tree: 9591680f43d3fa0cd52301a168f5d4108e239355
  1. .vscode/
  2. build_overrides/
  3. docs/
  4. examples/
  5. generator/
  6. infra/
  7. scripts/
  8. src/
  9. third_party/
  10. tools/
  11. .clang-format
  12. .gitattributes
  13. .gitignore
  14. .gn
  17. CMakeLists.txt
  18. codereview.settings
  19. dawn.json
  20. dawn_wire.json
  21. DEPS
  24. OWNERS
  26. README.chromium

Dawn's logo: a sun rising behind a stylized mountain inspired by the WebGPU logo. The text Dawn is written below it.

Dawn, a WebGPU implementation

Dawn is an open-source and cross-platform implementation of the work-in-progress WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.

Dawn provides several WebGPU building blocks:

  • WebGPU C/C++ headers that applications and other building blocks use.
    • The webgpu.h version that Dawn implements.
    • A C++ wrapper for the webgpu.h.
  • A “native” implementation of WebGPU using platforms' GPU APIs:
    • D3D12 on Windows 10
    • Metal on macOS and iOS
    • Vulkan on Windows, Linux, ChromeOS, Android and Fuchsia
    • OpenGL as best effort where available
  • A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers

Helpful links:

Documentation table of content

Developer documentation:

User documentation: (TODO, figure out what overlaps with the webgpu.h docs)




Apache 2.0 Public License, please see LICENSE.


This is not an officially supported Google product.