5 #include "flutter/testing/testing.h"
6 #include "gtest/gtest.h"
10 #include "impeller/renderer/backend/vulkan/test/mock_vulkan.h"
11 #include "vulkan/vulkan_enums.hpp"
16 TEST(AllocatorVKTest, ToVKImageUsageFlags) {
22 vk::ImageUsageFlagBits::eInputAttachment |
23 vk::ImageUsageFlagBits::eColorAttachment |
24 vk::ImageUsageFlagBits::eTransientAttachment);
31 vk::ImageUsageFlagBits::eDepthStencilAttachment |
32 vk::ImageUsageFlagBits::eTransientAttachment);
35 TEST(AllocatorVKTest, MemoryTypeSelectionSingleHeap) {
36 vk::PhysicalDeviceMemoryProperties properties;
37 properties.memoryTypeCount = 1;
38 properties.memoryHeapCount = 1;
39 properties.memoryTypes[0].heapIndex = 0;
40 properties.memoryTypes[0].propertyFlags =
41 vk::MemoryPropertyFlagBits::eDeviceLocal;
42 properties.memoryHeaps[0].size = 1024 * 1024 * 1024;
43 properties.memoryHeaps[0].flags = vk::MemoryHeapFlagBits::eDeviceLocal;
50 TEST(AllocatorVKTest, MemoryTypeSelectionTwoHeap) {
51 vk::PhysicalDeviceMemoryProperties properties;
52 properties.memoryTypeCount = 2;
53 properties.memoryHeapCount = 2;
54 properties.memoryTypes[0].heapIndex = 0;
55 properties.memoryTypes[0].propertyFlags =
56 vk::MemoryPropertyFlagBits::eHostVisible;
57 properties.memoryHeaps[0].size = 1024 * 1024 * 1024;
58 properties.memoryHeaps[0].flags = vk::MemoryHeapFlagBits::eDeviceLocal;
60 properties.memoryTypes[1].heapIndex = 1;
61 properties.memoryTypes[1].propertyFlags =
62 vk::MemoryPropertyFlagBits::eDeviceLocal;
63 properties.memoryHeaps[1].size = 1024 * 1024 * 1024;
64 properties.memoryHeaps[1].flags = vk::MemoryHeapFlagBits::eDeviceLocal;
75 TEST(AllocatorVKTest, RecreateSwapchainWhenSizeChanges) {
76 auto const context = MockVulkanContextBuilder().Build();
77 auto allocator = context->GetResourceAllocator();
91 reinterpret_cast<AllocatorVK*
>(allocator.get())->DebugGetHeapUsage(),
95 #endif // IMPELLER_DEBUG