summaryrefslogtreecommitdiffstats
path: root/src/vulkan
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-07-31 10:13:24 -0700
committerJason Ekstrand <[email protected]>2015-07-31 10:14:17 -0700
commite40bdcef1fb6127545999a0b671b49fa393652b4 (patch)
treec09acfb43b4ccd440dcf164af377ca1908e8691f /src/vulkan
parent0f050aaa15ec6bd521eff013808ac151cec9abda (diff)
vk/device: Add anv_instance_alloc/free helpers
This way we can more consistently alloc/free the device and it will provide us a better place to put valgrind hooks in the next patch
Diffstat (limited to 'src/vulkan')
-rw-r--r--src/vulkan/anv_device.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/vulkan/anv_device.c b/src/vulkan/anv_device.c
index 9217be79306..9f2fcf37344 100644
--- a/src/vulkan/anv_device.c
+++ b/src/vulkan/anv_device.c
@@ -161,6 +161,25 @@ VkResult anv_DestroyInstance(
return VK_SUCCESS;
}
+static void *
+anv_instance_alloc(struct anv_instance *instance, size_t size,
+ size_t alignment, VkSystemAllocType allocType)
+{
+ void *mem = instance->pfnAlloc(instance->pAllocUserData,
+ size, alignment, allocType);
+ VG(VALGRIND_MAKE_MEM_UNDEFINED(mem, size));
+ return mem;
+}
+
+static void
+anv_instance_free(struct anv_instance *instance, void *mem)
+{
+ if (mem == NULL)
+ return;
+
+ instance->pfnFree(instance->pAllocUserData, mem);
+}
+
VkResult anv_EnumeratePhysicalDevices(
VkInstance _instance,
uint32_t* pPhysicalDeviceCount,
@@ -546,8 +565,7 @@ VkResult anv_CreateDevice(
assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO);
- device = instance->pfnAlloc(instance->pAllocUserData,
- sizeof(*device), 8,
+ device = anv_instance_alloc(instance, sizeof(*device), 8,
VK_SYSTEM_ALLOC_TYPE_API_OBJECT);
if (!device)
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
@@ -635,7 +653,7 @@ VkResult anv_DestroyDevice(
if (device->aub_writer)
anv_aub_writer_destroy(device->aub_writer);
- anv_device_free(device, device);
+ anv_instance_free(device->instance, device);
return VK_SUCCESS;
}
@@ -844,21 +862,14 @@ anv_device_alloc(struct anv_device * device,
size_t alignment,
VkSystemAllocType allocType)
{
- void *mem = device->instance->pfnAlloc(device->instance->pAllocUserData,
- size, alignment, allocType);
- VG(VALGRIND_MAKE_MEM_UNDEFINED(mem, size));
- return mem;
+ return anv_instance_alloc(device->instance, size, alignment, allocType);
}
void
anv_device_free(struct anv_device * device,
void * mem)
{
- if (mem == NULL)
- return;
-
- return device->instance->pfnFree(device->instance->pAllocUserData,
- mem);
+ anv_instance_free(device->instance, mem);
}
VkResult