This live stream documents Aerno's ongoing efforts to overhaul the Hazel Engine's rendering backend, focusing on the "Renderer 2025" project. The core task involves porting the engine's existing Vulkan-specific rendering code to NVIDIA's NVHRI library, which offers a robust abstraction layer for Vulkan, DirectX 11, and DirectX 12. The stream showcases the detailed process of refactoring fundamental rendering components like buffers, pipelines, images, and frame buffers, highlighting the architectural shift towards broader API compatibility and the systematic debugging required for such a large-scale migration. The ultimate goal is to enable a stable, free binary release of the Hazel Engine.
Summarized Transcript:
0:00 Introduction to the Stream: Aerno welcomes viewers back to a Cherno live stream after a significant hiatus, announcing the session will focus on the Hazel Engine.
0:47 Hazel Engine Roadmap: He details the "Renderer 2025" project, a crucial step in the Hazel Engine's roadmap towards a free, binary release, emphasizing the project's complexity due to limited development time.
2:54 Adopting NVIDIA's NVHRI Library: The central strategy involves integrating NVHRI to abstract the rendering backend, enabling compatibility with Vulkan, DirectX 11, and DirectX 12. This allows for the removal of Hazel's direct Vulkan implementation.
6:10 New Renderer Architecture: Aerno illustrates the engine's new rendering pipeline: Hazel API -> NVHRI -> specific graphics APIs (D3D11/12, Vulkan), paving the way for future console support like Nintendo Switch.
7:57 Current Development Focus: The immediate goal is to establish Vulkan support within the new NVHRI-based renderer, with discussions around potentially switching shader language from GLSL to HLSL for better cross-platform compilation.
14:06 Initial Compilation Challenges: The coding session begins with a substantial 1658 compilation errors, which Aerno systematically addresses by disabling unnecessary GLSL features and fixing code issues.
17:50 Development Environment: Aerno discusses his preference for Visual Studio with Visual Assist for large-scale C++ development, highlighting its effectiveness and his familiarity with the toolset.
21:17 Refactoring Core Components: A significant portion of the stream is dedicated to refactoring core rendering classes, including IndexBuffer and VertexBuffer, to remove private constructors and align with the new NVHRI abstraction.
39:03 Complexities with Frame Buffers: The FrameBuffer class is identified as particularly challenging due to its intricate state-driven nature and the need to translate Vulkan-specific load/store operations and clear values to NVHRI.
40:51 Streamlining the Pipeline: Aerno successfully ports and refactors the Pipeline class, moving its implementation to the base class and deleting the verbose, Vulkan-specific version, resulting in significant code reduction.
49:28 Image and Texture Porting: Work begins on porting Image and Texture classes, including Image2D and TextureCube, focusing on NVHRI format conversions, image views, and sampler objects.
2:40:55 Future GUI & Compute Pipeline Challenges: He acknowledges that the ImGUI renderer will require a complete rewrite for NVHRI compatibility, and the ComputePipeline presents further complexities in managing resources and bindings.
3:05:50 Stream Conclusion: Aerno concludes the stream, visibly tired, but optimistic about the progress made towards getting the engine to compile and eventually run with the new NVHRI renderer, while also outlining future stream schedules.