Vulkan:在 VNC 服务器上未检测到 DRI3 支持(Debian)

Vulkan:在 VNC 服务器上未检测到 DRI3 支持(Debian)

我在最新版本的 Debian Bookworm 64 位上使用 Raspberry Pi 4,需要在 VNC 会话中使用 Vulkan。连接到屏幕时,它可以工作:vkcube打开一个带有 3D 旋转立方体的窗口。但是,在 VNC 会话中使用相同命令时,它会失败:vkcube返回“vulkan:未检测到 DRI3 支持...”。VNC 会话通过以下方式启动TightVNC

我检查了这两种情况下的输出vulkaninfo ,唯一的区别是,当连接到屏幕时,两个 GPU 会出现在美观的表面部分,而不是在 VNC 会话中使用该命令时的一个部分。附加 gpu 定义如下:

GPU id : 0 (V3D 4.2.14):
    Surface types: count = 2
        VK_KHR_xcb_surface
        VK_KHR_xlib_surface
    Formats: count = 2
        SurfaceFormat[0]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[1]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    Present Modes: count = 4
        PRESENT_MODE_IMMEDIATE_KHR
        PRESENT_MODE_MAILBOX_KHR
        PRESENT_MODE_FIFO_KHR
        PRESENT_MODE_FIFO_RELAXED_KHR
    VkSurfaceCapabilitiesKHR:
    -------------------------
        minImageCount = 3
        maxImageCount = 0
        currentExtent:
            width  = 256
            height = 256
        minImageExtent:
            width  = 256
            height = 256
        maxImageExtent:
            width  = 256
            height = 256
        maxImageArrayLayers = 1
        supportedTransforms: count = 1
            SURFACE_TRANSFORM_IDENTITY_BIT_KHR
        currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
        supportedCompositeAlpha: count = 2
            COMPOSITE_ALPHA_OPAQUE_BIT_KHR
            COMPOSITE_ALPHA_INHERIT_BIT_KHR
        supportedUsageFlags: count = 6
            IMAGE_USAGE_TRANSFER_SRC_BIT
            IMAGE_USAGE_TRANSFER_DST_BIT
            IMAGE_USAGE_STORAGE_BIT
            IMAGE_USAGE_COLOR_ATTACHMENT_BIT
            IMAGE_USAGE_INPUT_ATTACHMENT_BIT
            IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
    VkSurfaceCapabilities2EXT:
    --------------------------
        supportedSurfaceCounters:
            None
    VkSurfacePresentModeCompatibilityEXT:
    -------------------------------------
        presentModeCount = 1
        pPresentModes: count = 1

    VkSurfacePresentScalingCapabilitiesEXT:
    ---------------------------------------
        supportedPresentScaling:
            None
        supportedPresentGravityX:
            None
        supportedPresentGravityY:
            None
        minScaledImageExtent:
            width  = 256
            height = 256
        maxScaledImageExtent:
            width  = 256
            height = 256

    VkSurfaceProtectedCapabilitiesKHR:
    ----------------------------------
        supportsProtected = false

我想我必须在打开 VNC 服务器时指向这个额外的 GPU,但没有找到如何做到这一点。

当前,VNC 服务器已启动systemctl并具有以下 .service 文件:

[Unit]
Description=Open a virtual session on boot with user "capteur"
After=multi-user.target

[Service]

Type=forking
User=capteur
ExecStartPre=sleep 20
ExecStart=vncserver

[Install]
WantedBy=multi-user.target

xstartup 脚本是默认脚本:

#!/bin/sh

xrdb "$HOME/.Xresources"
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

最后,我看到了这个帖子问题可能来自于/etc/X11/xorg.conf.d,但我自己找不到修复它的方法。所以这是我的/etc/X11/xorg.conf.d目录(同样是默认目录):

Section "OutputClass"
  Identifier "vc4"
  MatchDriver "vc4"
  Driver "modesetting"
  Option "PrimaryGPU" "true"
EndSection

我还注意到两个文件vnc服务器-虚拟-vnc.confvncserver-虚拟-虚拟主机.conf坐在/etc/X11/所以也许它们也应该被编辑。

有没有办法在 VNC 会话中启用 DRI3?如果可以,我遗漏了什么?

我希望有人能帮助我,再见!

注意:由于我不知道这更像是 Raspberry Pi 问题还是 Linux 问题,所以我在 forum.Raspberrypi 上发了完全相同的帖子。如果问题在那里得到解决,我会更新此帖子,反之亦然

答案1

似乎只有在使用最新版本的 Debian Bookworm(2024_03_13 及更高版本)时才会遇到此问题。恢复到 2023_12_05 版本即可解决此问题。可以找到那里

相关内容