MCPcopy Create free account
hub / github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator / TestUserData

Function TestUserData

src/Tests.cpp:2996–3071  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2994}
2995
2996static void TestUserData()
2997{
2998 VkResult res;
2999
3000 VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
3001 bufCreateInfo.usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
3002 bufCreateInfo.size = 0x10000;
3003
3004 for(uint32_t testIndex = 0; testIndex < 2; ++testIndex)
3005 {
3006 // Opaque pointer
3007 {
3008
3009 void* numberAsPointer = (void*)(size_t)0xC2501FF3u;
3010 void* pointerToSomething = &res;
3011
3012 VmaAllocationCreateInfo allocCreateInfo = {};
3013 allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO;
3014 allocCreateInfo.pUserData = numberAsPointer;
3015 if(testIndex == 1)
3016 allocCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
3017
3018 VkBuffer buf; VmaAllocation alloc; VmaAllocationInfo allocInfo;
3019 res = vmaCreateBuffer(g_hAllocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo);
3020 TEST(res == VK_SUCCESS);
3021 TEST(allocInfo.pUserData == numberAsPointer);
3022
3023 vmaGetAllocationInfo(g_hAllocator, alloc, &allocInfo);
3024 TEST(allocInfo.pUserData == numberAsPointer);
3025
3026 vmaSetAllocationUserData(g_hAllocator, alloc, pointerToSomething);
3027 vmaGetAllocationInfo(g_hAllocator, alloc, &allocInfo);
3028 TEST(allocInfo.pUserData == pointerToSomething);
3029
3030 vmaDestroyBuffer(g_hAllocator, buf, alloc);
3031 }
3032
3033 // String
3034 {
3035 const char* name1 = "Buffer name \\\"\'<>&% \nSecond line .,;=";
3036 const char* name2 = "2";
3037 const size_t name1Len = strlen(name1);
3038
3039 char* name1Buf = new char[name1Len + 1];
3040 strcpy_s(name1Buf, name1Len + 1, name1);
3041
3042 VmaAllocationCreateInfo allocCreateInfo = {};
3043 allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO;
3044 allocCreateInfo.flags = VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT;
3045 allocCreateInfo.pUserData = name1Buf;
3046 if(testIndex == 1)
3047 allocCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
3048
3049 VkBuffer buf; VmaAllocation alloc; VmaAllocationInfo allocInfo;
3050 res = vmaCreateBuffer(g_hAllocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo);
3051 TEST(res == VK_SUCCESS);
3052 TEST(allocInfo.pName != nullptr && allocInfo.pName != name1Buf);
3053 TEST(strcmp(name1, allocInfo.pName) == 0);

Callers 1

TestBasicsFunction · 0.85

Calls 6

vmaCreateBufferFunction · 0.85
TESTEnum · 0.85
vmaGetAllocationInfoFunction · 0.85
vmaSetAllocationUserDataFunction · 0.85
vmaDestroyBufferFunction · 0.85
vmaSetAllocationNameFunction · 0.85

Tested by

no test coverage detected