vulkaninfo segfaults
I tried building this on an ancient laptop running a Geforce 820M with proprietary driver v390.157. Cloned with submodules, ran cmake ., cmake --build . and cmake --build . --target install. It succeeded.
In /binaries/amd64/Release/lib, I ran VK_DRIVER_FILES=./ashesGlRenderer_icd.json vulkaninfo --summary, resulting in the below output:
==========
VULKANINFO
==========
Vulkan Instance Version: 1.4.321
Instance Extensions: count = 9
------------------------------
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 2
VK_KHR_display : extension revision 23
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_portability_enumeration : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_LUNARG_direct_driver_loading : extension revision 1
Instance Layers: count = 9
--------------------------
VK_LAYER_INTEL_nullhw INTEL NULL HW 1.1.73 version 1
VK_LAYER_KHRONOS_validation Khronos Validation Layer 1.4.321 version 1
VK_LAYER_LUNARG_api_dump LunarG API dump layer 1.4.321 version 2
VK_LAYER_LUNARG_monitor Execution Monitoring Layer 1.4.321 version 1
VK_LAYER_LUNARG_screenshot LunarG image capture layer 1.4.321 version 1
VK_LAYER_MESA_device_select Linux device selection layer 1.4.303 version 1
VK_LAYER_MESA_overlay Mesa Overlay layer 1.4.303 version 1
VK_LAYER_MESA_screenshot Mesa Screenshot layer 1.4.303 version 1
VK_LAYER_MESA_vram_report_limit Limit reported VRAM 1.4.303 version 1
Devices:
========
GPU0:
apiVersion = 1.0.0
driverVersion = 0
vendorID = 0x10de
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = GeForce 820M/PCIe/SSE2 (gl)
Segmentation fault (core dumped) VK_DRIVER_FILES=./ashesGlRenderer_icd.json vulkaninfo --summary
coredumpctl printed the following out:
Process 9716 (vulkaninfo) of user 1000 dumped core.
Module libnvidia-eglcore.so.390.157 without build-id.
Module libnvidia-glsi.so.390.157 without build-id.
Module libEGL_nvidia.so.0 without build-id.
Module libnvidia-glcore.so.390.157 without build-id.
Module libnvidia-tls.so.390.157 without build-id.
Module libGLX_nvidia.so.0 without build-id.
Stack trace of thread 9716:
#0 0x00007f700fb7784a _ZN5ashes2gl7Context4lockEv (.../Ashes/binaries/amd64/Release/lib/libashesGlRenderer.so.1.0 + 0x17784a)
#1 0x00007f700fba118d _ZNK5ashes2gl6Device10getContextEv (.../Ashes/binaries/amd64/Release/lib/libashesGlRenderer.so.1.0 + 0x1a118d)
#2 0x00007f700fba19df _ZN5ashes2gl6DeviceD1Ev (.../Ashes/binaries/amd64/Release/lib/libashesGlRenderer.so.1.0 + 0x1a19df)
#3 0x00007f700fb27f35 _ZN5ashes2gl15vkDestroyDeviceEP10VkDevice_TPK21VkAllocationCallbacks (.../Ashes/binaries/amd64/Release/lib/libashesGlRenderer.so.1.0 + 0x127f35)
#4 0x00007f700febb00b n/a (libvulkan.so.1 + 0x3100b)
#5 0x00007f700fecc4d5 vkDestroyDevice (libvulkan.so.1 + 0x424d5)
#6 0x0000558f2be3380f n/a (/usr/bin/vulkaninfo + 0xc780f)
#7 0x0000558f2bd98b03 n/a (/usr/bin/vulkaninfo + 0x2cb03)
#8 0x00007f70100376b5 n/a (libc.so.6 + 0x276b5)
#9 0x00007f7010037769 __libc_start_main (libc.so.6 + 0x27769)
#10 0x0000558f2bd9ac35 n/a (/usr/bin/vulkaninfo + 0x2ec35)
ELF object binary architecture: AMD x86-64
I'm not very experienced with cmake and core dump analysis. Is this something went wrong due to configuration on my side? Can you suggest a direction to dig more?
Except from running this command through gdb and inspecting the values in the debugger, I have no clue there. It seems to crash on device destruction, while trying to reserve the context for the current thread (ashes::gl::Context::lock), in a GLX function call, which points to either glXMakeCurrent or eglMakeCurrent, which is rather weird...
Thanks for the swift response!
Running this command through gdb and inspecting the values in the debugger
I'll ask Google/some LLM how to do this and see what I can find. 👍