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