Non-X11 images
jwinarske opened this issue · 7 comments
I'm building Weston image without X11. Nano and NX.
CI jobs:
https://github.com/meta-flutter/meta-flutter/blob/jw/nvidia_nx/.github/workflows/dunfell-nvidia-jetson-nano-devkit.yml
https://github.com/meta-flutter/meta-flutter/blob/jw/nvidia_nx/.github/workflows/dunfell-nvidia-jetson-xavier-nx-devkit.yml
X11 appears to be tightly coupled with demo-image-weston, and the build is ignoring this:
echo 'DISTRO_FEATURES_remove = "x11"' >> ./conf/local.conf
If DISTRO_FEATURES doesn't have x11
, it shouldn't build anything with X11 dependency.
Same with vulkan recipes, they're all dependent on x11; where the actual repo supports backend of direct2display, xcb, x11, and Wayland.
Basically adding DISTRO_FEATURES_remove = "x11" should no longer include any x11 dependent recipes in the image.
What's the by-design approach for non-X11 images?
To get vulkaninfo and Sascha Willems samples running on Wayland I needed this change:
https://github.com/jwinarske/meta-vulkan/blob/dunfell-no-mesa/recipes-bsp/tegra-binaries/tegra-libraries_32.5.2.bbappend
root@jetson-xavier-nx-devkit:/usr/share# vulkaninfo --summary
nvdc: start nvdcEventThread
==========
VULKANINFO
==========
Vulkan Instance Version: 1.2.198
Instance Extensions: count = 14
-------------------------------
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
Instance Layers:
----------------
Devices:
========
GPU0:
apiVersion = 4202627 (1.2.131)
driverVersion = 134299776 (0x8014080)
vendorID = 0x10de
deviceID = 0xa5ba03d7
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = NVIDIA Tegra Xavier (nvgpu)
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 32.5.2
conformanceVersion = 1.2.1.0
nvdc: exit nvdcEventThread
root@jetson-nano-devkit:/etc/vulkan/icd.d# vulkaninfo --summary
nvdc: start nvdcEventThread
==========
VULKANINFO
==========
Vulkan Instance Version: 1.2.198
Instance Extensions: count = 14
-------------------------------
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
Instance Layers:
----------------
Devices:
========
GPU0:
apiVersion = 4202627 (1.2.131)
driverVersion = 134299776 (0x8014080)
vendorID = 0x10de
deviceID = 0x92ba03d7
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = NVIDIA Tegra X1 (nvgpu)
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 32.5.2
conformanceVersion = 1.2.1.0
nvdc: exit nvdcEventThread
References
https://github.com/jwinarske/meta-vulkan/tree/dunfell-no-mesa/recipes-graphics/vulkan
https://github.com/jwinarske/meta-vulkan/blob/dunfell-no-mesa/recipes-graphics/sascha-samples/sascha-samples_git.bb
Interesting, thanks. The nvidia_icd.json
file is copied out of the L4T package, so the GLX library is the one that NVIDIA specifies there as the provider. If directly specifying the other library works, great.
There are several dependencies on x11 in L4T, and they're not all easy to tease out. Since NV's targeting Ubuntu with their prebuilt binaries, x11 is always present.
@madisongh I understand. It would be good to have an active list of items that depend on X11. I would expect NVidia to eventually move away from X11; perhaps they have no plans. Ubuntu 20 Gnome window manager defaults to Wayland, and X11 is emulated (XWayland). Between the two you get higher framerates with Wayland.
Gentlemen, excuse me for an offtopic, I'm looking for solution to another problem, but relevant resources are extremely scarse, so trying every opportunity. Do you know how to get rid of nvdc
spamming these nvdc: start nvdcEventThread
and nvdc: exit nvdcEventThread
on Vulkan instance creation/destruction?
Also could that mean that Vulkan drivers are actually in a debug mode (and not production quality performance optimized)?
Hey @jwinarske
Any updates regarding this issue ? Otherwise, I will close it
I think we should close this issue and open new one if needed when trying with new L4T
release