Skip to content
  • Alyssa Rosenzweig's avatar
    hk: add Vulkan driver for Apple GPUs · 5bc82848
    Alyssa Rosenzweig authored and Marge Bot's avatar Marge Bot committed
    
    
    Honeykrisp is a Vulkan 1.3 driver for Apple GPUs. It currently support M1 and
    M2, future hardware support is planned. It passed CTS a few months ago and with
    two exceptions[1] should still pass now.
    
    Compared to the May snapshot that passed conformance [1], this adds a bunch of
    new features, most notably:
    
    * Geometry shaders
    * Tessellation shaders
    * Transform feedback
    * Pipeline statistics queries
    * Robustness2
    * Host image copy
    
    Theoretically, we now support everything DXVK requires for D3D11 with full
    FL11_1. To quote Rob Herring:
    
       How's performance? Great, because I haven't tested it.
    
    This driver is NOT ready for end users... YET. Stay tuned, it won't be long now
    :}
    
    I would like to reiterate: Honeykrisp is not yet ready for end users. Please
    read [3].
    
    Regardless, as the kernel UAPI is not yet stable, this driver will refuse to
    probe without out-of-tree Mesa patches. This is the same situation as our GL
    driver.
    
    On the Mesa side, the biggest todo before the release is improving
    performance. Right now, I expect WineD3D with our GL4.6 driver to give better
    performance. This isn't fundamental, just needs time ... our GL driver is 3
    years old and honeykrisp is 3 months old.
    
    On the non-Mesa side, there's still a lot of movement around krun and FEX
    packaging before this becomes broadly useful for x86 games.
    
    At any rate, now that I've finished up geometry and tessellation, I'm hopefully
    done rewriting the whole driver every 2 weeks. So I think this is settled enough
    that it makes sense to upstream this now instead of building up a gigantic
    monster commit in a private branch.
    
    [1] Pipeline robustness and pipeline statistics are included in this tree but
        need bug fixes in the CTS to pass. This is being handled internally in
        Khronos. These features may be disabled to get a conformant driver.
    
    [2] https://rosenzweig.io/blog/vk13-on-the-m1-in-1-month.html
    
    [3] https://dont-ship.it/
    
    Signed-off-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
    Acked-by: default avatarFaith Ekstrand <faith.ekstrand@collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30382>
    5bc82848