diff options
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.h | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 15 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.h | 11 |
4 files changed, 19 insertions, 14 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 47dfb45a1..6d5ea99dd 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -157,12 +157,10 @@ RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra | |||
| 157 | staging_pool(device, memory_allocator, scheduler), descriptor_pool(device, scheduler), | 157 | staging_pool(device, memory_allocator, scheduler), descriptor_pool(device, scheduler), |
| 158 | update_descriptor_queue(device, scheduler), | 158 | update_descriptor_queue(device, scheduler), |
| 159 | blit_image(device, scheduler, state_tracker, descriptor_pool), | 159 | blit_image(device, scheduler, state_tracker, descriptor_pool), |
| 160 | astc_decoder_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue, | ||
| 161 | memory_allocator), | ||
| 162 | render_pass_cache(device), texture_cache_runtime{device, scheduler, | 160 | render_pass_cache(device), texture_cache_runtime{device, scheduler, |
| 163 | memory_allocator, staging_pool, | 161 | memory_allocator, staging_pool, |
| 164 | blit_image, astc_decoder_pass, | 162 | blit_image, render_pass_cache, |
| 165 | render_pass_cache}, | 163 | descriptor_pool, update_descriptor_queue}, |
| 166 | texture_cache(texture_cache_runtime, *this), | 164 | texture_cache(texture_cache_runtime, *this), |
| 167 | buffer_cache_runtime(device, memory_allocator, scheduler, staging_pool, | 165 | buffer_cache_runtime(device, memory_allocator, scheduler, staging_pool, |
| 168 | update_descriptor_queue, descriptor_pool), | 166 | update_descriptor_queue, descriptor_pool), |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 4cde3c983..e7cdeaed1 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -153,7 +153,6 @@ private: | |||
| 153 | DescriptorPool descriptor_pool; | 153 | DescriptorPool descriptor_pool; |
| 154 | UpdateDescriptorQueue update_descriptor_queue; | 154 | UpdateDescriptorQueue update_descriptor_queue; |
| 155 | BlitImageHelper blit_image; | 155 | BlitImageHelper blit_image; |
| 156 | ASTCDecoderPass astc_decoder_pass; | ||
| 157 | RenderPassCache render_pass_cache; | 156 | RenderPassCache render_pass_cache; |
| 158 | 157 | ||
| 159 | TextureCacheRuntime texture_cache_runtime; | 158 | TextureCacheRuntime texture_cache_runtime; |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 305ad8aee..20e56b0d1 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -791,12 +791,17 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, Scheduler& sched | |||
| 791 | MemoryAllocator& memory_allocator_, | 791 | MemoryAllocator& memory_allocator_, |
| 792 | StagingBufferPool& staging_buffer_pool_, | 792 | StagingBufferPool& staging_buffer_pool_, |
| 793 | BlitImageHelper& blit_image_helper_, | 793 | BlitImageHelper& blit_image_helper_, |
| 794 | ASTCDecoderPass& astc_decoder_pass_, | 794 | RenderPassCache& render_pass_cache_, |
| 795 | RenderPassCache& render_pass_cache_) | 795 | DescriptorPool& descriptor_pool, |
| 796 | UpdateDescriptorQueue& update_descriptor_queue) | ||
| 796 | : device{device_}, scheduler{scheduler_}, memory_allocator{memory_allocator_}, | 797 | : device{device_}, scheduler{scheduler_}, memory_allocator{memory_allocator_}, |
| 797 | staging_buffer_pool{staging_buffer_pool_}, blit_image_helper{blit_image_helper_}, | 798 | staging_buffer_pool{staging_buffer_pool_}, blit_image_helper{blit_image_helper_}, |
| 798 | astc_decoder_pass{astc_decoder_pass_}, render_pass_cache{render_pass_cache_}, | 799 | render_pass_cache{render_pass_cache_}, resolution{Settings::values.resolution_info} { |
| 799 | resolution{Settings::values.resolution_info} {} | 800 | if (Settings::values.accelerate_astc) { |
| 801 | astc_decoder_pass.emplace(device, scheduler, descriptor_pool, staging_buffer_pool, | ||
| 802 | update_descriptor_queue, memory_allocator); | ||
| 803 | } | ||
| 804 | } | ||
| 800 | 805 | ||
| 801 | void TextureCacheRuntime::Finish() { | 806 | void TextureCacheRuntime::Finish() { |
| 802 | scheduler.Finish(); | 807 | scheduler.Finish(); |
| @@ -1845,7 +1850,7 @@ void TextureCacheRuntime::AccelerateImageUpload( | |||
| 1845 | Image& image, const StagingBufferRef& map, | 1850 | Image& image, const StagingBufferRef& map, |
| 1846 | std::span<const VideoCommon::SwizzleParameters> swizzles) { | 1851 | std::span<const VideoCommon::SwizzleParameters> swizzles) { |
| 1847 | if (IsPixelFormatASTC(image.info.format)) { | 1852 | if (IsPixelFormatASTC(image.info.format)) { |
| 1848 | return astc_decoder_pass.Assemble(image, map, swizzles); | 1853 | return astc_decoder_pass->Assemble(image, map, swizzles); |
| 1849 | } | 1854 | } |
| 1850 | ASSERT(false); | 1855 | ASSERT(false); |
| 1851 | } | 1856 | } |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index 0b7ac0df1..7ec0df134 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include <span> | 6 | #include <span> |
| 7 | 7 | ||
| 8 | #include "shader_recompiler/shader_info.h" | 8 | #include "shader_recompiler/shader_info.h" |
| 9 | #include "video_core/renderer_vulkan/vk_compute_pass.h" | ||
| 9 | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" | 10 | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" |
| 10 | #include "video_core/texture_cache/image_view_base.h" | 11 | #include "video_core/texture_cache/image_view_base.h" |
| 11 | #include "video_core/texture_cache/texture_cache_base.h" | 12 | #include "video_core/texture_cache/texture_cache_base.h" |
| @@ -25,14 +26,15 @@ using VideoCommon::RenderTargets; | |||
| 25 | using VideoCommon::SlotVector; | 26 | using VideoCommon::SlotVector; |
| 26 | using VideoCore::Surface::PixelFormat; | 27 | using VideoCore::Surface::PixelFormat; |
| 27 | 28 | ||
| 28 | class ASTCDecoderPass; | ||
| 29 | class BlitImageHelper; | 29 | class BlitImageHelper; |
| 30 | class DescriptorPool; | ||
| 30 | class Device; | 31 | class Device; |
| 31 | class Image; | 32 | class Image; |
| 32 | class ImageView; | 33 | class ImageView; |
| 33 | class Framebuffer; | 34 | class Framebuffer; |
| 34 | class RenderPassCache; | 35 | class RenderPassCache; |
| 35 | class StagingBufferPool; | 36 | class StagingBufferPool; |
| 37 | class UpdateDescriptorQueue; | ||
| 36 | class Scheduler; | 38 | class Scheduler; |
| 37 | 39 | ||
| 38 | class TextureCacheRuntime { | 40 | class TextureCacheRuntime { |
| @@ -41,8 +43,9 @@ public: | |||
| 41 | MemoryAllocator& memory_allocator_, | 43 | MemoryAllocator& memory_allocator_, |
| 42 | StagingBufferPool& staging_buffer_pool_, | 44 | StagingBufferPool& staging_buffer_pool_, |
| 43 | BlitImageHelper& blit_image_helper_, | 45 | BlitImageHelper& blit_image_helper_, |
| 44 | ASTCDecoderPass& astc_decoder_pass_, | 46 | RenderPassCache& render_pass_cache_, |
| 45 | RenderPassCache& render_pass_cache_); | 47 | DescriptorPool& descriptor_pool, |
| 48 | UpdateDescriptorQueue& update_descriptor_queue); | ||
| 46 | 49 | ||
| 47 | void Finish(); | 50 | void Finish(); |
| 48 | 51 | ||
| @@ -97,8 +100,8 @@ public: | |||
| 97 | MemoryAllocator& memory_allocator; | 100 | MemoryAllocator& memory_allocator; |
| 98 | StagingBufferPool& staging_buffer_pool; | 101 | StagingBufferPool& staging_buffer_pool; |
| 99 | BlitImageHelper& blit_image_helper; | 102 | BlitImageHelper& blit_image_helper; |
| 100 | ASTCDecoderPass& astc_decoder_pass; | ||
| 101 | RenderPassCache& render_pass_cache; | 103 | RenderPassCache& render_pass_cache; |
| 104 | std::optional<ASTCDecoderPass> astc_decoder_pass; | ||
| 102 | const Settings::ResolutionScalingInfo& resolution; | 105 | const Settings::ResolutionScalingInfo& resolution; |
| 103 | 106 | ||
| 104 | constexpr static size_t indexing_slots = 8 * sizeof(size_t); | 107 | constexpr static size_t indexing_slots = 8 * sizeof(size_t); |