anv/device: Properly handle apiVersion == 0
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 25 Feb 2016 16:52:35 +0000 (08:52 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 25 Feb 2016 16:52:37 +0000 (08:52 -0800)
From the Vulkan 1.0 spec section 3.2:

"If apiVersion is 0 the implementation must ignore it"

src/intel/vulkan/anv_device.c

index 7a5cb234ac5b0dddab6595557f62b264461f5be9..59930552f59b3729777b6be7e16d1b1f6343cdd7 100644 (file)
@@ -214,9 +214,14 @@ VkResult anv_CreateInstance(
 
    assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO);
 
-   uint32_t client_version = pCreateInfo->pApplicationInfo ?
-                             pCreateInfo->pApplicationInfo->apiVersion :
-                             VK_MAKE_VERSION(1, 0, 0);
+   uint32_t client_version;
+   if (pCreateInfo->pApplicationInfo &&
+       pCreateInfo->pApplicationInfo->apiVersion != 0) {
+      client_version = pCreateInfo->pApplicationInfo->apiVersion;
+   } else {
+      client_version = VK_MAKE_VERSION(1, 0, 0);
+   }
+
    if (VK_MAKE_VERSION(1, 0, 0) > client_version ||
        client_version > VK_MAKE_VERSION(1, 0, 3)) {
       return vk_errorf(VK_ERROR_INCOMPATIBLE_DRIVER,