The new “Honeykrisp” driver is the first conformant Vulkan® for Apple hardware on any operating system, implementing the full 1.3 spec without “portability” waivers. Honeykrisp is not yet released for end users. Developers can access the source code and continue to add features, improve performance, and port to more hardware. Notably, Honeykrisp is not based on prior M1 Vulkan efforts but rather Faith Ekstrand’s open-source NVK driver for NVIDIA GPUs.
The Genesis of Honeykrisp
According to Faith Ekstrand, all Vulkan drivers in Mesa trace their lineage to the Intel Vulkan driver and started by copying and pasting from it. By developing NVK with the best practices accumulated over the last 7.5 years, she aims to create a clean and well-organized codebase. The end goal is to make NVK the foundational driver everyone copies and pastes from. Starting from NVK instead of reinventing, they aim to pass the Vulkan 1.3 conformance test suite within an ambitious 30-day review period.
Development Journey
April 2: The development of the new Vulkan driver began with a simple text exchange with Faith suggesting to just start typing. The initial step involved adding M1 code to NVK while progressively removing NVIDIA code.
April 3: The focus shifted to descriptors, which are essential for GPUs to access resources. Honeykrisp’s descriptors differ from NVIDIA’s, so adapting the NVK’s descriptor set lowering was crucial. A simple but correct approach was taken, deleting far more code than was added.

Compilation of Vulkan Shader. Image courtesy of Wikimedia
April 4 - April 7: The development process involved tasks like compiling compute shaders, handling compute control streams, and implementing Vulkan’s copies using compute shaders. For graphics, the challenge was handling an extensive range of graphics states, including dynamic states like depth/stencil. Strategies from OpenGL were adapted and integrated with NVK.
Overcoming Challenges
Dynamic State vs Pipelines: One significant challenge was that the M1 bakes random states into shaders, unlike other modern hardware. While pipelines could serve as a solution, the development team opted to use dynamic state and shader objects from the start, avoiding future refactoring.
April 8 - April 22: The team continuously tested and refined the driver, achieving high pass rates for Vulkan 1.1 and 1.3 conformance (98.3%). Additionally, they supported various games and systems like SuperTuxKart, Zink, and vkQuake.
Complexities of Border Colours
April 26 - April 27: The development effort culminated in tackling the complex issue of custom border colours. The unique architectural quirks of the M1 posed challenges, but tactical software emulations helped pass the conformance tests. By the project's completion, the driver had zero failing tests out of 686,930.
Future Prospects
The next milestones involve implementing extensions like transform feedback, enabling the layering of Direct3D over Honeykrisp. Eventually, this will allow Windows games to run on Asahi Linux using an open-source x86 emulator.
Edworking is the best and smartest decision for SMEs and startups to be more productive. Edworking is a FREE superapp of productivity that includes all you need for work powered by AI in the same superapp, connecting Task Management, Docs, Chat, Videocall, and File Management. Save money today by not paying for Slack, Trello, Dropbox, Zoom, and Notion.
Remember these 3 key ideas for your startup:
Innovate by leveraging existing technology: Use established, well-organized codebases like NVK to save development time and resources. This approach optimizes resource allocation and accelerates your path to market.
Embrace the challenge of new technology: Like the Honeykrisp team, don’t shy away from complex problems. Addressing them head-on can lead to breakthrough innovations and set your product apart.
Iterate and test rigorously: Continuous testing and iteration, as seen in Honeykrisp’s development journey, ensure higher product reliability and customer satisfaction. Maintain a robust testing framework and be prepared for extensive bug fixing.
By keeping these points in mind, startups and SMEs can harness new technologies effectively, innovate with confidence, and deliver reliable products to their users efficiently.
For more details, see the original source.