Metal support since 2 July 2020 with v1.23.Warcraft III's mod scene is grossly underrated, I've muttered into many a pint glass. Metal support since 25 October 2019 with v1.2 Metal support in early access since 6 October 2020 Ī port using MoltenVK was released as vkQuake2. The option to use this became available on. MoltenVK was announced on 26 February 2018. Metal support since 21 February 2019 with v1.2 macOS games using Metal for rendering are listed below. Adoption Īccording to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-level frameworks, as of June 2017.
NVIDIA GPUs are supported but Metal drivers for newer devices (10 Series and newer) are not available since macOS Mojave. On macOS, Metal also supports Intel HD and Iris Graphics from the HD 4000 series or newer, AMD GCN, and AMD RDNA GPUs. On iOS, tvOS, and macOS, Metal supports Apple-designed SoCs from the Apple A7 or newer. Macs using Apple silicon will feature Apple GPUs with a feature set combining what was previously available on macOS and iOS, and will be able to take advantage of features tailored to the tile based deferred rendering (TBDR) architecture of Apple GPUs.
Īt the 2020 WWDC, Apple announced the migration of the Mac to Apple silicon. Metal 2 enables more efficient profiling and debugging in Xcode, accelerated machine learning, lower CPU workload, support for virtual reality on macOS, and specificities of the Apple A11 GPU, in particular. Metal 2 is not a separate API from Metal and is supported by the same hardware. On Jat WWDC, Apple announced the second version of Metal, to be supported by macOS High Sierra, iOS 11 and tvOS 11. Metal has been available since Jon iOS devices powered by Apple A7 or later, and since Jon Macs (2012 models or later) running OS X El Capitan. Metal Performance Shaders is a highly optimized library of graphics functions that can help application developers achieve great performance at the same time decrease work on maintaining GPU family specific functions.
Application developers also have the preference on how GPU commands are executed on which GPUs and provides suggestion on which GPU a certain command is most efficient to execute (commands to render a scene can be executed by the discrete GPU while post-processing and display can be handled by the integrated GPU). Application developers can choose between the low-power integrated GPU of the CPU, the discrete GPU (on certain MacBooks and Macs) or an external GPU connected through Thunderbolt. On macOS, Metal can provide application developers the discretion to specify which GPU to execute. Metal can also enforce a resource's state during a command encoder's lifetime.
Resources can be allocated on the CPU, GPU, or both and provides facilities to update and synchronize allocated resources. Metal offers application developers the flexibility where to create Metal resources (buffers, textures). Metal uses a specific shading language based on C++14, implemented using Clang and LLVM. Metal improves the capabilities of GPGPU programming by using compute shaders.
Lastly, render states are pre-computed beforehand, allowing the GPU driver to know in advance how to configure and optimize the render pipeline before command execution. Additionally, command encoding is CPU independent thus applications can encode commands to each CPU thread independently. The application controls when to wait for the execution to complete thus allowing application developers to increase throughput by encoding other commands while commands are executed on the GPU or save power by explicitly waiting for GPU execution to complete. Commands are encoded beforehand and then submitted to the GPU for asynchronous execution. Metal aims to provide low-overhead access to the GPU.
Since MSL is C++-based, you will find it familiar and easy to use." According to Apple promotional materials: "MSL is a single, unified language that allows tighter integration between the graphics and compute programs. Full-blown GPU execution is controlled via the Metal Shading Language. Metal is an object-oriented API that can be invoked using the Swift, Objective-C or C++17 programming languages. It can be compared to low-level APIs on other platforms such as Vulkan and DirectX 12. It is intended to improve performance by offering low-level access to the GPU hardware for apps on iOS, iPadOS, macOS, and tvOS. Metal combines functions similar to OpenGL and OpenCL in one API. Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader API created by Apple. Shading Language: C++14, Runtime/API: Objective-C