summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Koch <nioko1337@gmail.com>2016-10-12 13:55:46 +0200
committerDave Airlie <airlied@redhat.com>2016-10-13 09:11:13 +1000
commit35e2bfa6d912ad3ef57195b0e8f31f21eb64678e (patch)
tree802b2c7e4e32f0bdf1d8f60dff6f688e8e3b3e45
parente6a693c447213b578f562edad8f15ccc43056acd (diff)
downloadexternal_mesa3d-35e2bfa6d912ad3ef57195b0e8f31f21eb64678e.zip
external_mesa3d-35e2bfa6d912ad3ef57195b0e8f31f21eb64678e.tar.gz
external_mesa3d-35e2bfa6d912ad3ef57195b0e8f31f21eb64678e.tar.bz2
radv: Return correct result in EnumeratePhysicalDevices
If pPhysicalDevices is too small for all physical devices, the driver must return VK_INCOMPLETE. Since only a single physical device is supported, this is only the case when pPhysicalDeviceCount == 0 && pPhysicalDevices != NULL. Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/amd/vulkan/radv_device.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 6e06863..71b1481 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -295,6 +295,8 @@ VkResult radv_EnumeratePhysicalDevices(
} else if (*pPhysicalDeviceCount >= 1) {
pPhysicalDevices[0] = radv_physical_device_to_handle(&instance->physicalDevice);
*pPhysicalDeviceCount = 1;
+ } else if (*pPhysicalDeviceCount < instance->physicalDeviceCount) {
+ return VK_INCOMPLETE;
} else {
*pPhysicalDeviceCount = 0;
}