diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 6c53c16da2e..759ab0922e3 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1717,7 +1717,8 @@ choose_pdev(struct zink_screen *screen, int64_t dev_major, int64_t dev_minor) return; } - assert(pdev_count > 0); + if (!pdev_count) + return; pdevs = malloc(sizeof(*pdevs) * pdev_count); if (!pdevs) { @@ -1753,6 +1754,8 @@ choose_pdev(struct zink_screen *screen, int64_t dev_major, int64_t dev_minor) mesa_loge("ZINK: vkEnumeratePhysicalDevices failed (%s)", vk_Result_to_str(result)); return; } + if (!pdev_count) + return; screen->pdev = pdev; } VKSCR(GetPhysicalDeviceProperties)(screen->pdev, &screen->info.props);