This live stream session features Aerno, the developer behind the Hazel Engine, returning to programming after a hiatus to tackle the significant "Renderer 2025" overhaul. The core of this project involves transitioning the engine's graphics backend from direct Vulkan/OpenGL implementations to utilizing Nvidia's NVRHI library, which provides a unified abstraction layer for Vulkan, DirectX11, and DirectX12. Aerno demonstrates the real-time, iterative process of refactoring and porting existing engine components like index buffers, pipelines, images, and framebuffers, highlighting the challenges of managing compilation errors and adapting to a new abstraction. The long-term goal is to make the Hazel Engine 1.0 freely available as a binary release by the end of the year, potentially with future console support.
Summarized Transcript:
0:00 Return to Streaming and Project Overview: Aerno welcomes viewers back to his Cherno live stream after a long break, confirming audio quality and setting the stage for the session.
0:47 Hazel Engine Roadmap: The focus is on the "Renderer 2025" project for the Hazel Engine, detailed on hazelengine.com/roadmap. This project involves a major rewrite of the renderer.
3:34 Transition to NVRHI: A key decision for the new renderer is to outsource backend implementation to Nvidia's NVRHI library, abstracting Vulkan, DirectX11, and DirectX12, and potentially supporting other APIs like Metal in the future.
12:20 Live Coding and Error Management: Aerno begins live coding, demonstrating the process of tackling numerous compilation errors (starting with 1658) in Visual Studio, disabling features, and restarting the IDE to manage the error list.
27:51 NVRHI and Driver Stability: Addresses a viewer's question about Nvidia driver instability affecting NVRHI, clarifying that NVRHI is an abstraction library written by Nvidia, not directly tied to driver stability, and is open source for community contributions.
37:59 Porting Core Components (Pipeline): Aerno begins porting the pipeline.h class, moving its implementation to the base class and eliminating the Vulkan-specific pipeline, significantly reducing code.
45:57 Code Deletion Strategy: Emphasizes the goal of deleting old Vulkan-specific files like VulcanPipeline.h as their functionalities are absorbed by the NVRHI-based abstractions.
59:42 Image and Texture Refactoring: Continues refactoring by moving image.h implementations to a more generic structure, deleting VulcanImage.h, and discussing the complexities of handling image views and formats with NVRHI.
1:17:17 Challenges with FrameBuffer: Identifies FrameBuffer as one of the hardest classes to rewrite due to its complex, state-driven nature and deep integration with Vulkan-specific rendering operations.
1:58:57 Compilation Progress: After significant refactoring and deletions, the number of compilation errors is notably reduced, aiming to get the engine building, even if not yet fully functional. VulcanTexture.h is also deleted.
2:46:22 ImGUI and Compute Pipeline Refactoring: Discusses the need to rewrite the ImGUI renderer to use NVRHI and begins looking at the compute pipeline, noting its complexity and the granular control offered by NVRHI.
3:06:16 Stream Wrap-up and Future Outlook: Aerno concludes the stream, reiterating the goal of making Hazel Engine 1.0 free and binary-releasable by year-end, and inviting viewers to support the project via Patreon. He also announces future streaming schedule (Wednesday mornings and Monday evenings).