Browse Source

make presentManager hold a ref to vk::SurfaceKHR

pull/3685/head
xbzk 24 hours ago
committed by crueter
parent
commit
6a2b23cda2
  1. 2
      src/video_core/renderer_vulkan/renderer_vulkan.cpp
  2. 6
      src/video_core/renderer_vulkan/vk_present_manager.cpp
  3. 4
      src/video_core/renderer_vulkan/vk_present_manager.h

2
src/video_core/renderer_vulkan/renderer_vulkan.cpp

@ -137,7 +137,7 @@ try
memory_allocator,
scheduler,
swapchain,
*surface)
surface)
, blit_swapchain(device_memory,
device,
memory_allocator,

6
src/video_core/renderer_vulkan/vk_present_manager.cpp

@ -101,7 +101,7 @@ PresentManager::PresentManager(const vk::Instance& instance_,
MemoryAllocator& memory_allocator_,
Scheduler& scheduler_,
Swapchain& swapchain_,
VkSurfaceKHR_T* surface_)
vk::SurfaceKHR& surface_)
: instance{instance_}
, render_window{render_window_}
, device{device_}
@ -291,7 +291,7 @@ void PresentManager::PresentThread(std::stop_token token) {
}
void PresentManager::RecreateSwapchain(Frame* frame) {
swapchain.Create(surface, frame->width, frame->height); // Pass raw pointer
swapchain.Create(*surface, frame->width, frame->height); // Pass raw pointer
SetImageCount();
}
@ -310,7 +310,7 @@ void PresentManager::CopyToSwapchain(Frame* frame) {
// Recreate surface and swapchain if needed.
if (requires_recreation) {
#ifdef ANDROID
surface = *CreateSurface(instance, render_window.GetWindowInfo()).address();
surface = CreateSurface(instance, render_window.GetWindowInfo());
#endif
RecreateSwapchain(frame);
}

4
src/video_core/renderer_vulkan/vk_present_manager.h

@ -44,7 +44,7 @@ public:
MemoryAllocator& memory_allocator,
Scheduler& scheduler,
Swapchain& swapchain,
VkSurfaceKHR_T* surface);
vk::SurfaceKHR& surface);
~PresentManager();
/// Returns the last used presentation frame
@ -78,7 +78,7 @@ private:
MemoryAllocator& memory_allocator;
Scheduler& scheduler;
Swapchain& swapchain;
VkSurfaceKHR_T* surface;
vk::SurfaceKHR& surface;
vk::CommandPool cmdpool;
std::vector<Frame> frames;
boost::container::deque<Frame*> present_queue;

Loading…
Cancel
Save