summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Morph2022-11-03 19:29:33 -0400
committerGravatar GitHub2022-11-03 19:29:33 -0400
commit74275d0968fed5be0204449ed8e4ab0990483fe2 (patch)
treeef832d6309106ef7aa471cca1514469042f0e226
parentMerge pull request #9166 from Docteh/tx-update-20221102021425 (diff)
parentvideo_core: don't build ASTC decoder shader unless requested (diff)
downloadyuzu-74275d0968fed5be0204449ed8e4ab0990483fe2.tar.gz
yuzu-74275d0968fed5be0204449ed8e4ab0990483fe2.tar.xz
yuzu-74275d0968fed5be0204449ed8e4ab0990483fe2.zip
Merge pull request #9097 from liamwhite/intel-spv-compiler
video_core: don't build ASTC decoder shader unless requested
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp6
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp15
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.h11
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 6ab68892c..d94dbf873 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -156,12 +156,10 @@ RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra
156 staging_pool(device, memory_allocator, scheduler), descriptor_pool(device, scheduler), 156 staging_pool(device, memory_allocator, scheduler), descriptor_pool(device, scheduler),
157 update_descriptor_queue(device, scheduler), 157 update_descriptor_queue(device, scheduler),
158 blit_image(device, scheduler, state_tracker, descriptor_pool), 158 blit_image(device, scheduler, state_tracker, descriptor_pool),
159 astc_decoder_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue,
160 memory_allocator),
161 render_pass_cache(device), texture_cache_runtime{device, scheduler, 159 render_pass_cache(device), texture_cache_runtime{device, scheduler,
162 memory_allocator, staging_pool, 160 memory_allocator, staging_pool,
163 blit_image, astc_decoder_pass, 161 blit_image, render_pass_cache,
164 render_pass_cache}, 162 descriptor_pool, update_descriptor_queue},
165 texture_cache(texture_cache_runtime, *this), 163 texture_cache(texture_cache_runtime, *this),
166 buffer_cache_runtime(device, memory_allocator, scheduler, staging_pool, 164 buffer_cache_runtime(device, memory_allocator, scheduler, staging_pool,
167 update_descriptor_queue, descriptor_pool), 165 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 e2fdc7611..b0bc306f5 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.h
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.h
@@ -155,7 +155,6 @@ private:
155 DescriptorPool descriptor_pool; 155 DescriptorPool descriptor_pool;
156 UpdateDescriptorQueue update_descriptor_queue; 156 UpdateDescriptorQueue update_descriptor_queue;
157 BlitImageHelper blit_image; 157 BlitImageHelper blit_image;
158 ASTCDecoderPass astc_decoder_pass;
159 RenderPassCache render_pass_cache; 158 RenderPassCache render_pass_cache;
160 159
161 TextureCacheRuntime texture_cache_runtime; 160 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 6ad7efbdf..853b80d8a 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
801void TextureCacheRuntime::Finish() { 806void 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;
25using VideoCommon::SlotVector; 26using VideoCommon::SlotVector;
26using VideoCore::Surface::PixelFormat; 27using VideoCore::Surface::PixelFormat;
27 28
28class ASTCDecoderPass;
29class BlitImageHelper; 29class BlitImageHelper;
30class DescriptorPool;
30class Device; 31class Device;
31class Image; 32class Image;
32class ImageView; 33class ImageView;
33class Framebuffer; 34class Framebuffer;
34class RenderPassCache; 35class RenderPassCache;
35class StagingBufferPool; 36class StagingBufferPool;
37class UpdateDescriptorQueue;
36class Scheduler; 38class Scheduler;
37 39
38class TextureCacheRuntime { 40class 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);