| 7077 | } |
| 7078 | |
| 7079 | static void TestMapping() |
| 7080 | { |
| 7081 | wprintf(L"Testing mapping...\n"); |
| 7082 | |
| 7083 | VkResult res; |
| 7084 | uint32_t memTypeIndex = UINT32_MAX; |
| 7085 | |
| 7086 | enum TEST |
| 7087 | { |
| 7088 | TEST_NORMAL, |
| 7089 | TEST_POOL, |
| 7090 | TEST_DEDICATED, |
| 7091 | TEST_COUNT |
| 7092 | }; |
| 7093 | for(uint32_t testIndex = 0; testIndex < TEST_COUNT; ++testIndex) |
| 7094 | { |
| 7095 | VmaPool pool = nullptr; |
| 7096 | if(testIndex == TEST_POOL) |
| 7097 | { |
| 7098 | TEST(memTypeIndex != UINT32_MAX); |
| 7099 | VmaPoolCreateInfo poolInfo = {}; |
| 7100 | poolInfo.memoryTypeIndex = memTypeIndex; |
| 7101 | res = vmaCreatePool(g_hAllocator, &poolInfo, &pool); |
| 7102 | TEST(res == VK_SUCCESS); |
| 7103 | } |
| 7104 | |
| 7105 | VkBufferCreateInfo bufInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; |
| 7106 | bufInfo.size = 0x10000; |
| 7107 | bufInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; |
| 7108 | |
| 7109 | VmaAllocationCreateInfo allocCreateInfo = {}; |
| 7110 | allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; |
| 7111 | allocCreateInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT; |
| 7112 | allocCreateInfo.pool = pool; |
| 7113 | if(testIndex == TEST_DEDICATED) |
| 7114 | allocCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; |
| 7115 | |
| 7116 | VmaAllocationInfo allocInfo; |
| 7117 | |
| 7118 | // Mapped manually |
| 7119 | |
| 7120 | // Create 2 buffers. |
| 7121 | BufferInfo bufferInfos[3]; |
| 7122 | for(size_t i = 0; i < 2; ++i) |
| 7123 | { |
| 7124 | res = vmaCreateBuffer(g_hAllocator, &bufInfo, &allocCreateInfo, |
| 7125 | &bufferInfos[i].Buffer, &bufferInfos[i].Allocation, &allocInfo); |
| 7126 | TEST(res == VK_SUCCESS); |
| 7127 | TEST(allocInfo.pMappedData == nullptr); |
| 7128 | memTypeIndex = allocInfo.memoryType; |
| 7129 | } |
| 7130 | |
| 7131 | // Map buffer 0. |
| 7132 | char* data00 = nullptr; |
| 7133 | res = vmaMapMemory(g_hAllocator, bufferInfos[0].Allocation, (void**)&data00); |
| 7134 | TEST(res == VK_SUCCESS && data00 != nullptr); |
| 7135 | data00[0xFFFF] = data00[0]; |
| 7136 |
no test coverage detected