Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NVIDIA Drivers required with nvidia-headless #34

Open
robballantyne opened this issue Mar 12, 2024 · 14 comments
Open

NVIDIA Drivers required with nvidia-headless #34

robballantyne opened this issue Mar 12, 2024 · 14 comments

Comments

@robballantyne
Copy link

Hello

I have created an image which would not have been possible without the work you have done here (and the gstreamer interface) - Amazing job.

I have discovered that EGL is only possible with /dev/dri exposed within the container unless the Nvidia drivers are installed in the same way as you do with the GLX variant.

I'm happy to submit a PR to add this on, but I'll be mostly giving your own code back to you. I wanted to check what you wanted first.

Rob

@ehfd
Copy link
Member

ehfd commented Mar 12, 2024

This is tricky and I must think about this... This image is specifically meant to specifically not install the drivers compared to GLX.

@dcommander Does EGLStreams with NVIDIA work with VirtualGL via EGL even without GBM (this is not about Wayland)? Because my previous experience is that I did not need /dev/dri when I used egl0 and such similar syntax.

@dcommander
Copy link

@dcommander Does EGLStreams with NVIDIA work with VirtualGL via EGL even without GBM (this is not about Wayland)? Because my previous experience is that I did not need /dev/dri when I used egl0 and such similar syntax.

VirtualGL doesn't technically use EGLStream. EGLStream is a specific mechanism for transferring rendered frames between APIs. VirtualGL uses EGL with the EGL_EXT_platform_device extension. That extension exposes all GPUs in the system as EGL devices, and VirtualGL can select a device either by its EGL device ID or by its DRI device path.

@dcommander
Copy link

