V3DV Vulkan 1.2 status

A quick update on my latest activities around V3DV: I’ve been focusing on getting the driver ready for Vulkan 1.2 conformance, which mostly involved fixing a few CTS tests of the kind that would only fail occasionally, these are always fun :). I think we have fixed all the issues now and we are ready to submit conformance to Khronos, my colleague Alejandro Piñeiro is now working on that.

6 thoughts on “V3DV Vulkan 1.2 status”

  1. Hello Exiting and Congratulations on this amazing new milestone for Raspberry Vulkan!

    I actually came here looking for a way to ask questions about Vulkan on raspberry Pi (4b). To see if there’s a specific forum or Q&A area where the Vulkan developers might be able to help a bit?

    I am trying to get Oculus Rift CV1 to work with RPi4b, Ubuntu 22.4 w Wayland, Vulkan, Direct to VR display render/present (kmsdrm, drmlease, direct mode). Here’s the question I posted on the Monado forum and theyv’e had the same problem and suggested I contact the rpi-vulkan developers.
    ————————————————————————
    Hello! I’m back to trying to get my Rift CV1 to work on my RPi4b but this time I moved to
    Raspberry Ubuntu 22.04 64bit – uses Wayland by default.

    My goal is to do direct KMSDRM render using Vulkan, ideally straight to HMD without exiting to cli tty but exiting to tty is ok too.

    Iv’e fiddled a lot and think I managed to create a good edid file that the system accepts.

    > modetest -c
    41 0 connected HDMI-A-2 0x0 1 40
    modes:
    index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
    #0 2160×1200 90.00 2160 2168 2200 2240 1200 1250 1252 1472 296750 flags: phsync, nvsync; type: preferred, userdef, driver

    ‘non-desktop’ is set to 1

    But when I in tty run,
    XRT_COMPOSITOR_FORCE_VK_DISPLAY=1 monado-service
    it starts off promising but then Errors.

    See this output https://pastebin.com/P5f56SsX

    OpenHMD is installed and ‘monado-cli test’ finds the Rift.

    This is my ‘vulkaninfo’ output, https://pastebin.com/JnWTiyr0

    Is anyone able to help guessing what I might be missing or what’s going wrong?

    Cheers!

    1. Hi Fredrik, the error VK_ERROR_SURFACE_LOST_KHR points to an issue connecting or presenting to the HMD, but I can’t tell why that happens from that log though.

      I can tell you, however, that you’re not using the native Vulkan driver for Raspberry Pi 4 (v3dv) and are instead using the lavapipe software driver instead, which you can see from this line in the vulkan-info output:

      WARNING: lavapipe is not a conformant vulkan implementation, testing use only.

      I am not sure if that could be related to the problem you face or not, but I figure you would want to fix that first.

      1. Thank you very much for your reply and suggestions!
        I did see the mention of lavapipe but didn’t realise it was an alternative Vulkan version.
        I will change to your official implementation and post back.

  2. Hi Again!
    I tried to ‘apt purge’ mesa-vulkan-drivers and libvulkan1, but that took the whole Desktop with it and think like xwayland so I reverted that.
    Instead tried to just re-build and install a new copy of Mesa(with Vulkan) like this,

    meson –prefix /usr –libdir lib -Dplatforms=x11,wayland -Dvulkan-drivers=broadcom -Ddri-drivers= -Dgallium-drivers=v3d,kmsro,vc4 -Dbuildtype=debug build

    See result here if you want: https://pastebin.com/Pv2tGfza

    I don’t know what to expect to get but there’s no new libvulkan.so.1 created, should there be?
    I tried to build the Sasha Willems examples but they fail with,

    /usr/bin/ld: ../../libs/vulkan/libvulkan.so: error adding symbols: file in wrong format
    (There’s an x86-64 version there for some reason)

    In my new Mesa build install dir /usr/lib I can find a file curiously named,
    libvulkan_broadcom.so

    Is that meant to replace the libvulkan.so file?

    Cheers!

    1. UPDATE: I got some help on the Mesa github and this is now all figured out. If anyone’s also new to Vulkan and confused you can follow the gitlab link and read about how I did it.

Comments are closed.