From 18bd24b9c72b7e395dddc527bbf5dca7e438058c Mon Sep 17 00:00:00 2001 From: Samo Z Date: Sat, 30 Nov 2024 20:00:06 +0100 Subject: [PATCH] only set concurrent compilation if Metal 3 is available --- src/Cafe/HW/Latte/Renderer/Metal/LatteToMtl.cpp | 1 - src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h | 7 ++++++- src/Cafe/HW/Latte/Renderer/Metal/RendererShaderMtl.cpp | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Cafe/HW/Latte/Renderer/Metal/LatteToMtl.cpp b/src/Cafe/HW/Latte/Renderer/Metal/LatteToMtl.cpp index 9de3bd1c..6c4a251e 100644 --- a/src/Cafe/HW/Latte/Renderer/Metal/LatteToMtl.cpp +++ b/src/Cafe/HW/Latte/Renderer/Metal/LatteToMtl.cpp @@ -2,7 +2,6 @@ #include "Cemu/Logging/CemuLogging.h" #include "HW/Latte/Core/LatteTextureLoader.h" #include "HW/Latte/Renderer/Metal/MetalCommon.h" -#include "Metal/MTLPixelFormat.hpp" std::map MTL_COLOR_FORMAT_TABLE = { {Latte::E_GX2SURFFMT::INVALID_FORMAT, {MTL::PixelFormatInvalid, MetalDataType::NONE, 0}}, diff --git a/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h b/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h index 3f508ae8..6a5db69b 100644 --- a/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h +++ b/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h @@ -6,7 +6,6 @@ #include "Cafe/HW/Latte/Renderer/Metal/MetalPerformanceMonitor.h" #include "Cafe/HW/Latte/Renderer/Metal/MetalOutputShaderCache.h" #include "Cafe/HW/Latte/Renderer/Metal/MetalAttachmentsInfo.h" -#include struct MetalBufferAllocation { @@ -277,6 +276,12 @@ public: // Helpers MetalPerformanceMonitor& GetPerformanceMonitor() { return m_performanceMonitor; } + void SetShouldMaximizeConcurrentCompilation(bool shouldMaximizeConcurrentCompilation) + { + if (m_supportsMetal3) + m_device->setShouldMaximizeConcurrentCompilation(shouldMaximizeConcurrentCompilation); + } + bool IsCommandBufferActive() const { return (m_currentCommandBuffer.m_commandBuffer && !m_currentCommandBuffer.m_commited); diff --git a/src/Cafe/HW/Latte/Renderer/Metal/RendererShaderMtl.cpp b/src/Cafe/HW/Latte/Renderer/Metal/RendererShaderMtl.cpp index ab33e071..c77443c8 100644 --- a/src/Cafe/HW/Latte/Renderer/Metal/RendererShaderMtl.cpp +++ b/src/Cafe/HW/Latte/Renderer/Metal/RendererShaderMtl.cpp @@ -89,12 +89,12 @@ private: void RendererShaderMtl::ShaderCacheLoading_begin(uint64 cacheTitleId) { // Maximize shader compilation speed - static_cast(g_renderer.get())->GetDevice()->setShouldMaximizeConcurrentCompilation(true); + static_cast(g_renderer.get())->SetShouldMaximizeConcurrentCompilation(true); } void RendererShaderMtl::ShaderCacheLoading_end() { - static_cast(g_renderer.get())->GetDevice()->setShouldMaximizeConcurrentCompilation(false); + static_cast(g_renderer.get())->SetShouldMaximizeConcurrentCompilation(false); } void RendererShaderMtl::ShaderCacheLoading_Close()