diff options
author | bunnei <bunneidev@gmail.com> | 2023-05-03 02:54:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-03 02:54:57 +0200 |
commit | 8f43b05d6b1be260f68907c581b8e3a91cf244d8 (patch) | |
tree | be95158c22707e828cd57be90c68f9a1f683d3f1 /src/video_core/renderer_vulkan/vk_update_descriptor.h | |
parent | Merge pull request #10133 from lat9nq/clang-shadow-and-fallthrough (diff) | |
parent | vk_present_manager: Add toggle for async presentation (diff) | |
download | yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.tar yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.tar.gz yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.tar.bz2 yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.tar.lz yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.tar.xz yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.tar.zst yuzu-8f43b05d6b1be260f68907c581b8e3a91cf244d8.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_update_descriptor.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_update_descriptor.h b/src/video_core/renderer_vulkan/vk_update_descriptor.h index 625bcc809..1c1a7020b 100644 --- a/src/video_core/renderer_vulkan/vk_update_descriptor.h +++ b/src/video_core/renderer_vulkan/vk_update_descriptor.h @@ -29,6 +29,12 @@ struct DescriptorUpdateEntry { }; class UpdateDescriptorQueue final { + // This should be plenty for the vast majority of cases. Most desktop platforms only + // provide up to 3 swapchain images. + static constexpr size_t FRAMES_IN_FLIGHT = 5; + static constexpr size_t FRAME_PAYLOAD_SIZE = 0x10000; + static constexpr size_t PAYLOAD_SIZE = FRAME_PAYLOAD_SIZE * FRAMES_IN_FLIGHT; + public: explicit UpdateDescriptorQueue(const Device& device_, Scheduler& scheduler_); ~UpdateDescriptorQueue(); @@ -73,9 +79,11 @@ private: const Device& device; Scheduler& scheduler; + size_t frame_index{0}; DescriptorUpdateEntry* payload_cursor = nullptr; + DescriptorUpdateEntry* payload_start = nullptr; const DescriptorUpdateEntry* upload_start = nullptr; - std::array<DescriptorUpdateEntry, 0x10000> payload; + std::array<DescriptorUpdateEntry, PAYLOAD_SIZE> payload; }; } // namespace Vulkan |