Fix some issues in RAII

This commit is contained in:
MrPurple666 2025-04-29 22:00:51 -03:00
parent 8599c47fe0
commit 4cf41673ba
3 changed files with 54 additions and 61 deletions

View file

@ -110,16 +110,16 @@ RendererVulkan::RendererVulkan(Core::Frontend::EmuWindow& emu_window,
instance(CreateInstance(*library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
Settings::values.renderer_debug.GetValue())),
// Now create RAII wrappers for the resources in the correct order
raii_instance(MakeInstance(instance, dld)),
managed_instance(MakeManagedInstance(instance, dld)),
// Create debug messenger if debug is enabled
debug_messenger(Settings::values.renderer_debug ? CreateDebugUtilsCallback(instance)
: vk::DebugUtilsMessenger{}),
raii_debug_messenger(Settings::values.renderer_debug
? MakeDebugUtilsMessenger(debug_messenger, instance, dld)
: RaiiDebugUtilsMessenger{}),
managed_debug_messenger(Settings::values.renderer_debug
? MakeManagedDebugUtilsMessenger(debug_messenger, instance, dld)
: ManagedDebugUtilsMessenger{}),
// Create surface
surface(CreateSurface(instance, render_window.GetWindowInfo())),
raii_surface(MakeSurface(surface, instance, dld)),
managed_surface(MakeManagedSurface(surface, instance, dld)),
device(CreateDevice(instance, dld, *surface)), memory_allocator(device), state_tracker(),
scheduler(device, state_tracker),
swapchain(*surface, device, scheduler, render_window.GetFramebufferLayout().width,

View file

@ -80,15 +80,15 @@ private:
// Keep original handles for compatibility with existing code
vk::Instance instance;
// RAII wrapper for instance
RaiiInstance raii_instance;
ManagedInstance managed_instance;
vk::DebugUtilsMessenger debug_messenger;
// RAII wrapper for debug messenger
RaiiDebugUtilsMessenger raii_debug_messenger;
ManagedDebugUtilsMessenger managed_debug_messenger;
vk::SurfaceKHR surface;
// RAII wrapper for surface
RaiiSurface raii_surface;
ManagedSurface managed_surface;
Device device;
MemoryAllocator memory_allocator;