diff options
author | Chad Versace <[email protected]> | 2017-03-05 13:07:13 -0800 |
---|---|---|
committer | Chad Versace <[email protected]> | 2017-03-13 15:08:15 -0700 |
commit | 876f0ecd2f6c49c62d9b346f6c16ec115ae472c9 (patch) | |
tree | 5256b41a42d1e18afe8092bdf1d7a9cf1d329d83 /src/intel | |
parent | 62160536a0792c8577ffe52409f301cf93376a9d (diff) |
anv: Use vk_outarray in vkEnumeratePhysicalDevices (v2)
No intended change in behavior. Just a refactor.
v2: Replace vk_outarray_is_incomplete() with vk_outarray_status(). For
Jason.
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index f04e177771e..1bb835009cc 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -390,6 +390,7 @@ VkResult anv_EnumeratePhysicalDevices( VkPhysicalDevice* pPhysicalDevices) { ANV_FROM_HANDLE(anv_instance, instance, _instance); + VK_OUTARRAY_MAKE(out, pPhysicalDevices, pPhysicalDeviceCount); VkResult result; if (instance->physicalDeviceCount < 0) { @@ -411,35 +412,11 @@ VkResult anv_EnumeratePhysicalDevices( } } - /* pPhysicalDeviceCount is an out parameter if pPhysicalDevices is NULL; - * otherwise it's an inout parameter. - * - * The Vulkan spec (git aaed022) says: - * - * pPhysicalDeviceCount is a pointer to an unsigned integer variable - * that is initialized with the number of devices the application is - * prepared to receive handles to. pname:pPhysicalDevices is pointer to - * an array of at least this many VkPhysicalDevice handles [...]. - * - * Upon success, if pPhysicalDevices is NULL, vkEnumeratePhysicalDevices - * overwrites the contents of the variable pointed to by - * pPhysicalDeviceCount with the number of physical devices in in the - * instance; otherwise, vkEnumeratePhysicalDevices overwrites - * pPhysicalDeviceCount with the number of physical handles written to - * pPhysicalDevices. - */ - if (!pPhysicalDevices) { - *pPhysicalDeviceCount = instance->physicalDeviceCount; - } else if (*pPhysicalDeviceCount >= 1) { - pPhysicalDevices[0] = anv_physical_device_to_handle(&instance->physicalDevice); - *pPhysicalDeviceCount = 1; - } else if (*pPhysicalDeviceCount < instance->physicalDeviceCount) { - return VK_INCOMPLETE; - } else { - *pPhysicalDeviceCount = 0; + vk_outarray_append(&out, i) { + *i = anv_physical_device_to_handle(&instance->physicalDevice); } - return VK_SUCCESS; + return vk_outarray_status(&out); } void anv_GetPhysicalDeviceFeatures( |