[Mesa-dev] [PATCH 2/3] anv: Use vk_outarray in vkEnumeratePhysicalDevices

Jason Ekstrand jason at jlekstrand.net
Mon Mar 13 21:34:04 UTC 2017


On Mon, Mar 13, 2017 at 2:32 PM, Jason Ekstrand <jason at jlekstrand.net>
wrote:

> On Mon, Mar 13, 2017 at 2:23 PM, Chad Versace <chadversary at chromium.org>
> wrote:
>
>> No intended change in behavior. Just a refactor.
>> ---
>>  src/intel/vulkan/anv_device.c | 32 ++++++--------------------------
>>  1 file changed, 6 insertions(+), 26 deletions(-)
>>
>> diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.
>> c
>> index f04e177771e..35c5a4645ff 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,34 +412,13 @@ 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);
>>     }
>>
>> +   if (vk_outarray_is_incomple(&out))
>> +      return VK_INCOMPLETE;
>>
>
> I still think I'd prefer a vk_outarray_status() helper and this would be
> "return vk_outarray_status(&out)".  But meh...
>

With or without that suggestion,

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170313/4e9fbc71/attachment.html>


More information about the mesa-dev mailing list