From 955de51cf0206b4a34f8442294c45225074286f4 Mon Sep 17 00:00:00 2001 From: Pyry Haulos Date: Wed, 9 Dec 2015 13:27:07 -0800 Subject: [PATCH] Add support for custom allocators in vk::Move<> and vk::Unique<> Change-Id: Ifdb56dc96528ab91ccf89b2795e716fd6281ea31 --- external/vulkancts/framework/vulkan/vkRef.hpp | 65 ++++---- external/vulkancts/framework/vulkan/vkRefUtil.cpp | 20 ++- external/vulkancts/framework/vulkan/vkRefUtil.hpp | 12 +- external/vulkancts/framework/vulkan/vkRefUtil.inl | 44 +++--- .../vulkancts/framework/vulkan/vkRefUtilImpl.inl | 170 ++++++++++----------- external/vulkancts/gen_framework.py | 12 +- .../vulkan/memory/vktMemoryMappingTests.cpp | 2 +- .../modules/vulkan/vktRenderPassTests.cpp | 30 +--- 8 files changed, 183 insertions(+), 172 deletions(-) diff --git a/external/vulkancts/framework/vulkan/vkRef.hpp b/external/vulkancts/framework/vulkan/vkRef.hpp index dcf36e8..19fdc66 100644 --- a/external/vulkancts/framework/vulkan/vkRef.hpp +++ b/external/vulkancts/framework/vulkan/vkRef.hpp @@ -85,54 +85,63 @@ template class Deleter { public: - Deleter (const DeviceInterface& deviceIface, VkDevice device) - : m_deviceIface (&deviceIface) - , m_device (device) - {} - Deleter (void) - : m_deviceIface (DE_NULL) - , m_device (DE_NULL) - {} - - void operator() (T obj) const; + Deleter (const DeviceInterface& deviceIface, VkDevice device, const VkAllocationCallbacks* allocator) + : m_deviceIface (&deviceIface) + , m_device (device) + , m_allocator (allocator) + {} + Deleter (void) + : m_deviceIface (DE_NULL) + , m_device (DE_NULL) + , m_allocator (DE_NULL) + {} + + void operator() (T obj) const; private: - const DeviceInterface* m_deviceIface; - VkDevice m_device; + const DeviceInterface* m_deviceIface; + VkDevice m_device; + const VkAllocationCallbacks* m_allocator; }; template<> class Deleter { public: - Deleter (const PlatformInterface& platformIface, VkInstance instance) - : m_destroyInstance((DestroyInstanceFunc)platformIface.getInstanceProcAddr(instance, "vkDestroyInstance")) - {} - Deleter (void) - : m_destroyInstance((DestroyInstanceFunc)DE_NULL) - {} + Deleter (const PlatformInterface& platformIface, VkInstance instance, const VkAllocationCallbacks* allocator) + : m_destroyInstance ((DestroyInstanceFunc)platformIface.getInstanceProcAddr(instance, "vkDestroyInstance")) + , m_allocator (allocator) + {} + Deleter (void) + : m_destroyInstance ((DestroyInstanceFunc)DE_NULL) + , m_allocator (DE_NULL) + {} - void operator() (VkInstance obj) const { m_destroyInstance(obj, DE_NULL); } + void operator() (VkInstance obj) const { m_destroyInstance(obj, m_allocator); } private: - DestroyInstanceFunc m_destroyInstance; + DestroyInstanceFunc m_destroyInstance; + const VkAllocationCallbacks* m_allocator; }; template<> class Deleter { public: - Deleter (const InstanceInterface& instanceIface, VkDevice device) - : m_destroyDevice((DestroyDeviceFunc)instanceIface.getDeviceProcAddr(device, "vkDestroyDevice")) - {} - Deleter (void) - : m_destroyDevice((DestroyDeviceFunc)DE_NULL) - {} + Deleter (const InstanceInterface& instanceIface, VkDevice device, const VkAllocationCallbacks* allocator) + : m_destroyDevice ((DestroyDeviceFunc)instanceIface.getDeviceProcAddr(device, "vkDestroyDevice")) + , m_allocator (allocator) + {} + Deleter (void) + : m_destroyDevice ((DestroyDeviceFunc)DE_NULL) + , m_allocator (DE_NULL) + {} - void operator() (VkDevice obj) const { m_destroyDevice(obj, DE_NULL); } + void operator() (VkDevice obj) const { m_destroyDevice(obj, m_allocator); } private: - DestroyDeviceFunc m_destroyDevice; + DestroyDeviceFunc m_destroyDevice; + const VkAllocationCallbacks* m_allocator; }; template<> diff --git a/external/vulkancts/framework/vulkan/vkRefUtil.cpp b/external/vulkancts/framework/vulkan/vkRefUtil.cpp index a878bc9..1ef4f96 100644 --- a/external/vulkancts/framework/vulkan/vkRefUtil.cpp +++ b/external/vulkancts/framework/vulkan/vkRefUtil.cpp @@ -39,18 +39,26 @@ namespace vk #include "vkRefUtilImpl.inl" -Move createGraphicsPipeline (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, const VkGraphicsPipelineCreateInfo* pCreateInfo) +Move createGraphicsPipeline (const DeviceInterface& vk, + VkDevice device, + VkPipelineCache pipelineCache, + const VkGraphicsPipelineCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator) { VkPipeline object = 0; - VK_CHECK(vk.createGraphicsPipelines(device, pipelineCache, 1u, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createGraphicsPipelines(device, pipelineCache, 1u, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createComputePipeline (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, const VkComputePipelineCreateInfo* pCreateInfo) +Move createComputePipeline (const DeviceInterface& vk, + VkDevice device, + VkPipelineCache pipelineCache, + const VkComputePipelineCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator) { VkPipeline object = 0; - VK_CHECK(vk.createComputePipelines(device, pipelineCache, 1u, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createComputePipelines(device, pipelineCache, 1u, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } Move allocateCommandBuffer (const DeviceInterface& vk, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo) diff --git a/external/vulkancts/framework/vulkan/vkRefUtil.hpp b/external/vulkancts/framework/vulkan/vkRefUtil.hpp index 82bfa61..fc2e46f 100644 --- a/external/vulkancts/framework/vulkan/vkRefUtil.hpp +++ b/external/vulkancts/framework/vulkan/vkRefUtil.hpp @@ -42,8 +42,16 @@ namespace vk #include "vkRefUtil.inl" -Move createGraphicsPipeline (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, const VkGraphicsPipelineCreateInfo* pCreateInfo); -Move createComputePipeline (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, const VkComputePipelineCreateInfo* pCreateInfo); +Move createGraphicsPipeline (const DeviceInterface& vk, + VkDevice device, + VkPipelineCache pipelineCache, + const VkGraphicsPipelineCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createComputePipeline (const DeviceInterface& vk, + VkDevice device, + VkPipelineCache pipelineCache, + const VkComputePipelineCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator = DE_NULL); Move allocateCommandBuffer (const DeviceInterface& vk, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo); Move allocateDescriptorSet (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo); diff --git a/external/vulkancts/framework/vulkan/vkRefUtil.inl b/external/vulkancts/framework/vulkan/vkRefUtil.inl index 26d94b4..2d2a5fd 100644 --- a/external/vulkancts/framework/vulkan/vkRefUtil.inl +++ b/external/vulkancts/framework/vulkan/vkRefUtil.inl @@ -1,25 +1,25 @@ /* WARNING: This is auto-generated file. Do not modify, since changes will * be lost! Modify the generating script instead. */ -Move createInstance (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo); -Move createDevice (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo); -Move allocateMemory (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo); -Move createFence (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo); -Move createSemaphore (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo); -Move createEvent (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo); -Move createQueryPool (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo); -Move createBuffer (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo); -Move createBufferView (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo); -Move createImage (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo); -Move createImageView (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo); -Move createShaderModule (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo); -Move createPipelineCache (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo); -Move createGraphicsPipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos); -Move createComputePipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos); -Move createPipelineLayout (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo); -Move createSampler (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo); -Move createDescriptorSetLayout (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo); -Move createDescriptorPool (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo); -Move createFramebuffer (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo); -Move createRenderPass (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo); -Move createCommandPool (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo); +Move createInstance (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createDevice (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move allocateMemory (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createFence (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createSemaphore (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createEvent (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createQueryPool (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createBuffer (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createBufferView (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createImage (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createImageView (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createShaderModule (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createPipelineCache (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createGraphicsPipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createComputePipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createPipelineLayout (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createSampler (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createDescriptorSetLayout (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createDescriptorPool (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createFramebuffer (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createRenderPass (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); +Move createCommandPool (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL); diff --git a/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl b/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl index b0328c4..021e48b 100644 --- a/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl +++ b/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl @@ -7,270 +7,270 @@ namespace refdetails template<> void Deleter::operator() (VkDeviceMemory obj) const { - m_deviceIface->freeMemory(m_device, obj, DE_NULL); + m_deviceIface->freeMemory(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkFence obj) const { - m_deviceIface->destroyFence(m_device, obj, DE_NULL); + m_deviceIface->destroyFence(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkSemaphore obj) const { - m_deviceIface->destroySemaphore(m_device, obj, DE_NULL); + m_deviceIface->destroySemaphore(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkEvent obj) const { - m_deviceIface->destroyEvent(m_device, obj, DE_NULL); + m_deviceIface->destroyEvent(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkQueryPool obj) const { - m_deviceIface->destroyQueryPool(m_device, obj, DE_NULL); + m_deviceIface->destroyQueryPool(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkBuffer obj) const { - m_deviceIface->destroyBuffer(m_device, obj, DE_NULL); + m_deviceIface->destroyBuffer(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkBufferView obj) const { - m_deviceIface->destroyBufferView(m_device, obj, DE_NULL); + m_deviceIface->destroyBufferView(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkImage obj) const { - m_deviceIface->destroyImage(m_device, obj, DE_NULL); + m_deviceIface->destroyImage(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkImageView obj) const { - m_deviceIface->destroyImageView(m_device, obj, DE_NULL); + m_deviceIface->destroyImageView(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkShaderModule obj) const { - m_deviceIface->destroyShaderModule(m_device, obj, DE_NULL); + m_deviceIface->destroyShaderModule(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkPipelineCache obj) const { - m_deviceIface->destroyPipelineCache(m_device, obj, DE_NULL); + m_deviceIface->destroyPipelineCache(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkPipeline obj) const { - m_deviceIface->destroyPipeline(m_device, obj, DE_NULL); + m_deviceIface->destroyPipeline(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkPipelineLayout obj) const { - m_deviceIface->destroyPipelineLayout(m_device, obj, DE_NULL); + m_deviceIface->destroyPipelineLayout(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkSampler obj) const { - m_deviceIface->destroySampler(m_device, obj, DE_NULL); + m_deviceIface->destroySampler(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkDescriptorSetLayout obj) const { - m_deviceIface->destroyDescriptorSetLayout(m_device, obj, DE_NULL); + m_deviceIface->destroyDescriptorSetLayout(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkDescriptorPool obj) const { - m_deviceIface->destroyDescriptorPool(m_device, obj, DE_NULL); + m_deviceIface->destroyDescriptorPool(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkFramebuffer obj) const { - m_deviceIface->destroyFramebuffer(m_device, obj, DE_NULL); + m_deviceIface->destroyFramebuffer(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkRenderPass obj) const { - m_deviceIface->destroyRenderPass(m_device, obj, DE_NULL); + m_deviceIface->destroyRenderPass(m_device, obj, m_allocator); } template<> void Deleter::operator() (VkCommandPool obj) const { - m_deviceIface->destroyCommandPool(m_device, obj, DE_NULL); + m_deviceIface->destroyCommandPool(m_device, obj, m_allocator); } } // refdetails -Move createInstance (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo) +Move createInstance (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkInstance object = 0; - VK_CHECK(vk.createInstance(pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, object)); + VK_CHECK(vk.createInstance(pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, object, pAllocator)); } -Move createDevice (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo) +Move createDevice (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkDevice object = 0; - VK_CHECK(vk.createDevice(physicalDevice, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, object)); + VK_CHECK(vk.createDevice(physicalDevice, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, object, pAllocator)); } -Move allocateMemory (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo) +Move allocateMemory (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator) { VkDeviceMemory object = 0; - VK_CHECK(vk.allocateMemory(device, pAllocateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.allocateMemory(device, pAllocateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createFence (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo) +Move createFence (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkFence object = 0; - VK_CHECK(vk.createFence(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createFence(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createSemaphore (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo) +Move createSemaphore (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkSemaphore object = 0; - VK_CHECK(vk.createSemaphore(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createSemaphore(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createEvent (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo) +Move createEvent (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkEvent object = 0; - VK_CHECK(vk.createEvent(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createEvent(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createQueryPool (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo) +Move createQueryPool (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkQueryPool object = 0; - VK_CHECK(vk.createQueryPool(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createQueryPool(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createBuffer (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo) +Move createBuffer (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkBuffer object = 0; - VK_CHECK(vk.createBuffer(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createBuffer(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createBufferView (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo) +Move createBufferView (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkBufferView object = 0; - VK_CHECK(vk.createBufferView(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createBufferView(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createImage (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo) +Move createImage (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkImage object = 0; - VK_CHECK(vk.createImage(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createImage(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createImageView (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo) +Move createImageView (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkImageView object = 0; - VK_CHECK(vk.createImageView(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createImageView(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createShaderModule (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo) +Move createShaderModule (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkShaderModule object = 0; - VK_CHECK(vk.createShaderModule(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createShaderModule(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createPipelineCache (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo) +Move createPipelineCache (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkPipelineCache object = 0; - VK_CHECK(vk.createPipelineCache(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createPipelineCache(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createGraphicsPipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos) +Move createGraphicsPipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator) { VkPipeline object = 0; - VK_CHECK(vk.createGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createComputePipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos) +Move createComputePipelines (const DeviceInterface& vk, VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator) { VkPipeline object = 0; - VK_CHECK(vk.createComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createPipelineLayout (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo) +Move createPipelineLayout (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkPipelineLayout object = 0; - VK_CHECK(vk.createPipelineLayout(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createPipelineLayout(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createSampler (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo) +Move createSampler (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkSampler object = 0; - VK_CHECK(vk.createSampler(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createSampler(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createDescriptorSetLayout (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo) +Move createDescriptorSetLayout (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkDescriptorSetLayout object = 0; - VK_CHECK(vk.createDescriptorSetLayout(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createDescriptorSetLayout(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createDescriptorPool (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo) +Move createDescriptorPool (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkDescriptorPool object = 0; - VK_CHECK(vk.createDescriptorPool(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createDescriptorPool(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createFramebuffer (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo) +Move createFramebuffer (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkFramebuffer object = 0; - VK_CHECK(vk.createFramebuffer(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createFramebuffer(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createRenderPass (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo) +Move createRenderPass (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkRenderPass object = 0; - VK_CHECK(vk.createRenderPass(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createRenderPass(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } -Move createCommandPool (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo) +Move createCommandPool (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) { VkCommandPool object = 0; - VK_CHECK(vk.createCommandPool(device, pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + VK_CHECK(vk.createCommandPool(device, pCreateInfo, pAllocator, &object)); + return Move(check(object), Deleter(vk, device, pAllocator)); } diff --git a/external/vulkancts/gen_framework.py b/external/vulkancts/gen_framework.py index e27b26b..1c6a708 100644 --- a/external/vulkancts/gen_framework.py +++ b/external/vulkancts/gen_framework.py @@ -590,16 +590,16 @@ def getConstructorFunctions (api): assert function.arguments[-2].type == "const VkAllocationCallbacks*" objectType = function.arguments[-1].type.replace("*", "").strip() - arguments = function.arguments[:-2] + arguments = function.arguments[:-1] funcs.append(ConstructorFunction(function.getType(), getInterfaceName(function), objectType, iface, arguments)) return funcs def writeRefUtilProto (api, filename): - functions = getConstructorFunctions(api) + functions = getConstructorFunctions(api) def makeRefUtilProto (): unindented = [] - for line in indentLines(["Move<%s>\t%s\t(%s);" % (function.objectType, function.name, argListToStr([function.iface] + function.arguments)) for function in functions]): + for line in indentLines(["Move<%s>\t%s\t(%s = DE_NULL);" % (function.objectType, function.name, argListToStr([function.iface] + function.arguments)) for function in functions]): yield line writeInlFile(filename, INL_HEADER, makeRefUtilProto()) @@ -620,7 +620,7 @@ def writeRefUtilImpl (api, filename): yield "template<>" yield "void Deleter<%s>::operator() (%s obj) const" % (objectType, objectType) yield "{" - yield "\tm_deviceIface->%s(m_device, obj, DE_NULL);" % (getInterfaceName(function)) + yield "\tm_deviceIface->%s(m_device, obj, m_allocator);" % (getInterfaceName(function)) yield "}" yield "" @@ -633,8 +633,8 @@ def writeRefUtilImpl (api, filename): yield "Move<%s> %s (%s)" % (function.objectType, function.name, argListToStr([function.iface] + function.arguments)) yield "{" yield "\t%s object = 0;" % function.objectType - yield "\tVK_CHECK(vk.%s(%s));" % (function.name, ", ".join([a.name for a in function.arguments] + ["DE_NULL", "&object"])) - yield "\treturn Move<%s>(check<%s>(object), Deleter<%s>(vk, %s));" % (function.objectType, function.objectType, function.objectType, dtorObj) + yield "\tVK_CHECK(vk.%s(%s));" % (function.name, ", ".join([a.name for a in function.arguments] + ["&object"])) + yield "\treturn Move<%s>(check<%s>(object), Deleter<%s>(%s));" % (function.objectType, function.objectType, function.objectType, ", ".join(["vk", dtorObj, function.arguments[-1].name])) yield "}" yield "" diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp index 8e821f6..22e8fa2 100644 --- a/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp +++ b/external/vulkancts/modules/vulkan/memory/vktMemoryMappingTests.cpp @@ -81,7 +81,7 @@ Move allocMemory (const DeviceInterface& vk, VkDevice device, Vk pAllocInfo_memoryTypeIndex, }; VK_CHECK(vk.allocateMemory(device, &pAllocInfo, (const VkAllocationCallbacks*)DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return Move(check(object), Deleter(vk, device, (const VkAllocationCallbacks*)DE_NULL)); } struct MemoryRange diff --git a/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp b/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp index 9ecaa00..007b85d 100644 --- a/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp +++ b/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp @@ -99,7 +99,6 @@ enum // Utility functions using flattened structs Move createFence (const DeviceInterface& vk, VkDevice device, VkFenceCreateFlags flags) { - VkFence object = 0; const VkFenceCreateInfo pCreateInfo = { VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, @@ -107,8 +106,7 @@ Move createFence (const DeviceInterface& vk, VkDevice device, VkFenceCr flags }; - VK_CHECK(vk.createFence(device, &pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return createFence(vk, device, &pCreateInfo); } Move createFramebuffer (const DeviceInterface& vk, @@ -121,7 +119,6 @@ Move createFramebuffer (const DeviceInterface& vk, deUint32 pCreateInfo_height, deUint32 pCreateInfo_layers) { - VkFramebuffer object = 0; const VkFramebufferCreateInfo pCreateInfo = { VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, @@ -134,8 +131,7 @@ Move createFramebuffer (const DeviceInterface& vk, pCreateInfo_height, pCreateInfo_layers, }; - VK_CHECK(vk.createFramebuffer(device, &pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return createFramebuffer(vk, device, &pCreateInfo); } Move createImage (const DeviceInterface& vk, @@ -154,7 +150,6 @@ Move createImage (const DeviceInterface& vk, const deUint32* pCreateInfo_pQueueFamilyIndices, VkImageLayout pCreateInfo_initialLayout) { - VkImage object = 0; const VkImageCreateInfo pCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, @@ -173,8 +168,7 @@ Move createImage (const DeviceInterface& vk, pCreateInfo_pQueueFamilyIndices, pCreateInfo_initialLayout }; - VK_CHECK(vk.createImage(device, &pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return createImage(vk, device, &pCreateInfo); } void bindBufferMemory (const DeviceInterface& vk, VkDevice device, VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memOffset) @@ -196,7 +190,6 @@ Move createImageView (const DeviceInterface& vk, VkComponentMapping pCreateInfo_components, VkImageSubresourceRange pCreateInfo_subresourceRange) { - VkImageView object = 0; const VkImageViewCreateInfo pCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, @@ -208,8 +201,7 @@ Move createImageView (const DeviceInterface& vk, pCreateInfo_components, pCreateInfo_subresourceRange, }; - VK_CHECK(vk.createImageView(device, &pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return createImageView(vk, device, &pCreateInfo); } Move createBuffer (const DeviceInterface& vk, @@ -221,7 +213,6 @@ Move createBuffer (const DeviceInterface& vk, deUint32 pCreateInfo_queueFamilyCount, const deUint32* pCreateInfo_pQueueFamilyIndices) { - VkBuffer object = 0; const VkBufferCreateInfo pCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, @@ -233,8 +224,7 @@ Move createBuffer (const DeviceInterface& vk, pCreateInfo_queueFamilyCount, pCreateInfo_pQueueFamilyIndices, }; - VK_CHECK(vk.createBuffer(device, &pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return createBuffer(vk, device, &pCreateInfo); } Move createCommandPool (const DeviceInterface& vk, @@ -242,7 +232,6 @@ Move createCommandPool (const DeviceInterface& vk, VkCommandPoolCreateFlags pCreateInfo_flags, deUint32 pCreateInfo_queueFamilyIndex) { - VkCommandPool object = 0; const VkCommandPoolCreateInfo pCreateInfo = { VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, @@ -250,8 +239,7 @@ Move createCommandPool (const DeviceInterface& vk, pCreateInfo_flags, pCreateInfo_queueFamilyIndex, }; - VK_CHECK(vk.createCommandPool(device, &pCreateInfo, DE_NULL, &object)); - return Move(check(object), Deleter(vk, device)); + return createCommandPool(vk, device, &pCreateInfo); } void cmdBeginRenderPass (const DeviceInterface& vk, @@ -281,8 +269,7 @@ Move allocateCommandBuffer (const DeviceInterface& vk, VkCommandPool pCreateInfo_commandPool, VkCommandBufferLevel pCreateInfo_level) { - VkCommandBuffer object = 0; - const VkCommandBufferAllocateInfo pCreateInfo = + const VkCommandBufferAllocateInfo pAllocateInfo = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, DE_NULL, @@ -290,8 +277,7 @@ Move allocateCommandBuffer (const DeviceInterface& vk, pCreateInfo_level, 1u, // bufferCount }; - VK_CHECK(vk.allocateCommandBuffers(device, &pCreateInfo, &object)); - return Move(check(object), Deleter(vk, device, pCreateInfo_commandPool)); + return allocateCommandBuffer(vk, device, &pAllocateInfo); } void beginCommandBuffer (const DeviceInterface& vk, -- 2.7.4