(Also, VirtualGL does not explicitly require GBM. Open source GPU drivers may use GBM at a lower level, such as interfacing with DRI3, but nVidia's drivers do not.)

@ehfd
Copy link
Member

ehfd commented Mar 12, 2024

@robballantyne This means that I would need your eglinfo inside the container.

@ehfd
Copy link
Member

ehfd commented Mar 12, 2024

Thank you @dcommander

@ehfd
Copy link
Member

ehfd commented Mar 18, 2024

@robballantyne I would need your eglinfo output inside the container in order to proceed.

@ehfd
Copy link
Member

ehfd commented Mar 24, 2024

Example:

EGL client extensions string:
    EGL_EXT_platform_base EGL_EXT_device_base EGL_EXT_device_enumeration
    EGL_EXT_device_query EGL_KHR_client_get_all_proc_addresses
    EGL_EXT_client_extensions EGL_KHR_debug EGL_KHR_platform_x11
    EGL_EXT_platform_x11 EGL_EXT_platform_device
    EGL_MESA_platform_surfaceless EGL_EXT_explicit_device
    EGL_KHR_platform_wayland EGL_EXT_platform_wayland
    EGL_KHR_platform_gbm EGL_MESA_platform_gbm EGL_EXT_platform_xcb

GBM platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_client_sync
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export
    EGL_EXT_output_base EGL_EXT_output_drm EGL_EXT_protected_content
    EGL_EXT_stream_consumer_egloutput EGL_EXT_stream_acquire_mode
    EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs
    EGL_KHR_create_context_no_error EGL_KHR_context_flush_control
    EGL_KHR_create_context EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update
    EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context
    EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
    EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base
    EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib
    EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd
    EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface
    EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync
    EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
    EGL_NV_stream_cross_display EGL_NV_stream_cross_object
    EGL_NV_stream_cross_process EGL_NV_stream_cross_system
    EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
    EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
    EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
    EGL_NV_stream_sync EGL_NV_stream_fifo_next
    EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv
    EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time
    EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
    EGL_NV_robustness_video_memory_purge EGL_EXT_present_opaque
    EGL_WL_bind_wayland_display EGL_WL_wayland_eglstream
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
---------------------------------------------------------------------
0x01 32  0  8  8  8  8 24  8  0 0 0x34325241--         y  y  y     win,pb,str
0x02 32  0  8  8  8  8 24  0  0 0 0x34325241--         y  y  y     win,pb,str
0x03 32  0  8  8  8  8  0  8  0 0 0x34325241--         y  y  y     win,pb,str
0x04 32  0  8  8  8  8  0  0  0 0 0x34325241--         y  y  y     win,pb,str
0x05 32  0  8  8  8  8 24  8  2 1 0x34325241--         y  y  y     win,pb,str
0x06 32  0  8  8  8  8 24  0  2 1 0x34325241--         y  y  y     win,pb,str
0x07 32  0  8  8  8  8  0  8  2 1 0x34325241--         y  y  y     win,pb,str
0x08 32  0  8  8  8  8  0  0  2 1 0x34325241--         y  y  y     win,pb,str
0x09 32  0  8  8  8  8 24  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0a 32  0  8  8  8  8 24  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0b 32  0  8  8  8  8 24  0  4 1 0x34325241--         y  y  y     win,pb,str
0x0c 32  0  8  8  8  8 24  0  4 1 0x34325241--         y  y  y     win,pb,str
0x0d 32  0  8  8  8  8  0  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0e 32  0  8  8  8  8  0  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0f 32  0  8  8  8  8  0  0  4 1 0x34325241--         y  y  y     win,pb,str
0x10 32  0  8  8  8  8  0  0  4 1 0x34325241--         y  y  y     win,pb,str
0x11 32  0  8  8  8  8 24  8  8 1 0x34325241--         y  y  y     win,pb,str
0x12 32  0  8  8  8  8 24  0  8 1 0x34325241--         y  y  y     win,pb,str
0x13 32  0  8  8  8  8  0  8  8 1 0x34325241--         y  y  y     win,pb,str
0x14 32  0  8  8  8  8  0  0  8 1 0x34325241--         y  y  y     win,pb,str
0x15 24  0  8  8  8  0 24  8  0 0 0x34325258--         y  y  y     win,pb,str
0x16 24  0  8  8  8  0 24  0  0 0 0x34325258--         y  y  y     win,pb,str
0x17 24  0  8  8  8  0  0  8  0 0 0x34325258--         y  y  y     win,pb,str
0x18 24  0  8  8  8  0  0  0  0 0 0x34325258--         y  y  y     win,pb,str
0x19 24  0  8  8  8  0 24  8  2 1 0x34325258--         y  y  y     win,pb,str
0x1a 24  0  8  8  8  0 24  0  2 1 0x34325258--         y  y  y     win,pb,str
0x1b 24  0  8  8  8  0  0  8  2 1 0x34325258--         y  y  y     win,pb,str
0x1c 24  0  8  8  8  0  0  0  2 1 0x34325258--         y  y  y     win,pb,str
0x1d 24  0  8  8  8  0 24  8  4 1 0x34325258--         y  y  y     win,pb,str
0x1e 24  0  8  8  8  0 24  8  4 1 0x34325258--         y  y  y     win,pb,str
0x1f 24  0  8  8  8  0 24  0  4 1 0x34325258--         y  y  y     win,pb,str
0x20 24  0  8  8  8  0 24  0  4 1 0x34325258--         y  y  y     win,pb,str
0x21 24  0  8  8  8  0  0  8  4 1 0x34325258--         y  y  y     win,pb,str
0x22 24  0  8  8  8  0  0  8  4 1 0x34325258--         y  y  y     win,pb,str
0x23 24  0  8  8  8  0  0  0  4 1 0x34325258--         y  y  y     win,pb,str
0x24 24  0  8  8  8  0  0  0  4 1 0x34325258--         y  y  y     win,pb,str
0x25 24  0  8  8  8  0 24  8  8 1 0x34325258--         y  y  y     win,pb,str
0x26 24  0  8  8  8  0 24  0  8 1 0x34325258--         y  y  y     win,pb,str
0x27 24  0  8  8  8  0  0  8  8 1 0x34325258--         y  y  y     win,pb,str
0x28 24  0  8  8  8  0  0  0  8 1 0x34325258--         y  y  y     win,pb,str
0x29 16  0  5  6  5  0 24  8  0 0 0x36314752--         y  y  y     win,pb,str
0x2a 16  0  5  6  5  0 24  0  0 0 0x36314752--         y  y  y     win,pb,str
0x2b 16  0  5  6  5  0 16  0  0 0 0x36314752--         y  y  y     win,pb,str
0x2c 16  0  5  6  5  0  0  8  0 0 0x36314752--         y  y  y     win,pb,str
0x2d 16  0  5  6  5  0  0  0  0 0 0x36314752--         y  y  y     win,pb,str
0x2e 16  0  5  6  5  0 24  8  2 1 0x36314752--         y  y  y     win,pb,str
0x2f 16  0  5  6  5  0 24  0  2 1 0x36314752--         y  y  y     win,pb,str
0x30 16  0  5  6  5  0 16  0  2 1 0x36314752--         y  y  y     win,pb,str
0x31 16  0  5  6  5  0  0  8  2 1 0x36314752--         y  y  y     win,pb,str
0x32 16  0  5  6  5  0  0  0  2 1 0x36314752--         y  y  y     win,pb,str
0x33 16  0  5  6  5  0 24  8  4 1 0x36314752--         y  y  y     win,pb,str
0x34 16  0  5  6  5  0 24  8  4 1 0x36314752--         y  y  y     win,pb,str
0x35 16  0  5  6  5  0 24  0  4 1 0x36314752--         y  y  y     win,pb,str
0x36 16  0  5  6  5  0 24  0  4 1 0x36314752--         y  y  y     win,pb,str
0x37 16  0  5  6  5  0 16  0  4 1 0x36314752--         y  y  y     win,pb,str
0x38 16  0  5  6  5  0 16  0  4 1 0x36314752--         y  y  y     win,pb,str
0x39 16  0  5  6  5  0  0  8  4 1 0x36314752--         y  y  y     win,pb,str
0x3a 16  0  5  6  5  0  0  8  4 1 0x36314752--         y  y  y     win,pb,str
0x3b 16  0  5  6  5  0  0  0  4 1 0x36314752--         y  y  y     win,pb,str
0x3c 16  0  5  6  5  0  0  0  4 1 0x36314752--         y  y  y     win,pb,str
0x3d 16  0  5  6  5  0 24  8  8 1 0x36314752--         y  y  y     win,pb,str
0x3e 16  0  5  6  5  0 24  0  8 1 0x36314752--         y  y  y     win,pb,str
0x3f 16  0  5  6  5  0 16  0  8 1 0x36314752--         y  y  y     win,pb,str
0x40 16  0  5  6  5  0  0  8  8 1 0x36314752--         y  y  y     win,pb,str
0x41 16  0  5  6  5  0  0  0  8 1 0x36314752--         y  y  y     win,pb,str

Wayland platform:
eglinfo: eglInitialize failed

X11 platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_client_sync
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export
    EGL_EXT_output_base EGL_EXT_stream_acquire_mode EGL_EXT_sync_reuse
    EGL_IMG_context_priority EGL_KHR_config_attribs
    EGL_KHR_create_context_no_error EGL_KHR_context_flush_control
    EGL_KHR_create_context EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update
    EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context
    EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
    EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base
    EGL_KHR_image_pixmap EGL_KHR_reusable_sync EGL_KHR_stream
    EGL_KHR_stream_attrib EGL_KHR_stream_consumer_gltexture
    EGL_KHR_stream_cross_process_fd EGL_KHR_stream_fifo
    EGL_KHR_stream_producer_eglsurface EGL_KHR_surfaceless_context
    EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync EGL_NV_post_sub_buffer
    EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
    EGL_NV_stream_cross_display EGL_NV_stream_cross_object
    EGL_NV_stream_cross_process EGL_NV_stream_cross_system
    EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
    EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
    EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
    EGL_NV_stream_sync EGL_NV_stream_fifo_next
    EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv
    EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time
    EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
    EGL_NV_robustness_video_memory_purge EGL_EXT_present_opaque
    EGL_WL_bind_wayland_display EGL_WL_wayland_eglstream
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
---------------------------------------------------------------------
0x01 32  0  8  8  8  8 24  8  0 0 0x24--         y  y  y     win,pb,pix,str
0x02 32  0  8  8  8  8 24  8  0 0 0x7a--         y  y  y     win,pb,pix,str
0x03 32  0  8  8  8  8 24  8  0 0 0x4f--         y  y  y     win,pb,pix,str
0x04 32  0  8  8  8  8 24  0  0 0 0x28--         y  y  y     win,pb,pix,str
0x05 32  0  8  8  8  8 24  0  0 0 0x7e--         y  y  y     win,pb,pix,str
0x06 32  0  8  8  8  8 24  0  0 0 0x53--         y  y  y     win,pb,pix,str
0x07 32  0  8  8  8  8  0  0  0 0 0x2c--         y  y  y     win,pb,pix,str
0x08 32  0  8  8  8  8  0  0  0 0 0x82--         y  y  y     win,pb,pix,str
0x09 32  0  8  8  8  8  0  0  0 0 0x57--         y  y  y     win,pb,pix,str
0x0a 32  0  8  8  8  8 24  8  2 1 0x38--         y  y  y     win,pb,str
0x0b 32  0  8  8  8  8 24  8  2 1 0x8e--         y  y  y     win,pb,str
0x0c 32  0  8  8  8  8 24  8  2 1 0x63--         y  y  y     win,pb,str
0x0d 32  0  8  8  8  8 24  0  2 1 0x30--         y  y  y     win,pb,str
0x0e 32  0  8  8  8  8 24  0  2 1 0x86--         y  y  y     win,pb,str
0x0f 32  0  8  8  8  8 24  0  2 1 0x5b--         y  y  y     win,pb,str
0x10 32  0  8  8  8  8 24  8  4 1 0x3a--         y  y  y     win,pb,str
0x11 32  0  8  8  8  8 24  8  4 1 0x90--         y  y  y     win,pb,str
0x12 32  0  8  8  8  8 24  8  4 1 0x65--         y  y  y     win,pb,str
0x13 32  0  8  8  8  8 24  0  4 1 0x32--         y  y  y     win,pb,str
0x14 32  0  8  8  8  8 24  0  4 1 0x88--         y  y  y     win,pb,str
0x15 32  0  8  8  8  8 24  0  4 1 0x5d--         y  y  y     win,pb,str
0x16 32  0  8  8  8  8 24  8  8 1 0x44--         y  y  y     win,pb,str
0x17 32  0  8  8  8  8 24  8  8 1 0x9a--         y  y  y     win,pb,str
0x18 32  0  8  8  8  8 24  8  8 1 0x6f--         y  y  y     win,pb,str
0x19 32  0  8  8  8  8 24  0  8 1 0x40--         y  y  y     win,pb,str
0x1a 32  0  8  8  8  8 24  0  8 1 0x96--         y  y  y     win,pb,str
0x1b 32  0  8  8  8  8 24  0  8 1 0x6b--         y  y  y     win,pb,str
0x1c 32  0  8  8  8  8 24  8 16 1 0x4c--         y  y  y     win,pb,str
0x1d 32  0  8  8  8  8 24  8 16 1 0xa2--         y  y  y     win,pb,str
0x1e 32  0  8  8  8  8 24  8 16 1 0x77--         y  y  y     win,pb,str
0x1f 32  0  8  8  8  8 24  0 16 1 0x48--         y  y  y     win,pb,str
0x20 32  0  8  8  8  8 24  0 16 1 0x9e--         y  y  y     win,pb,str
0x21 32  0  8  8  8  8 24  0 16 1 0x73--         y  y  y     win,pb,str
0x22 24  0  8  8  8  0 24  8  0 0 0x21--         y  y  y     win,pb,pix,str
0x23 24  0  8  8  8  0 24  8  0 0 0x23--         y  y  y     win,pb,pix,str
0x24 24  0  8  8  8  0 24  8  0 0 0x22--         y  y  y     win,pb,pix,str
0x25 24  0  8  8  8  0 24  0  0 0 0x27--         y  y  y     win,pb,pix,str
0x26 24  0  8  8  8  0 24  0  0 0 0x7d--         y  y  y     win,pb,pix,str
0x27 24  0  8  8  8  0 24  0  0 0 0x52--         y  y  y     win,pb,pix,str
0x28 24  0  8  8  8  0  0  0  0 0 0x2b--         y  y  y     win,pb,pix,str
0x29 24  0  8  8  8  0  0  0  0 0 0x81--         y  y  y     win,pb,pix,str
0x2a 24  0  8  8  8  0  0  0  0 0 0x56--         y  y  y     win,pb,pix,str
0x2b 24  0  8  8  8  0 24  8  2 1 0x37--         y  y  y     win,pb,str
0x2c 24  0  8  8  8  0 24  8  2 1 0x8d--         y  y  y     win,pb,str
0x2d 24  0  8  8  8  0 24  8  2 1 0x62--         y  y  y     win,pb,str
0x2e 24  0  8  8  8  0 24  0  2 1 0x2f--         y  y  y     win,pb,str
0x2f 24  0  8  8  8  0 24  0  2 1 0x85--         y  y  y     win,pb,str
0x30 24  0  8  8  8  0 24  0  2 1 0x5a--         y  y  y     win,pb,str
0x31 24  0  8  8  8  0 24  8  4 1 0x39--         y  y  y     win,pb,str
0x32 24  0  8  8  8  0 24  8  4 1 0x8f--         y  y  y     win,pb,str
0x33 24  0  8  8  8  0 24  8  4 1 0x64--         y  y  y     win,pb,str
0x34 24  0  8  8  8  0 24  0  4 1 0x31--         y  y  y     win,pb,str
0x35 24  0  8  8  8  0 24  0  4 1 0x87--         y  y  y     win,pb,str
0x36 24  0  8  8  8  0 24  0  4 1 0x5c--         y  y  y     win,pb,str
0x37 24  0  8  8  8  0 24  8  8 1 0x43--         y  y  y     win,pb,str
0x38 24  0  8  8  8  0 24  8  8 1 0x99--         y  y  y     win,pb,str
0x39 24  0  8  8  8  0 24  8  8 1 0x6e--         y  y  y     win,pb,str
0x3a 24  0  8  8  8  0 24  0  8 1 0x3f--         y  y  y     win,pb,str
0x3b 24  0  8  8  8  0 24  0  8 1 0x95--         y  y  y     win,pb,str
0x3c 24  0  8  8  8  0 24  0  8 1 0x6a--         y  y  y     win,pb,str
0x3d 24  0  8  8  8  0 24  8 16 1 0x4b--         y  y  y     win,pb,str
0x3e 24  0  8  8  8  0 24  8 16 1 0xa1--         y  y  y     win,pb,str
0x3f 24  0  8  8  8  0 24  8 16 1 0x76--         y  y  y     win,pb,str
0x40 24  0  8  8  8  0 24  0 16 1 0x47--         y  y  y     win,pb,str
0x41 24  0  8  8  8  0 24  0 16 1 0x9d--         y  y  y     win,pb,str
0x42 24  0  8  8  8  0 24  0 16 1 0x72--         y  y  y     win,pb,str
0x43 16  0  5  6  5  0 24  8  0 0 0x00--         y  y  y     pb,str
0x44 16  0  5  6  5  0 24  0  0 0 0x00--         y  y  y     pb,str
0x45 16  0  5  6  5  0 16  0  0 0 0x00--         y  y  y     pb,str
0x46 16  0  5  6  5  0  0  0  0 0 0x00--         y  y  y     pb,str

Device platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_client_sync
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export
    EGL_EXT_output_base EGL_EXT_output_drm EGL_EXT_protected_content
    EGL_EXT_stream_consumer_egloutput EGL_EXT_stream_acquire_mode
    EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs
    EGL_KHR_create_context_no_error EGL_KHR_context_flush_control
    EGL_KHR_create_context EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update
    EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context
    EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
    EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base
    EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib
    EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd
    EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface
    EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync
    EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
    EGL_NV_stream_cross_display EGL_NV_stream_cross_object
    EGL_NV_stream_cross_process EGL_NV_stream_cross_system
    EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
    EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
    EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
    EGL_NV_stream_sync EGL_NV_stream_fifo_next
    EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv
    EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time
    EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
    EGL_NV_robustness_video_memory_purge EGL_EXT_present_opaque
    EGL_WL_bind_wayland_display EGL_WL_wayland_eglstream
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
---------------------------------------------------------------------
0x01 32  0  8  8  8  8 24  8  0 0 0x00--         y  y  y     pb,str
0x02 32  0  8  8  8  8 24  0  0 0 0x00--         y  y  y     pb,str
0x03 32  0  8  8  8  8  0  8  0 0 0x00--         y  y  y     pb,str
0x04 32  0  8  8  8  8  0  0  0 0 0x00--         y  y  y     pb,str
0x05 32  0  8  8  8  8 24  8  2 1 0x00--         y  y  y     pb,str
0x06 32  0  8  8  8  8 24  0  2 1 0x00--         y  y  y     pb,str
0x07 32  0  8  8  8  8  0  8  2 1 0x00--         y  y  y     pb,str
0x08 32  0  8  8  8  8  0  0  2 1 0x00--         y  y  y     pb,str
0x09 32  0  8  8  8  8 24  8  4 1 0x00--         y  y  y     pb,str
0x0a 32  0  8  8  8  8 24  8  4 1 0x00--         y  y  y     pb,str
0x0b 32  0  8  8  8  8 24  0  4 1 0x00--         y  y  y     pb,str
0x0c 32  0  8  8  8  8 24  0  4 1 0x00--         y  y  y     pb,str
0x0d 32  0  8  8  8  8  0  8  4 1 0x00--         y  y  y     pb,str
0x0e 32  0  8  8  8  8  0  8  4 1 0x00--         y  y  y     pb,str
0x0f 32  0  8  8  8  8  0  0  4 1 0x00--         y  y  y     pb,str
0x10 32  0  8  8  8  8  0  0  4 1 0x00--         y  y  y     pb,str
0x11 32  0  8  8  8  8 24  8  8 1 0x00--         y  y  y     pb,str
0x12 32  0  8  8  8  8 24  0  8 1 0x00--         y  y  y     pb,str
0x13 32  0  8  8  8  8  0  8  8 1 0x00--         y  y  y     pb,str
0x14 32  0  8  8  8  8  0  0  8 1 0x00--         y  y  y     pb,str
0x15 24  0  8  8  8  0 24  8  0 0 0x00--         y  y  y     pb,str
0x16 24  0  8  8  8  0 24  0  0 0 0x00--         y  y  y     pb,str
0x17 24  0  8  8  8  0  0  8  0 0 0x00--         y  y  y     pb,str
0x18 24  0  8  8  8  0  0  0  0 0 0x00--         y  y  y     pb,str
0x19 24  0  8  8  8  0 24  8  2 1 0x00--         y  y  y     pb,str
0x1a 24  0  8  8  8  0 24  0  2 1 0x00--         y  y  y     pb,str
0x1b 24  0  8  8  8  0  0  8  2 1 0x00--         y  y  y     pb,str
0x1c 24  0  8  8  8  0  0  0  2 1 0x00--         y  y  y     pb,str
0x1d 24  0  8  8  8  0 24  8  4 1 0x00--         y  y  y     pb,str
0x1e 24  0  8  8  8  0 24  8  4 1 0x00--         y  y  y     pb,str
0x1f 24  0  8  8  8  0 24  0  4 1 0x00--         y  y  y     pb,str
0x20 24  0  8  8  8  0 24  0  4 1 0x00--         y  y  y     pb,str
0x21 24  0  8  8  8  0  0  8  4 1 0x00--         y  y  y     pb,str
0x22 24  0  8  8  8  0  0  8  4 1 0x00--         y  y  y     pb,str
0x23 24  0  8  8  8  0  0  0  4 1 0x00--         y  y  y     pb,str
0x24 24  0  8  8  8  0  0  0  4 1 0x00--         y  y  y     pb,str
0x25 24  0  8  8  8  0 24  8  8 1 0x00--         y  y  y     pb,str
0x26 24  0  8  8  8  0 24  0  8 1 0x00--         y  y  y     pb,str
0x27 24  0  8  8  8  0  0  8  8 1 0x00--         y  y  y     pb,str
0x28 24  0  8  8  8  0  0  0  8 1 0x00--         y  y  y     pb,str
0x29 16  0  5  6  5  0 24  8  0 0 0x00--         y  y  y     pb,str
0x2a 16  0  5  6  5  0 24  0  0 0 0x00--         y  y  y     pb,str
0x2b 16  0  5  6  5  0 16  0  0 0 0x00--         y  y  y     pb,str
0x2c 16  0  5  6  5  0  0  8  0 0 0x00--         y  y  y     pb,str
0x2d 16  0  5  6  5  0  0  0  0 0 0x00--         y  y  y     pb,str
0x2e 16  0  5  6  5  0 24  8  2 1 0x00--         y  y  y     pb,str
0x2f 16  0  5  6  5  0 24  0  2 1 0x00--         y  y  y     pb,str
0x30 16  0  5  6  5  0 16  0  2 1 0x00--         y  y  y     pb,str
0x31 16  0  5  6  5  0  0  8  2 1 0x00--         y  y  y     pb,str
0x32 16  0  5  6  5  0  0  0  2 1 0x00--         y  y  y     pb,str
0x33 16  0  5  6  5  0 24  8  4 1 0x00--         y  y  y     pb,str
0x34 16  0  5  6  5  0 24  8  4 1 0x00--         y  y  y     pb,str
0x35 16  0  5  6  5  0 24  0  4 1 0x00--         y  y  y     pb,str
0x36 16  0  5  6  5  0 24  0  4 1 0x00--         y  y  y     pb,str
0x37 16  0  5  6  5  0 16  0  4 1 0x00--         y  y  y     pb,str
0x38 16  0  5  6  5  0 16  0  4 1 0x00--         y  y  y     pb,str
0x39 16  0  5  6  5  0  0  8  4 1 0x00--         y  y  y     pb,str
0x3a 16  0  5  6  5  0  0  8  4 1 0x00--         y  y  y     pb,str
0x3b 16  0  5  6  5  0  0  0  4 1 0x00--         y  y  y     pb,str
0x3c 16  0  5  6  5  0  0  0  4 1 0x00--         y  y  y     pb,str
0x3d 16  0  5  6  5  0 24  8  8 1 0x00--         y  y  y     pb,str
0x3e 16  0  5  6  5  0 24  0  8 1 0x00--         y  y  y     pb,str
0x3f 16  0  5  6  5  0 16  0  8 1 0x00--         y  y  y     pb,str
0x40 16  0  5  6  5  0  0  8  8 1 0x00--         y  y  y     pb,str
0x41 16  0  5  6  5  0  0  0  8 1 0x00--         y  y  y     pb,str

@ehfd
Copy link
Member

ehfd commented Mar 24, 2024

And fundamentally, do you have the NVIDIA container toolkit set up?
@robballantyne

@robballantyne
Copy link
Author

@ehfd sorry I'm slow on this. I'm away currently but I'll get you the info you need ASAP

@ehfd
Copy link
Member

ehfd commented Mar 25, 2024

I think checking NVIDIA_DRIVER_CAPABILITIES includes graphics and display or is all is the first thing to do.
Then we can see the /opt/VirtualGL/bin/eglinfo -e and /opt/VirtualGL/bin/eglinfo egl outputs.

This isn't urgent, so take your time.

@robballantyne
Copy link
Author

It appears that I was doing something wrong on previous testing because EGL is fine on your image without dri or drivers. It's also fine on mine without drivers - I have no way to replicate what I did. Sorry for the waste of time.

I have included the outputs you asked for anyway because there is a small diff when running with drivers. I don't know if it's important.

All tests run on 3090 without /dev/dri present

Files marked selkies- are from your latest image

Files marked aidock- are from my adaptation

egl-outputs.tar.gz

@ehfd
Copy link
Member

ehfd commented Mar 31, 2024

This is still a meaningful issue, because nodes with nvidia-headless will not have EGL libraries and will error out.
Let me think of ways.

@ehfd
Copy link
Member

ehfd commented Apr 15, 2024

I think checking based on libEGL_nvidia.so.0 on whether the userspace driver should be installed or not would be a good choice.

@ehfd
Copy link
Member

ehfd commented Apr 20, 2024

I confirm that the existence of libEGL_nvidia.so.0 and libGLX_nvidia.so.0 is important for Vulkan and OpenGL capabilities, and nvidia-headless does not provide these libraries.

@ehfd ehfd changed the title NVIDIA Drivers required without /dev/dri NVIDIA Drivers required with nvidia-headless Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants