dolphin/Source/Core/VideoBackends/Metal
Pierre de La Morinerie 0ecfaf3b9e
Metal: enable concurrent compilation only if available
Bug: https://bugs.dolphin-emu.org/issues/13404

On macOS 13.6 / Intel HD 5000, Dolphin crashes with this message:

> -[MTLIGAccelDevice setShouldMaximizeConcurrentCompilation:]: unrecognized selector

This should be available on all macOS 13.3+ systems – but when using OCLP drivers,
some devices use an older version of Metal.framework, which doesn't expose the selector.

This concerns Intel Ivy Bridge, Haswell and Nvidia Kepler when using OCLP on macOS 13.3
or newer.
(See
34676702f4/docs/PATCHEXPLAIN.md?plain=1#L354C1-L354C83)

As the behavior is an optional optimization anyway, perform a dynamic
detection to avoid crashing if the feature is not available.
2023-11-24 15:09:25 +01:00
..
CMakeLists.txt Implement AbstactGfx for Metal 2023-01-31 19:41:24 +13:00
MRCHelpers.h VideoBackends: Add Metal renderer 2022-07-21 20:44:19 -05:00
MTLBoundingBox.h VideoBackends: Add Metal renderer 2022-07-21 20:44:19 -05:00
MTLBoundingBox.mm VideoBackends:Metal: Allocate bounding box uploads on a cpu buffer 2023-05-28 17:08:08 -05:00
MTLGfx.h VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan) 2023-06-28 17:15:31 -05:00
MTLGfx.mm Merge pull request #12004 from TellowKrinkle/MetalMultiTarget 2023-09-03 23:31:38 -04:00
MTLMain.mm Metal: enable concurrent compilation only if available 2023-11-24 15:09:25 +01:00
MTLObjectCache.h Lint fixes 2023-02-09 18:36:20 +13:00
MTLObjectCache.mm VideoBackends:Metal: Multi render target support 2023-06-28 00:11:37 -05:00
MTLPerfQuery.h VideoBackends:Metal: Implement PerfQuery 2022-07-21 20:44:19 -05:00
MTLPerfQuery.mm Return quarter value for PerfQuery in all backends. 2023-03-14 02:08:20 +01:00
MTLPipeline.h VideoCommon: store the configuration used to create the AbstractPipeline on the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration 2023-02-09 02:13:53 -06:00
MTLPipeline.mm VideoCommon: store the configuration used to create the AbstractPipeline on the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration 2023-02-09 02:13:53 -06:00
MTLShader.h VideoBackends:Metal: Cache pipelines 2022-07-21 20:44:19 -05:00
MTLShader.mm VideoBackends:Metal: Cache pipelines 2022-07-21 20:44:19 -05:00
MTLStateTracker.h VideoBackends:Metal: Multi render target support 2023-06-28 00:11:37 -05:00
MTLStateTracker.mm VideoBackends:Metal: Multi render target support 2023-06-28 00:11:37 -05:00
MTLTexture.h VideoBackends:Metal: Multi render target support 2023-06-28 00:11:37 -05:00
MTLTexture.mm VideoBackends:Metal: Multi render target support 2023-06-28 00:11:37 -05:00
MTLUtil.h VideoBackends:Metal: Bring back unified memory config 2022-10-08 04:46:05 -05:00
MTLUtil.mm Metal: update binding mapping for SPRV due to change for custom shader uniforms in other backends (Metal is still not supported) 2023-10-06 02:17:43 -05:00
MTLVertexFormat.h VideoBackends:Metal: Cache pipelines 2022-07-21 20:44:19 -05:00
MTLVertexFormat.mm Fix build errors related to formatting non-scoped enums 2022-11-23 13:45:43 -08:00
MTLVertexManager.h VideoBackends:Metal: Use base vertex 2022-07-21 20:44:19 -05:00
MTLVertexManager.mm VideoCommon: De-globalize GeometryShaderManager class. 2022-12-29 15:33:19 +01:00
VideoBackend.h VideoCommon: Pass WindowSystemInfo to InitBackendInfo 2023-06-08 22:07:39 -07:00