#include <allocator_vk.h>
Definition at line 19 of file allocator_vk.h.
◆ ~AllocatorVK()
impeller::AllocatorVK::~AllocatorVK |
( |
| ) |
|
|
overridedefault |
◆ DebugGetHeapUsage()
size_t impeller::AllocatorVK::DebugGetHeapUsage |
( |
| ) |
const |
Definition at line 512 of file allocator_vk.cc.
513 auto count = memory_properties_.memoryHeapCount;
514 std::vector<VmaBudget> budgets(count);
515 vmaGetHeapBudgets(allocator_.get(), budgets.data());
516 size_t total_usage = 0;
517 for (
auto i = 0u; i < count; i++) {
518 const VmaBudget& budget = budgets[i];
519 total_usage += budget.usage;
◆ FindMemoryTypeIndex()
int32_t impeller::AllocatorVK::FindMemoryTypeIndex |
( |
uint32_t |
memory_type_bits_requirement, |
|
|
vk::PhysicalDeviceMemoryProperties & |
memory_properties |
|
) |
| |
|
static |
Select a matching memory type for the given [memory_type_bits_requirement], or -1 if none is found.
This only returns memory types with deviceLocal allocations.
Definition at line 173 of file allocator_vk.cc.
176 int32_t type_index = -1;
177 vk::MemoryPropertyFlagBits required_properties =
178 vk::MemoryPropertyFlagBits::eDeviceLocal;
180 const uint32_t memory_count = memory_properties.memoryTypeCount;
181 for (uint32_t memory_index = 0; memory_index < memory_count; ++memory_index) {
182 const uint32_t memory_type_bits = (1 << memory_index);
183 const bool is_required_memory_type =
184 memory_type_bits_requirement & memory_type_bits;
186 const auto properties =
187 memory_properties.memoryTypes[memory_index].propertyFlags;
188 const bool has_required_properties =
189 (properties & required_properties) == required_properties;
191 if (is_required_memory_type && has_required_properties) {
192 return static_cast<int32_t
>(memory_index);
Referenced by impeller::ImportVKDeviceMemoryFromAndroidHarwareBuffer(), and impeller::testing::TEST().
◆ ToVKImageUsageFlags()
Definition at line 199 of file allocator_vk.cc.
204 vk::ImageUsageFlags vk_usage;
211 if (supports_memoryless_textures) {
212 vk_usage |= vk::ImageUsageFlagBits::eTransientAttachment;
219 vk_usage |= vk::ImageUsageFlagBits::eDepthStencilAttachment;
221 vk_usage |= vk::ImageUsageFlagBits::eColorAttachment;
222 vk_usage |= vk::ImageUsageFlagBits::eInputAttachment;
227 vk_usage |= vk::ImageUsageFlagBits::eSampled;
231 vk_usage |= vk::ImageUsageFlagBits::eStorage;
237 vk_usage |= vk::ImageUsageFlagBits::eTransferSrc |
238 vk::ImageUsageFlagBits::eTransferDst;
References impeller::PixelFormatIsDepthStencil().
Referenced by impeller::testing::TEST().
◆ ContextVK
The documentation for this class was generated from the following files: