mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	Remove unneeded newlines, optional Registry in shader params
Addressing feedback from Rodrigo
This commit is contained in:
		| @@ -78,15 +78,14 @@ VKGraphicsPipeline::VKGraphicsPipeline(const VKDevice& device, VKScheduler& sche | |||||||
|                                        const GraphicsPipelineCacheKey& key, |                                        const GraphicsPipelineCacheKey& key, | ||||||
|                                        vk::Span<VkDescriptorSetLayoutBinding> bindings, |                                        vk::Span<VkDescriptorSetLayoutBinding> bindings, | ||||||
|                                        const SPIRVProgram& program) |                                        const SPIRVProgram& program) | ||||||
|     : device{device}, scheduler{scheduler}, hash{key.Hash()}, cache_key{key}, |     : device{device}, scheduler{scheduler}, cache_key{key}, hash{cache_key.Hash()}, | ||||||
|       descriptor_set_layout{CreateDescriptorSetLayout(bindings)}, |       descriptor_set_layout{CreateDescriptorSetLayout(bindings)}, | ||||||
|       descriptor_allocator{descriptor_pool, *descriptor_set_layout}, |       descriptor_allocator{descriptor_pool, *descriptor_set_layout}, | ||||||
|       update_descriptor_queue{update_descriptor_queue}, layout{CreatePipelineLayout()}, |       update_descriptor_queue{update_descriptor_queue}, layout{CreatePipelineLayout()}, | ||||||
|       descriptor_template{CreateDescriptorUpdateTemplate(program)}, modules{CreateShaderModules( |       descriptor_template{CreateDescriptorUpdateTemplate(program)}, modules{CreateShaderModules( | ||||||
|                                                                         program)}, |                                                                         program)}, | ||||||
|       renderpass{renderpass_cache.GetRenderPass(key.renderpass_params)}, pipeline{CreatePipeline( |       renderpass{renderpass_cache.GetRenderPass(cache_key.renderpass_params)}, | ||||||
|                                                                              key.renderpass_params, |       pipeline{CreatePipeline(cache_key.renderpass_params, program)} {} | ||||||
|                                                                              program)} {} |  | ||||||
|  |  | ||||||
| VKGraphicsPipeline::~VKGraphicsPipeline() = default; | VKGraphicsPipeline::~VKGraphicsPipeline() = default; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -94,8 +94,8 @@ private: | |||||||
|  |  | ||||||
|     const VKDevice& device; |     const VKDevice& device; | ||||||
|     VKScheduler& scheduler; |     VKScheduler& scheduler; | ||||||
|  |     const GraphicsPipelineCacheKey cache_key; | ||||||
|     const u64 hash; |     const u64 hash; | ||||||
|     GraphicsPipelineCacheKey cache_key; |  | ||||||
|  |  | ||||||
|     vk::DescriptorSetLayout descriptor_set_layout; |     vk::DescriptorSetLayout descriptor_set_layout; | ||||||
|     DescriptorAllocator descriptor_allocator; |     DescriptorAllocator descriptor_allocator; | ||||||
|   | |||||||
| @@ -298,9 +298,9 @@ VKComputePipeline& VKPipelineCache::GetComputePipeline(const ComputePipelineCach | |||||||
| } | } | ||||||
|  |  | ||||||
| void VKPipelineCache::EmplacePipeline(std::unique_ptr<VKGraphicsPipeline> pipeline) { | void VKPipelineCache::EmplacePipeline(std::unique_ptr<VKGraphicsPipeline> pipeline) { | ||||||
|  |     system.GPU().ShaderNotify().MarkShaderComplete(); | ||||||
|     std::unique_lock lock{pipeline_cache}; |     std::unique_lock lock{pipeline_cache}; | ||||||
|     graphics_cache.at(pipeline->GetCacheKey()) = std::move(pipeline); |     graphics_cache.at(pipeline->GetCacheKey()) = std::move(pipeline); | ||||||
|     system.GPU().ShaderNotify().MarkShaderComplete(); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void VKPipelineCache::OnShaderRemoval(Shader* shader) { | void VKPipelineCache::OnShaderRemoval(Shader* shader) { | ||||||
|   | |||||||
| @@ -128,7 +128,7 @@ void AsyncShaders::QueueOpenGLShader(const OpenGL::Device& device, | |||||||
|         .code_b = std::move(code_b), |         .code_b = std::move(code_b), | ||||||
|         .main_offset = main_offset, |         .main_offset = main_offset, | ||||||
|         .compiler_settings = compiler_settings, |         .compiler_settings = compiler_settings, | ||||||
|         .registry = ®istry, |         .registry = registry, | ||||||
|         .cpu_address = cpu_addr, |         .cpu_address = cpu_addr, | ||||||
|     }; |     }; | ||||||
|     std::unique_lock lock(queue_mutex); |     std::unique_lock lock(queue_mutex); | ||||||
| @@ -144,7 +144,6 @@ void AsyncShaders::QueueVulkanShader(Vulkan::VKPipelineCache* pp_cache, | |||||||
|                                      std::vector<VkDescriptorSetLayoutBinding> bindings, |                                      std::vector<VkDescriptorSetLayoutBinding> bindings, | ||||||
|                                      Vulkan::SPIRVProgram program, |                                      Vulkan::SPIRVProgram program, | ||||||
|                                      Vulkan::GraphicsPipelineCacheKey key) { |                                      Vulkan::GraphicsPipelineCacheKey key) { | ||||||
|  |  | ||||||
|     WorkerParams params{ |     WorkerParams params{ | ||||||
|         .backend = Backend::Vulkan, |         .backend = Backend::Vulkan, | ||||||
|         .pp_cache = pp_cache, |         .pp_cache = pp_cache, | ||||||
| @@ -186,11 +185,10 @@ void AsyncShaders::ShaderCompilerThread(Core::Frontend::GraphicsContext* context | |||||||
|         lock.unlock(); |         lock.unlock(); | ||||||
|  |  | ||||||
|         if (work.backend == Backend::OpenGL || work.backend == Backend::GLASM) { |         if (work.backend == Backend::OpenGL || work.backend == Backend::GLASM) { | ||||||
|             VideoCommon::Shader::Registry registry = *work.registry; |             const ShaderIR ir(work.code, work.main_offset, work.compiler_settings, *work.registry); | ||||||
|             const ShaderIR ir(work.code, work.main_offset, work.compiler_settings, registry); |  | ||||||
|             const auto scope = context->Acquire(); |             const auto scope = context->Acquire(); | ||||||
|             auto program = |             auto program = | ||||||
|                 OpenGL::BuildShader(*work.device, work.shader_type, work.uid, ir, registry); |                 OpenGL::BuildShader(*work.device, work.shader_type, work.uid, ir, *work.registry); | ||||||
|             Result result{}; |             Result result{}; | ||||||
|             result.backend = work.backend; |             result.backend = work.backend; | ||||||
|             result.cpu_address = work.cpu_address; |             result.cpu_address = work.cpu_address; | ||||||
| @@ -210,7 +208,6 @@ void AsyncShaders::ShaderCompilerThread(Core::Frontend::GraphicsContext* context | |||||||
|                 finished_work.push_back(std::move(result)); |                 finished_work.push_back(std::move(result)); | ||||||
|             } |             } | ||||||
|         } else if (work.backend == Backend::Vulkan) { |         } else if (work.backend == Backend::Vulkan) { | ||||||
|  |  | ||||||
|             auto pipeline = std::make_unique<Vulkan::VKGraphicsPipeline>( |             auto pipeline = std::make_unique<Vulkan::VKGraphicsPipeline>( | ||||||
|                 *work.vk_device, *work.scheduler, *work.descriptor_pool, |                 *work.vk_device, *work.scheduler, *work.descriptor_pool, | ||||||
|                 *work.update_descriptor_queue, *work.renderpass_cache, work.key, work.bindings, |                 *work.update_descriptor_queue, *work.renderpass_cache, work.key, work.bindings, | ||||||
|   | |||||||
| @@ -55,7 +55,6 @@ public: | |||||||
|         std::vector<u64> code; |         std::vector<u64> code; | ||||||
|         std::vector<u64> code_b; |         std::vector<u64> code_b; | ||||||
|         Tegra::Engines::ShaderType shader_type; |         Tegra::Engines::ShaderType shader_type; | ||||||
|         std::unique_ptr<Vulkan::VKGraphicsPipeline> pipeline; |  | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     explicit AsyncShaders(Core::Frontend::EmuWindow& emu_window); |     explicit AsyncShaders(Core::Frontend::EmuWindow& emu_window); | ||||||
| @@ -110,7 +109,7 @@ private: | |||||||
|         std::vector<u64> code_b; |         std::vector<u64> code_b; | ||||||
|         u32 main_offset; |         u32 main_offset; | ||||||
|         VideoCommon::Shader::CompilerSettings compiler_settings; |         VideoCommon::Shader::CompilerSettings compiler_settings; | ||||||
|         const VideoCommon::Shader::Registry* registry; |         std::optional<VideoCommon::Shader::Registry> registry; | ||||||
|         VAddr cpu_address; |         VAddr cpu_address; | ||||||
|  |  | ||||||
|         // For Vulkan |         // For Vulkan | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 ameerj
					ameerj