forked from ShuriZma/suyu
1
0
Fork 0

shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware

This commit is contained in:
FernandoS27 2021-04-05 08:56:58 +02:00 committed by ameerj
parent 9e6fe430bd
commit 72daa2a039
2 changed files with 4 additions and 2 deletions

View File

@ -45,7 +45,7 @@ Id ImageType(EmitContext& ctx, const TextureDescriptor& desc) {
case TextureType::ShadowCube: case TextureType::ShadowCube:
return ctx.TypeImage(type, spv::Dim::Cube, true, false, false, 1, format); return ctx.TypeImage(type, spv::Dim::Cube, true, false, false, 1, format);
case TextureType::ShadowArrayCube: case TextureType::ShadowArrayCube:
return ctx.TypeImage(type, spv::Dim::Cube, false, true, false, 1, format); return ctx.TypeImage(type, spv::Dim::Cube, true, true, false, 1, format);
} }
throw InvalidArgument("Invalid texture type {}", desc.type); throw InvalidArgument("Invalid texture type {}", desc.type);
} }

View File

@ -6,6 +6,7 @@
#include <cstddef> #include <cstddef>
#include <fstream> #include <fstream>
#include <memory> #include <memory>
#include <thread>
#include <vector> #include <vector>
#include "common/bit_cast.h" #include "common/bit_cast.h"
@ -607,7 +608,8 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::GPU& gpu_,
scheduler{scheduler_}, descriptor_pool{descriptor_pool_}, scheduler{scheduler_}, descriptor_pool{descriptor_pool_},
update_descriptor_queue{update_descriptor_queue_}, render_pass_cache{render_pass_cache_}, update_descriptor_queue{update_descriptor_queue_}, render_pass_cache{render_pass_cache_},
buffer_cache{buffer_cache_}, texture_cache{texture_cache_}, buffer_cache{buffer_cache_}, texture_cache{texture_cache_},
workers(11, "yuzu:PipelineBuilder"), serialization_thread(1, "yuzu:PipelineSerialization") { workers(std::thread::hardware_concurrency() - 1, "yuzu:PipelineBuilder"),
serialization_thread(1, "yuzu:PipelineSerialization") {
const auto& float_control{device.FloatControlProperties()}; const auto& float_control{device.FloatControlProperties()};
const VkDriverIdKHR driver_id{device.GetDriverID()}; const VkDriverIdKHR driver_id{device.GetDriverID()};
base_profile = Shader::Profile{ base_profile = Shader::Profile{