Commit graph

13 commits

Author SHA1 Message Date
Serkyo d0fa203743 feat(renderer): create command pool and buffer 2026-05-09 17:35:09 +02:00
Serkyo 65b43651bb feat(renderer): create image views for swapchain images 2026-05-09 17:29:47 +02:00
Serkyo 636c44b29f fix(renderer): handle u32::MAX swapchain extent
Fixed a crash where the renderer would attempt to create a swapchain with u32::MAX dimensions when the OS didn't provide a preferred extent. Updated Renderer::new to accept window dimensions and use them as a fallback. Also renamed InstanceCreateFailed to VulkanError for better generality.
2026-04-30 15:17:38 +02:00
Serkyo 76450da41f feat(renderer): finalize swapchain initialization
Negotiated swapchain settings (format, present mode, extent), created the swapchain and its images, and ensured correct destruction order. Added comprehensive documentation for all new fields and methods.
2026-04-30 15:15:07 +02:00
Serkyo 5ee9fc1bd6 feat(renderer): implement surface creation and support checks
Created the OS surface and ensured that the selected GPU and queue family support presentation to that surface. Updated Drop to properly destroy the surface and improved documentation.
2026-04-30 14:56:45 +02:00
Serkyo 347f868af1 feat(renderer): update new() to accept window handles
Updated the Renderer constructor to accept RawDisplayHandle and RawWindowHandle, and updated the client to pass these handles during resumption. This is a prerequisite for surface creation.
2026-04-30 14:48:03 +02:00
Serkyo 70e08dd883 feat(renderer): implement Drop trait for resource cleanup
Ensured that the Logical Device, Debug Messenger, and Instance are destroyed in the correct reverse order when the Renderer is dropped. Added documentation for the cleanup process.
2026-04-30 14:26:18 +02:00
Serkyo 92764f6f2d feat(renderer): implement logical device creation
Created the logical device handle, enabled Vulkan 1.3 features (dynamic rendering, synchronization2), and retrieved the graphics queue. Added documentation for the new fields and helpers.
2026-04-30 14:19:16 +02:00
Serkyo 7034a24498 feat(renderer): implement physical device selection
Added logic to enumerate and score physical devices, preferring discrete GPUs. Added NoSuitableGpu error variant and documentation for the selection process.
2026-04-30 13:46:46 +02:00
Serkyo edcde4ffd1 feat(renderer): wire vulkan debug messenger to tracing
Implemented the Vulkan debug callback to intercept internal driver warnings and validation layer errors, converting them into tracing logs. Resolved unused assignment and unsafe pointer 2024 edition warnings. Added doc comments for the Renderer and its initialization logic.
2026-04-30 12:26:38 +02:00
Serkyo 83dde5a794 feat(renderer): enable vulkan validation layers in debug builds
Configured InstanceCreateInfo to request the VK_LAYER_KHRONOS_validation layer and the VK_EXT_debug_utils extension when compiling in debug mode. This lays the foundation for wiring Vulkan debug callbacks to tracing.
2026-04-30 11:33:07 +02:00
Serkyo d60ccd7918 feat(renderer): implement base Vulkan instance initialization
Added ash and thiserror dependencies to the renderer crate. Defined RendererError for typed Vulkan failure handling. Implemented the Renderer struct with basic Vulkan Entry and Instance creation.
2026-04-30 01:29:04 +02:00
Serkyo a2488d8015 Initial workspace structure 2026-04-28 00:02:00 +02:00