From b389e57af282a2159411bef976996f1fd4804587 Mon Sep 17 00:00:00 2001 From: Craig Stout <cstout@google.com> Date: Wed, 17 Apr 2019 00:42:48 +0000 Subject: [PATCH] [magma] Fix vkext crash on vim2 Don't call 1.1 apis if not supported. Change-Id: I41ae1803f3b05ce110106646dcefba81e5c20926 --- .../lib/magma/tests/vkreadback/vkreadback.cc | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/garnet/lib/magma/tests/vkreadback/vkreadback.cc b/garnet/lib/magma/tests/vkreadback/vkreadback.cc index ba38d79e9ed..aa57486951f 100644 --- a/garnet/lib/magma/tests/vkreadback/vkreadback.cc +++ b/garnet/lib/magma/tests/vkreadback/vkreadback.cc @@ -22,22 +22,25 @@ bool VkReadbackTest::Initialize() bool VkReadbackTest::InitVulkan() { - // Current loader seems to require this extension be provided, though it - // should be core in 1.1 - std::vector<const char*> instance_exts; - if (ext_ != NONE) { - instance_exts.emplace_back(VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME); - } + VkApplicationInfo app_info = { + .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, + .pNext = nullptr, + .pApplicationName = "vkreadback", + .applicationVersion = 0, + .pEngineName = nullptr, + .engineVersion = 0, + .apiVersion = VK_API_VERSION_1_1, + }; VkInstanceCreateInfo create_info{ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, // VkStructureType sType; nullptr, // const void* pNext; 0, // VkInstanceCreateFlags flags; - nullptr, // const VkApplicationInfo* pApplicationInfo; + &app_info, // const VkApplicationInfo* pApplicationInfo; 0, // uint32_t enabledLayerCount; nullptr, // const char* const* ppEnabledLayerNames; - static_cast<uint32_t>(instance_exts.size()), - instance_exts.data(), + 0, // instance extensions count + nullptr, // instance extensions, }; VkAllocationCallbacks* allocation_callbacks = nullptr; VkInstance instance; @@ -77,6 +80,12 @@ bool VkReadbackTest::InitVulkan() continue; } + if (VK_VERSION_MAJOR(properties.apiVersion) == 1 && + VK_VERSION_MINOR(properties.apiVersion) == 0) { + printf("Skipping 1.1 checks\n"); + continue; + } + // Test external buffer/image capabilities VkPhysicalDeviceExternalBufferInfo buffer_info = { .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, -- GitLab