Vulkan 1.3 Coming to Apple M1 in One Month

BYMark Howell 1 years ago4 MINS READ
Vulkan 1.3 Coming to Apple M1 in One Month

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.

Edworking
All your work in one place
All-in-one platform for your team and your work. Register now for Free.
Get Started Now

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.

Edworking
All your work in one place
All-in-one platform for your team and your work. Register now for Free.
Get Started Now

Copy link Remember these 3 key ideas for your startup:

  1. 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.
  2. 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.
  3. 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.
Mark Howell

About the Author: Mark Howell

LinkedIn

Mark Howell is a talented content writer for Edworking's blog, consistently producing high-quality articles on a daily basis. As a Sales Representative, he brings a unique perspective to his writing, providing valuable insights and actionable advice for readers in the education industry. With a keen eye for detail and a passion for sharing knowledge, Mark is an indispensable member of the Edworking team. His expertise in task management ensures that he is always on top of his assignments and meets strict deadlines. Furthermore, Mark's skills in project management enable him to collaborate effectively with colleagues, contributing to the team's overall success and growth. As a reliable and diligent professional, Mark Howell continues to elevate Edworking's blog and brand with his well-researched and engaging content.

Startups

Try Edworking Background

A new way to work from anywhere, for everyone for Free!

Get Started Now