Allow additional info to be passed to object's Create functions This is particularly useful for passing extension info structures to the object's constructor. Bug: b/132437008 Bug: b/116336664 Change-Id: I10592f5ddeb8efa52f34ebd4dfd14150b6964eab Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31612 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkDevice.cpp b/src/Vulkan/VkDevice.cpp index 9717931..aa86cc6 100644 --- a/src/Vulkan/VkDevice.cpp +++ b/src/Vulkan/VkDevice.cpp
@@ -36,12 +36,11 @@ namespace vk { -Device::Device(const Device::CreateInfo* info, void* mem) - : physicalDevice(info->pPhysicalDevice), +Device::Device(const VkDeviceCreateInfo* pCreateInfo, void* mem, PhysicalDevice *physicalDevice) + : physicalDevice(physicalDevice), queues(reinterpret_cast<Queue*>(mem)), - enabledExtensionCount(info->pCreateInfo->enabledExtensionCount) + enabledExtensionCount(pCreateInfo->enabledExtensionCount) { - const auto* pCreateInfo = info->pCreateInfo; for(uint32_t i = 0; i < pCreateInfo->queueCreateInfoCount; i++) { const VkDeviceQueueCreateInfo& queueCreateInfo = pCreateInfo->pQueueCreateInfos[i]; @@ -87,15 +86,15 @@ delete blitter; } -size_t Device::ComputeRequiredAllocationSize(const Device::CreateInfo* info) +size_t Device::ComputeRequiredAllocationSize(const VkDeviceCreateInfo* pCreateInfo) { uint32_t queueCount = 0; - for(uint32_t i = 0; i < info->pCreateInfo->queueCreateInfoCount; i++) + for(uint32_t i = 0; i < pCreateInfo->queueCreateInfoCount; i++) { - queueCount += info->pCreateInfo->pQueueCreateInfos[i].queueCount; + queueCount += pCreateInfo->pQueueCreateInfos[i].queueCount; } - return (sizeof(Queue) * queueCount) + (info->pCreateInfo->enabledExtensionCount * sizeof(ExtensionName)); + return (sizeof(Queue) * queueCount) + (pCreateInfo->enabledExtensionCount * sizeof(ExtensionName)); } bool Device::hasExtension(const char* extensionName) const