This devlog provides an update on Hazel 2025.1, highlighting the successful integration of its new NV RHI renderer backend. The video demonstrates the rendering of both the ImGui-based UI with multi-viewport support and initial 3D scene elements using this new technology. The developer details the challenges encountered, including complex shader binding offsets imposed by NV RHI and a significant memory leak stemming from unmanaged command buffers, both of which required specific solutions. The video also discusses the decision to build a custom ImGui renderer for tighter integration and compares NV RHI to Nvidia's NRI. Despite ongoing work on shader pipeline quirks and extensive testing ahead, the core rendering system is confirmed functional, marking a major milestone towards Hazel's planned free release.
Summarizing Hazel 2025.1: Renderer Backend & Development Journey
0:00 - 0:16 Introducing Hazel 2025.1 with NV RHI: The Hazel engine now successfully renders its UI (using ImGui with multi-viewport support) and initial 3D scene elements using the new NV RHI (Nvidia Rendering Hardware Interface) backend, marking a significant development milestone.
1:40 - 2:36 Community Engagement & Support: The development process is transparently live-streamed on Twitch (thecherno), with VODs available on YouTube (Cherno Unplugged) and AI-generated summaries. Patreon supporters ($10 tier) gain early access to Hazel, its source code, and development branches.
2:36 - 3:08 Roadmap to Free Release: Renderer 2025 is a crucial step towards the planned free release of Hazel, as outlined in the project's roadmap on hazelengine.com. Basic multiplayer functionality is also nearing completion.
3:08 - 4:40 Shader Pipeline Challenges: The developer is actively evaluating shader language options (e.g., 'slang' for cross-compilation to HLSL, GLSL, DXIL, SPIR-V, Metal) to ensure broad API compatibility and invites community feedback on the optimal approach.
4:40 - 9:02 Modular Development Approach: Development progressed by first tackling the simpler ImGui UI rendering within the Hazelnut editor, which now uses an updated ImGui version (latest docking branch) and a completely custom window/rendering management system for multi-viewports.
Shader Binding Offsets: NV RHI imposes specific binding offsets for different resource types in HLSL (e.g., samplers start at 128, constant buffers at 256), which required careful adjustments, particularly for GLSL shaders.
Memory Leaks: A significant memory leak was resolved by implementing a per-frame garbage collection routine, essential for retiring command buffers back into a reusable pool and preventing continuous memory allocation.
16:20 - 20:00 NV RHI vs. Nvidia NRI: The developer chose NV RHI over Nvidia's lower-level NRI for its higher-level systems for resource tracking and barrier placement, which simplify development, despite NV RHI's more aggressive memory allocation.
20:00 - 22:50 Custom ImGui Renderer: Hazel now utilizes a custom ImGui renderer, moving away from ImGui's default backend examples. This bespoke implementation provides tighter integration with Hazel's internal rendering and window management, especially for multi-viewport functionality.
22:50 - 23:50 Driver-Related Stability Fix: Initial stability issues, including screen flashes and computer freezes when dragging UI panels, were resolved by updating GPU drivers to Nvidia's Game Ready version.
23:50 - 26:02 Core Rendering System Functionality: Despite the current simple visual output (bounding boxes), the fundamental rendering pipeline for both 2D lines and the 3D scene is fully functional. Key components like pipeline specifications, render passes, camera uniform buffers, and resource managers are now correctly wired up, indicating strong progress towards project completion by the end of the month, pending extensive testing.