> Могу дебажную версию под gdb. Символы стоят базовые. К нвидии мне взять
> их негде (dual graphics laptop, prime. и weston и игра запускаются
> по умолчанию на интеле): Это Вы запускаете на Интеле, а игра нашла подходящий Интел, но дальше пробует следующий граф.процессор (в Вулкане нет умолчаний, всё лежит на плечах клиента, т.е. косяк мой - можно было на первом подходящем запускать).
>[оверквотинг удален]
> Вывод изображения: да.
> Интегрированный процессор Vulkan 1.2.131 Intel(R) UHD Graphics 630 (CFL GT2) [8086:3e9b]
> v5001008.
> Сопроцессор №2 поддерживает семейств очередей: 3.
> Графические операции: да.
> Thread 1 "foxhunt_dbg" received signal SIGSEGV, Segmentation fault.
> 0x00007ffff1360353 in ?? () from /lib64/libnvidia-glcore.so.450.66
> Проблем в системе ни с nvidia, ни с vulkan, ни с weston
> нет! Собрал vkcube с вейленд-бэкнедом, запускаю - отлично работает, крутится из
> под weston нативно. Так что баг в foxhunt...
Драйвера nvidia закрытые? Они, если правильно помню, не поддерживали Wayland.
Насколько я в час ночи понял, подает на вызове
r = vkGetPhysicalDeviceSurfaceSupportKHR(devs[d], i, vk->surface, &presentation);
который на предыдущей итерации цикла работал (как раз проверка, поддерживает ли устройство вывод изображения, в данном случае в итоге на порверхность Wayland).
Вот так должно запуститься на первом подходящем граф.процессоре, т.е. в Вашем случае на Интел.
diff --git a/src/vulkan.c b/src/vulkan.c
index 1f4bea3..c2b5e66 100644
--- a/src/vulkan.c
+++ b/src/vulkan.c
@@ -239,6 +239,7 @@ static VkResult select_gpu(struct vk_context *vk)
if (gfx_q != inv && presentation != inv) {
vk->gpu = devs[d];
print_gpu_properties(vk->gpu);
+ d = num_dev; // если я совсем сплю, то тут поможет return r;
break;
}
}