The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Игра 'Охота на лис', созданная для микрокалькуляторов МК-61, адаптирована для Linux"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Игра Охота на лис, созданная для микрокалькуляторов МК-61, а..." +/
Сообщение от n00by (ok), 30-Сен-20, 13:24 
>> Скорее, превильнее смотреть, поддерживает ли конкретный GPU требуемый тип поверхности
>> (Surface type = VK_KHR_wayland_surface). Заодно, поддерживается ли презентация:
>> vulkaninfo | egrep -C3 'queue|resent|wayland_surface'
> Я и для интела не вижу такой поверхности, если запускать из под
> X11. Если из под wayland.. то vulkaninfo падает ))

"Ничто так не утешает, как несчастье ближнего" (с) Особенно, если падает в той же /lib64/libnvidia-glcore.so.450.66

У vulkaninfo https://github.com/KhronosGroup/Vulkan-Tools/issues/136#issu... был похожий баг на Intel HD Graphics 630 + GeForce GTX 1050 Ti. Падала так же vkGetPhysicalDeviceSurfaceSupportKHR() из-за невалидного параматра surface (Xlib surface вместо XCB). Но - в X11 и в случае Intel.

>> Полагаю, быстрее я добавлю поддержку XCB, она решит и запуск у остальных
>> под Иксами, и позволит локализовать данный крах, проверив гипотезу.
> Под иксами с vulkan + nvidia ничего падать не будет, я полагаю.
> Но спасибо за желание разобраться!

Падает примерно на таком коде (это фрагмент Mesa, )

VkResult
wsi_common_get_surface_support(struct wsi_device *wsi_device,
                               uint32_t queueFamilyIndex,
                               VkSurfaceKHR _surface,
                               VkBool32* pSupported)
{
   ICD_FROM_HANDLE(VkIcdSurfaceBase, surface, _surface); // VkIcdSurfaceBase *surface = (VkIcdSurfaceBase*)_surface;
   struct wsi_interface *iface = wsi_device->wsi[surface->platform];

   return iface->get_support(surface, wsi_device,
                             queueFamilyIndex, pSupported);
}

_surface имеет смысл только в контексте struct wsi_device, о которой Nvidia ничего не знает. В лучшем случае реализация может проверить хендл, поискав в таблице. Но спецификация Vulkan требует валидный параметр, значит проверка не обязательна, поэтому её и нет (она вынесена в прослойку валидатора).

>[оверквотинг удален]
>> Возможно, валидатор что-то покажет (в Gentoo это пакет vulkan-layers, в остальных должно
>> быть что-то похожее). fuxhunt_dbg подхватывет прослойку, если она установлена в сиcтеме.
> Поставил. Подхватило. Но ничего лучше не вывело, просто еще функция в трейсе.
> Дебагинфо к вулкану и валидаторам стоит, но..
> #0  0x00007fffdf55e353 in ?? () from /lib64/libnvidia-glcore.so.450.66
> No symbol table info available.
> #1  0x00007fffdf55eea6 in ?? () from /lib64/libnvidia-glcore.so.450.66
> No symbol table info available.
> #2  0x00007fffdda95b30 in vulkan_layer_chassis::GetPhysicalDeviceSurfaceSupportKHR
> () at layers/generated/chassis.cpp:4890

Если передаю невалидный хендл вместо surface, начинает падать, но при этом валидатор предупреждает: Invalid VkSurfaceKHR Object 0x56190d13ac00. The Vulkan spec states: surface must be a valid VkSurfaceKHR handle

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Игра 'Охота на лис', созданная для микрокалькуляторов МК-61, адаптирована для Linux, opennews, 25-Сен-20, 10:29  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру