You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4 Debian Bookworm 64位系统VNC会话中Vulkan提示无DRI3支持的解决方法求助

树莓派4 Debian Bookworm 64位系统VNC会话中Vulkan提示无DRI3支持的解决方法求助

我现在用的是树莓派4,装的是最新版Debian Bookworm 64位系统,需要在VNC会话里使用Vulkan。当直接接屏幕的时候一切正常:运行vkcube会弹出一个带3D旋转立方体的窗口。但在VNC会话里运行同样的命令就失败了,vkcube会返回"vulkan: no DRI3 support detected..."。我的VNC会话是用TightVNC启动的。

我对比了两种情况下vulkaninfo的输出,唯一的区别是接屏幕时,在Presentable Surfaces部分会显示两个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有关,但自己没找到解决办法。我这个目录里只有一个默认文件,内容是:

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

我还注意到/etc/X11/目录下有两个文件vncserver-virtual-vnc.conf和vncserver-virtual-dummy.conf,也许需要修改这两个文件?

有没有办法在VNC会话里启用DRI3?我到底漏掉了什么步骤?

希望有人能帮我解决这个问题,谢谢!

注:因为不确定这是树莓派专属问题还是通用Linux问题,我在树莓派论坛也发了一模一样的帖子,如果那边解决了我会更新这里,反之亦然

备注:内容来源于stack exchange,提问作者Eddie_r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:18:10