Branch
Hash :
49d0a332
Author :
Date :
2025-04-08T16:07:17
Vulkan: Remove ring buffer allocators * Removed the ring buffer allocator functionality from ANGLE: angle::RingBufferAllocator * Also removed the related common files. * (Pool allocators will be used at all times.) * Removed the placeholder functions from the pool allocator. * Removed the following BUILD flag: angle_enable_vulkan_shared_ring_buffer_cmd_alloc * Removed redundant line from ContextVk. Bug: b/410036490 Change-Id: I368fb93a66ddfd192018b09f65004a32339abd5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442640 Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Allocator helpers are used in the command buffer objects as a means to allocate memory for the latter. Currently, only a pool allocator is implemented.
In SecondaryCommandBuffer.h, the helper classes related to the selected allocator type are
aliased as the following:
SecondaryCommandMemoryAllocator
SecondaryCommandBlockPool
SecondaryCommandBuffer.
SecondaryCommandBlockAllocator
CommandBufferHelperCommon, and by extension, is used in its
derived helper classes for render pass and outside render pass command buffer helpers.
Files: AllocatorHelperPool.cpp and AllocatorHelperPool.h
SecondaryCommandMemoryAllocator -> DedicatedCommandMemoryAllocator -> angle::PoolAllocator
SecondaryCommandBlockPool -> DedicatedCommandBlockPool
SecondaryCommandBlockAllocator -> DedicatedCommandBlockAllocator
# Allocators
Allocator helpers are used in the command buffer objects as a means to allocate memory for the
latter. Currently, only a pool allocator is implemented.
### Common interface
In `SecondaryCommandBuffer.h`, the helper classes related to the selected allocator type are
aliased as the following:
* `SecondaryCommandMemoryAllocator`
* This is the main allocator object used in the allocator helper class. It is used as a type
for some of the allocator helper's public functions.
* `SecondaryCommandBlockPool`
* This allocator is used in `SecondaryCommandBuffer`.
* `SecondaryCommandBlockAllocator`
* This allocator is defined in `CommandBufferHelperCommon`, and by extension, is used in its
derived helper classes for render pass and outside render pass command buffer helpers.
### Pool allocator helpers
_Files: `AllocatorHelperPool.cpp` and `AllocatorHelperPool.h`_
- `SecondaryCommandMemoryAllocator` -> `DedicatedCommandMemoryAllocator` -> `angle::PoolAllocator`
- `SecondaryCommandBlockPool` -> `DedicatedCommandBlockPool`
- `SecondaryCommandBlockAllocator` -> `DedicatedCommandBlockAllocator`