From cf342e7a4b69baa0e74016a147a9acb950789b0d Mon Sep 17 00:00:00 2001 From: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com> Date: Fri, 27 Sep 2024 02:56:27 +0300 Subject: [PATCH] hotfix: descriptor set lifetime fix --- src/video_core/texture_cache/tile_manager.cpp | 8 +++++--- src/video_core/texture_cache/tile_manager.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/video_core/texture_cache/tile_manager.cpp b/src/video_core/texture_cache/tile_manager.cpp index 6624cee7fae..46f9be2748f 100644 --- a/src/video_core/texture_cache/tile_manager.cpp +++ b/src/video_core/texture_cache/tile_manager.cpp @@ -295,10 +295,12 @@ TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& sc .bindingCount = static_cast(bindings.size()), .pBindings = bindings.data(), }; - auto [desc_layout_result, desc_layout] = + auto desc_layout_result = instance.GetDevice().createDescriptorSetLayoutUnique(desc_layout_ci); - ASSERT_MSG(desc_layout_result == vk::Result::eSuccess, - "Failed to create descriptor set layout: {}", vk::to_string(desc_layout_result)); + ASSERT_MSG(desc_layout_result.result == vk::Result::eSuccess, + "Failed to create descriptor set layout: {}", + vk::to_string(desc_layout_result.result)); + desc_layout = std::move(desc_layout_result.value); const vk::PushConstantRange push_constants = { .stageFlags = vk::ShaderStageFlagBits::eCompute, diff --git a/src/video_core/texture_cache/tile_manager.h b/src/video_core/texture_cache/tile_manager.h index d0e5eb0f37f..ed7e32c44a4 100644 --- a/src/video_core/texture_cache/tile_manager.h +++ b/src/video_core/texture_cache/tile_manager.h @@ -51,6 +51,7 @@ class TileManager { private: const Vulkan::Instance& instance; Vulkan::Scheduler& scheduler; + vk::UniqueDescriptorSetLayout desc_layout; std::array detilers; };