only set concurrent compilation if Metal 3 is available

This commit is contained in:
Samo Z 2024-11-30 20:00:06 +01:00
parent 05b603d652
commit 18bd24b9c7
3 changed files with 8 additions and 4 deletions

View file

@ -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<Latte::E_GX2SURFFMT, MetalPixelFormatInfo> MTL_COLOR_FORMAT_TABLE = {
{Latte::E_GX2SURFFMT::INVALID_FORMAT, {MTL::PixelFormatInvalid, MetalDataType::NONE, 0}},

View file

@ -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 <cstdint>
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);

View file

@ -89,12 +89,12 @@ private:
void RendererShaderMtl::ShaderCacheLoading_begin(uint64 cacheTitleId)
{
// Maximize shader compilation speed
static_cast<MetalRenderer*>(g_renderer.get())->GetDevice()->setShouldMaximizeConcurrentCompilation(true);
static_cast<MetalRenderer*>(g_renderer.get())->SetShouldMaximizeConcurrentCompilation(true);
}
void RendererShaderMtl::ShaderCacheLoading_end()
{
static_cast<MetalRenderer*>(g_renderer.get())->GetDevice()->setShouldMaximizeConcurrentCompilation(false);
static_cast<MetalRenderer*>(g_renderer.get())->SetShouldMaximizeConcurrentCompilation(false);
}
void RendererShaderMtl::ShaderCacheLoading_Close()