summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar FernandoS272021-04-05 08:56:58 +0200
committerGravatar ameerj2021-07-22 21:51:26 -0400
commit72daa2a039d58d23b0dca035bb5f6af8b10ce97b (patch)
treec971b1e78869a84198a2856b20ac00d31a04bf47
parentshader: Fix splits on blocks using indirect branches (diff)
downloadyuzu-72daa2a039d58d23b0dca035bb5f6af8b10ce97b.tar.gz
yuzu-72daa2a039d58d23b0dca035bb5f6af8b10ce97b.tar.xz
yuzu-72daa2a039d58d23b0dca035bb5f6af8b10ce97b.zip
shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware
-rw-r--r--src/shader_recompiler/backend/spirv/emit_context.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.cpp b/src/shader_recompiler/backend/spirv/emit_context.cpp
index 5ef637fe7..002b305dc 100644
--- a/src/shader_recompiler/backend/spirv/emit_context.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_context.cpp
@@ -45,7 +45,7 @@ Id ImageType(EmitContext& ctx, const TextureDescriptor& desc) {
45 case TextureType::ShadowCube: 45 case TextureType::ShadowCube:
46 return ctx.TypeImage(type, spv::Dim::Cube, true, false, false, 1, format); 46 return ctx.TypeImage(type, spv::Dim::Cube, true, false, false, 1, format);
47 case TextureType::ShadowArrayCube: 47 case TextureType::ShadowArrayCube:
48 return ctx.TypeImage(type, spv::Dim::Cube, false, true, false, 1, format); 48 return ctx.TypeImage(type, spv::Dim::Cube, true, true, false, 1, format);
49 } 49 }
50 throw InvalidArgument("Invalid texture type {}", desc.type); 50 throw InvalidArgument("Invalid texture type {}", desc.type);
51} 51}
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index f88ab67ae..088de7001 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -6,6 +6,7 @@
6#include <cstddef> 6#include <cstddef>
7#include <fstream> 7#include <fstream>
8#include <memory> 8#include <memory>
9#include <thread>
9#include <vector> 10#include <vector>
10 11
11#include "common/bit_cast.h" 12#include "common/bit_cast.h"
@@ -607,7 +608,8 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::GPU& gpu_,
607 scheduler{scheduler_}, descriptor_pool{descriptor_pool_}, 608 scheduler{scheduler_}, descriptor_pool{descriptor_pool_},
608 update_descriptor_queue{update_descriptor_queue_}, render_pass_cache{render_pass_cache_}, 609 update_descriptor_queue{update_descriptor_queue_}, render_pass_cache{render_pass_cache_},
609 buffer_cache{buffer_cache_}, texture_cache{texture_cache_}, 610 buffer_cache{buffer_cache_}, texture_cache{texture_cache_},
610 workers(11, "yuzu:PipelineBuilder"), serialization_thread(1, "yuzu:PipelineSerialization") { 611 workers(std::thread::hardware_concurrency() - 1, "yuzu:PipelineBuilder"),
612 serialization_thread(1, "yuzu:PipelineSerialization") {
611 const auto& float_control{device.FloatControlProperties()}; 613 const auto& float_control{device.FloatControlProperties()};
612 const VkDriverIdKHR driver_id{device.GetDriverID()}; 614 const VkDriverIdKHR driver_id{device.GetDriverID()};
613 base_profile = Shader::Profile{ 615 base_profile = Shader::Profile{