diff options
author | Rodrigo Locatti <reinuseslisp@airmail.cc> | 2021-03-31 00:31:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-31 00:31:52 +0200 |
commit | 5ee669466fcebd2258229ed6bfe6b5e5529e0200 (patch) | |
tree | 6dbf84fb5c2c9656f1d1ef6c46b2527ea1a205ff /src/video_core/renderer_vulkan/vk_texture_cache.h | |
parent | Merge pull request #6116 from german77/userArgument (diff) | |
parent | astc_decoder: Refactor for style and more efficient memory use (diff) | |
download | yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.tar yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.tar.gz yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.tar.bz2 yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.tar.lz yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.tar.xz yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.tar.zst yuzu-5ee669466fcebd2258229ed6bfe6b5e5529e0200.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_texture_cache.h')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index 3aee27ce0..628785d5e 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h @@ -20,6 +20,7 @@ using VideoCommon::Offset2D; using VideoCommon::RenderTargets; using VideoCore::Surface::PixelFormat; +class ASTCDecoderPass; class BlitImageHelper; class Device; class Image; @@ -60,6 +61,7 @@ struct TextureCacheRuntime { MemoryAllocator& memory_allocator; StagingBufferPool& staging_buffer_pool; BlitImageHelper& blit_image_helper; + ASTCDecoderPass& astc_decoder_pass; std::unordered_map<RenderPassKey, vk::RenderPass> renderpass_cache{}; void Finish(); @@ -83,9 +85,7 @@ struct TextureCacheRuntime { } void AccelerateImageUpload(Image&, const StagingBufferRef&, - std::span<const VideoCommon::SwizzleParameters>) { - UNREACHABLE(); - } + std::span<const VideoCommon::SwizzleParameters>); void InsertUploadMemoryBarrier() {} @@ -121,15 +121,26 @@ public: return *buffer; } - [[nodiscard]] VkImageCreateFlags AspectMask() const noexcept { + [[nodiscard]] VkImageAspectFlags AspectMask() const noexcept { return aspect_mask; } + [[nodiscard]] VkImageView StorageImageView(s32 level) const noexcept { + return *storage_image_views[level]; + } + + /// Returns true when the image is already initialized and mark it as initialized + [[nodiscard]] bool ExchangeInitialization() noexcept { + return std::exchange(initialized, true); + } + private: VKScheduler* scheduler; vk::Image image; vk::Buffer buffer; MemoryCommit commit; + vk::ImageView image_view; + std::vector<vk::ImageView> storage_image_views; VkImageAspectFlags aspect_mask = 0; bool initialized = false; }; |