„Metal (API)“ – Versionsunterschied
[ungesichtete Version] | [ungesichtete Version] |
Zeile 485: | Zeile 485: | ||
|4 April 2014 |
|4 April 2014 |
||
|22 October 2018 |
|22 October 2018 |
||
|OpenGL Renderer replaced with Vulkan via MoltenVK in patch 4.2.5 |
|OpenGL Renderer replaced with Vulkan via MoltenVK wrapper (translates Vulkan API calls to Metal) in patch 4.2.5 |
||
|} |
|} |
||
Version vom 28. Juni 2021, 04:59 Uhr
Vorlage:Confused Vorlage:Short description Vorlage:Use mdy dates Vorlage:Infobox software Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader API created by Apple. It debuted in iOS 8. Metal combines functions similar to OpenGL and OpenCL in one API. It is intended to improve performance by offering low-level access to the GPU hardware for apps on iOS, iPadOS, macOS, and tvOS. It can be compared to low-level APIs on other platforms such as Vulkan and DirectX 12.
Metal is an object-oriented API that can be invoked using the Swift or Objective-C programming languages. Full-blown GPU execution is controlled via the Metal Shading Language. According to Apple promotional materials: "MSL [Metal Shading Language] is a single, unified language that allows tighter integration between the graphics and compute programs. Since MSL is C++-based, you will find it familiar and easy to use."[1]
Features
Metal aims to provide low-overhead access to the GPU. Commands are encoded beforehand and then submitted to the GPU for asynchronous execution. 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. Additionally, command encoding is CPU independent thus applications can encode commands to each CPU thread independently. 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. [2]
Metal improves the capabilities of GPGPU programming by using compute shaders. Metal uses a specific shading language based on C++14, implemented using Clang and LLVM.[3]
Metal offers application developers the flexibility where to create Metal resources (buffers, textures). Resources can be allocated on the CPU, GPU, or both and provides facilities to update and synchronize allocated resources. Metal can also enforce a resource's state during a command encoder's lifetime. [4] [5]
On macOS, Metal can provide application developers the discretion to specify which GPU to execute. 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. 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). [6]
Metal Performance Shaders
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. [7] It provides functions including:
- Image filtering algorithms
- Neural network processing
- Advanced math operations
- Ray tracing
History
Metal has been available since June 2, 2014 on iOS devices powered by Apple A7 or later,[8] and since June 8, 2015 on Macs (2012 models or later) running OS X El Capitan.[9]
On June 5, 2017 at WWDC, Apple announced the second version of Metal, to be supported by macOS High Sierra, iOS 11 and tvOS 11. Metal 2 is not a separate API from Metal and is supported by the same hardware. 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.[10]
At the 2020 WWDC, Apple announced the migration of the Mac to Apple silicon. 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.[11]
Supported GPUs
On iOS, tvOS, and macOS, Metal supports Apple-designed SoCs from the Apple A7 or newer. On macOS, Metal also supports Intel HD and Iris Graphics from the HD 4000 series or newer, AMD GCN, and AMD RDNA GPUs. NVIDIA GPUs are supported but Metal drivers for newer devices (10 Series and newer) are not available since macOS Mojave. [12]
Adoption
According to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-level frameworks, as of June 2017.[13] macOS games using Metal for rendering are listed below.
Title | Developer (macOS version) | Game engine | MacOS release date (OpenGL) | Metal-based release date | Metal support notes |
---|---|---|---|---|---|
Civilization VI | Aspyr Media | LORE | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 5 April 2019Vorlage:Citation needed | |
Batman: Arkham City | Feral Interactive | Unreal Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 21 February 2019 with v1.2Vorlage:Citation needed | |
Dota 2 | Valve | Source 2 | Vorlage:dts ist VERALTET – siehe dort.
|
MoltenVK was announced on Vorlage:dts ist VERALTET – siehe dort. .[14] The option to use this became available on Vorlage:dts ist VERALTET – siehe dort. .[15]
| |
Quake II | id Software | Quake II engine | Vorlage:dts ist VERALTET – siehe dort.
|
A port using MoltenVK was released as vkQuake2.[16] | |
Tomb Raider | Feral Interactive | Foundation Engine | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support with v1.2 in July 2019Vorlage:Citation needed | |
Rise of the Tomb Raider | Feral Interactive | Foundation Engine | Vorlage:dts ist VERALTET – siehe dort.
|
||
Shadow of the Tomb Raider | Feral Interactive | Foundation Engine | 2019 | ||
F1 2016 | Feral Interactive | EGO Engine 4.0 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Life Is Strange 2 | Feral Interactive | Unreal Engine 4 | 2019 | ||
Life Is Strange: Before the Storm | Feral Interactive | Unity Engine | Vorlage:dts ist VERALTET – siehe dort.
|
||
Divinity: Original Sin II | Elverils | Divinity Engine 2 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Baldur's Gate III | Elverils | Divinity Engine 4.0 | N. N. | Metal support in early access since Vorlage:dts ist VERALTET – siehe dort. Vorlage:Citation needed
| |
Company of Heroes 2 | Feral Interactive | Essence Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since Vorlage:dts ist VERALTET – siehe dort. Vorlage:Citation needed
| |
Hitman | Feral Interactive | Glacier 2 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Sid Meier's Railroads! | Feral Interactive | Gamebryo | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since Vorlage:dts ist VERALTET – siehe dort. Vorlage:Citation needed
| |
Warhammer 40,000: Dawn of War III | Feral Interactive | Essence Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Total War: Rome Remastered | Feral Interactive | TW Engine 2 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Total War: Three Kingdoms | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Total War: Warhammer | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Total War: Warhammer II | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Total War Saga: Thrones of Britannia | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Total War Saga: Troy | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Medieval II: Total War | Feral Interactive | TW Engine 2 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 25 October 2018Vorlage:Citation needed | |
Empire: Total War | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 16 December 2019Vorlage:Citation needed | |
Napoleon: Total War | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 25 October 2019 with v1.2Vorlage:Citation needed | |
Total War: Shogun 2 | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 4 October 2019Vorlage:Citation needed | |
Total War: Shogun 2: Fall of the Samurai | Feral Interactive | TW Engine 3 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since 4 October 2019Vorlage:Citation needed | |
Bioshock Remastered | Feral Interactive | Unreal Engine 2.5 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Bioshock 2 Remastered | Feral Interactive | Unreal Engine 2.5 | Vorlage:dts ist VERALTET – siehe dort.
|
||
F1 2017 | Feral Interactive | EGO Engine 4.0 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Deus Ex: Mankind Divided | Feral Interactive | Dawn Engine | Vorlage:dts ist VERALTET – siehe dort.
|
||
DiRT Rally | Feral Interactive | EGO Engine 2.5 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Ballistic Overkill | Aquiris Game Studio | Unity Engine 5 | Vorlage:dts ist VERALTET – siehe dort.
|
||
BattleTech | Harebrained Schemes | Unity Engine 5 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Mafia III | Aspyr Media | Illusion Engine | Vorlage:dts ist VERALTET – siehe dort.
|
||
World of Warcraft | Blizzard Entertainment | WoW Engine | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since August 2016Vorlage:Citation needed | |
Starcraft | Blizzard Entertainment | Modified Warcraft II engine | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since Vorlage:dts ist VERALTET – siehe dort. with v1.23.5Vorlage:Citation needed
| |
StarCraft II | Blizzard Entertainment | SC2 Engine | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support in beta since Vorlage:dts ist VERALTET – siehe dort. Vorlage:Citation needed
| |
Heroes of the Storm | Blizzard Entertainment | SC2 Engine | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support in beta since Vorlage:dts ist VERALTET – siehe dort. (temporarily removed on Vorlage:DTS[17] until ?)Vorlage:Citation needed
| |
Fortnite | Epic Games | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Obduction | Cyan Worlds | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Everspace | Rockfish | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Ark: Survival Evolved | Studio Wildcard | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Observer | Bloober Team | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Unreal Tournament | Epic Games | Unreal Engine 4 | Vorlage:Cancelled | Metal support since January 2017Vorlage:Citation needed | |
Refunct | Dominique Grieshofer | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Cities: Skylines | Paradox Interactive | Unity Engine 5 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support since Vorlage:DTSVorlage:Citation needed | |
Universe Sandbox | Giant Army | Unity Engine 5 | N. N. | Metal support in beta since June 2017Vorlage:Citation needed | |
War Thunder | Gaijin Entertainment | Dagor Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support added Vorlage:dts ist VERALTET – siehe dort. (removed in ? 2018 and reintroduced Vorlage:dts ist VERALTET – siehe dort. )Vorlage:Citation needed
| |
The Witness | Thekla, Inc | Thekla Engine | Vorlage:dts ist VERALTET – siehe dort.
|
||
Micro Machines World Series | Virtual Programming | Unity Engine 5 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Guardians of the Galaxy: The Telltale Series | Telltale Games | Telltale Tool | Vorlage:dts ist VERALTET – siehe dort.
|
||
Batman: The Enemy Within | Telltale Games | Telltale Tool | Vorlage:dts ist VERALTET – siehe dort.
|
||
Minecraft: Story Mode - Season Two | Telltale Games | Telltale Tool | Vorlage:dts ist VERALTET – siehe dort.
|
||
ARMA 3 | Virtual Programming | Real Virtuality | N. N. | Metal support in beta since Vorlage:dts ist VERALTET – siehe dort. Vorlage:Citation needed
| |
MXGP3 | Virtual Programming | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
Gravel | Virtual Programming | Unreal Engine 4 | Vorlage:dts ist VERALTET – siehe dort.
|
||
X-Plane 11 | Laminar Research | Custom engine | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support in beta since Vorlage:dts ist VERALTET – siehe dort. [18]
| |
Headlander | Double Fine Productions | Buddha Engine | Vorlage:dts ist VERALTET – siehe dort.
|
||
The Sims 4 | Maxis | SmartSim | Vorlage:dts ist VERALTET – siehe dort.
|
Metal support added Vorlage:dts ist VERALTET – siehe dort. Vorlage:Citation needed
| |
The Elder Scrolls Online | Zenimax Online Studios | Custom | 4 April 2014 | 22 October 2018 | OpenGL Renderer replaced with Vulkan via MoltenVK wrapper (translates Vulkan API calls to Metal) in patch 4.2.5 |
See also
- Direct3D – DirectX 12 introduces low-level APIs
- Mantle – low-level API by AMD
- Vulkan – low-overhead successor to OpenGL
- MoltenVK - software compatibility library to run Vulkan software on top of the Metal API
- WebGPU
References
External links
- Metal for Developers
- Metal Programming Guide (preliminary)
- WWDC14 demo; extended version
- Install macOS 10.14 Mojave on Mac Pro (Mid 2010) and Mac Pro (Mid 2012) - Apple article explaining what GPUs are compatible with Apple's Metal APIs on Mac OS 10.14 (Mojave) operating system
- ↑ Apple Inc.: Metal Shading Language Specification.
- ↑ Setting Up a Command Structure. Apple Inc.
- ↑ Metal Shading Language Guide. 8. September 2014, abgerufen am 10. September 2014.
- ↑ Apple Inc.: Setting Resource Storage Mode.
- ↑ Synchronizing a Managed Resource. Apple Inc.
- ↑ GPU Selection in macOS. Apple Inc.
- ↑ Metal Performance Shaders.
- ↑ Same Machkovech: Apple gets heavy with gaming, announces Metal development platform. In: Ars Technica. Condé Nast, 2. Juni 2014 .
- ↑ Colin Smith, Starlayne Meza: Apple Announces OS X El Capitan with Refined Experience & Improved Performance. In: Newsroom. Apple, 8. Juni 2015 .
- ↑ Archived copy of the Metal homepage, November 2017. In: Apple Developer. Apple via Wayback Machine, 20. November 2017, archiviert vom am 20. November 2017 .
- ↑ Bring your Metal app to Apple Silicon Macs. In: developer.apple.com. Abgerufen am 13. Juli 2020.
- ↑ Marco Chiappetta: Apple Turns Its Back On Customers And NVIDIA With macOS Mojave. 11. Dezember 2018 .
- ↑ Apple Inc.: WWDC 2017 Platforms State of the Union.
- ↑ Vulkan Applications Enabled on Apple Platforms, Khronos Group Press Release. Abgerufen am 24. Februar 2021 (amerikanisches Englisch).
- ↑ Michael Larabel: Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good. Phoronix, 1. Juni 2018, abgerufen am 5. Juni 2018.
- ↑ Vorlage:Cite tweet
- ↑ HEROES OF THE STORM BALANCE PATCH NOTES — NOVEMBER 29, 2017. In: news.blizzard.com. 29. November 2017 (englisch).
- ↑ X-Plane 11.50 Public Beta 1: Vulkan and Metal Are Here. In: X-Plane Developer. 2. April 2020, abgerufen am 2. April 2020 (amerikanisches Englisch).