The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Игра Охота на лис, созданная для микрокалькуляторов МК-61, а..."
Отправлено n00by, 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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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