„Metal (API)“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
Erste Version, Übersetzung und Überarbeitung aus dem Englischen. Die Liste der Spiele wurde bewußt weg gelassen. |
|||
Zeile 1: | Zeile 1: | ||
{{Infobox Software |
|||
{{confused|text=the MeTaL API by [[S3 Graphics]]}} |
|||
|Name = Metal |
|||
{{short description|iOS, macOS, and tvOS graphics rendering API}} |
|||
|Logo = |
|||
{{Use mdy dates|date=January 2015}} |
|||
|Screenshot = <!-- nur freie Software--> |
|||
{{Infobox software |
|||
|Beschreibung = Eine von [[Apple]] entwickelte Low-Level-, Hardware-beschleunigte 3D-Grafik- und [[Compute-Shader]]-[[Computergrafik]]-[[Programmierschnittstelle|API]] |
|||
| name = Metal |
|||
|Hersteller = [[Apple Inc.]] |
|||
| logo = Metal 2 Logo.png |
|||
|Erscheinungsjahr = 2014 |
|||
| screenshot = File:Vainglory Halcyon Fold map.tif |
|||
|Betriebssystem = [[iOS (Betriebssystem)|iOS]], [[iPadOS]], [[macOS]], [[tvOS]] |
|||
| caption = Apple used the mobile [[multiplayer online battle arena]] game ''[[Vainglory (video game)|Vainglory]]'' to demonstrate Metal's graphics capabilities at the [[iPhone 6]]'s September 2014 announcement event<ref name="Polygon: iPhone 6"/> |
|||
|Kategorie = [[Programmierschnittstelle|API]] |
|||
| developer = Apple Inc. |
|||
|Lizenz = [[Proprietäre Software]] |
|||
| released = {{start date and age|2014|06}} |
|||
|Deutsch = |
|||
| latest release version = 3 |
|||
|Website = [https://developer.apple.com/metal/ developer.apple.com/metal/] |
|||
| latest release date = {{start date and age|2019|06}} |
|||
| programming language = Shading Language: [[C++14]], Runtime/API: [[Objective-C]] |
|||
| operating system = [[iOS]], [[iPadOS]], [[macOS]], [[tvOS]] |
|||
| platform = |
|||
| genre = 3D graphics and compute [[Application programming interface|API]] |
|||
| license = [[Proprietary software|proprietary]] |
|||
| website = {{URL|https://developer.apple.com/metal/}} |
|||
}} |
}} |
||
'''Metal''' is a low-level, low-overhead [[Hardware acceleration|hardware-accelerated]] [[3D graphic]] and [[compute shader]] [[API]] created by [[Apple Inc.|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 [[Computing platform|platforms]] such as [[Vulkan (API)|Vulkan]] and [[DirectX 12]]. |
|||
'''Metal''' ist eine von [[Apple]] entwickelte Low-Level-, Hardware-beschleunigte 3D-Grafik- und [[Compute-Shader]]-[[Computergrafik]]-[[Programmierschnittstelle|API]] mit geringem Overhead. Es debütierte in [[iOS (Betriebssystem)|iOS]] 8. Metal kombiniert Funktionen ähnlich wie [[OpenGL]] und [[OpenCL]] in einer [[API]]. Es soll die Leistung verbessern, indem es für Apps auf iOS, [[iPadOS]], [[macOS]] und [[tvOS]] einen Low-Level-Zugriff auf die GPU-Hardware bietet. Es kann mit Low-Level-Programmierschnittstellen wie [[Vulkan (API)|Vulkan]] und [[DirectX 12]] verglichen werden. |
|||
Metal is an [[Object-oriented programming|object-oriented]] API that can be invoked using the [[Swift (programming language)|Swift]] or [[Objective-C]] [[programming language]]s. 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."<ref>{{cite web|last1=Apple Inc.|title=Metal Shading Language Specification|url=https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf}}</ref> |
|||
Metal ist eine objektorientierte Programmierschnittstelle, die mit den Programmiersprachen [[Swift (Programmiersprache)|Swift]] oder [[Objective-C]] aufgerufen werden kann. Die vollständige GPU-Ausführung wird über die Metal Shading Language gesteuert. |
|||
==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. <ref>{{cite web|publisher=Apple Inc.|title=Setting Up a Command Structure|url=https://developer.apple.com/documentation/metal/setting_up_a_command_structure}}</ref> |
|||
== Features == |
|||
Metal improves the capabilities of [[GPGPU]] programming by using [[compute kernel|compute shader]]s. Metal uses a specific [[shading language]] based on [[C++14]], implemented using [[Clang]] and [[LLVM]].<ref>{{cite web|url=https://developer.apple.com/library/prerelease/ios/documentation/Metal/Reference/MetalShadingLanguageGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014364|title=Metal Shading Language Guide|date=September 8, 2014|access-date=September 10, 2014}}</ref> |
|||
Metal zielt darauf ab, den Zugriff auf die GPU mit geringem Overhead zu ermöglichen. Befehle werden vorher codiert und dann zur asynchronen Ausführung an die GPU gesendet. Die Anwendung steuert, wann auf den Abschluss einer Ausführung gewartet werden soll, sodass Anwendungsentwickler den Durchsatz erhöhen können, indem sie andere Befehle codieren, während Befehle auf der GPU ausgeführt werden, oder Energie sparen, indem sie explizit auf den Abschluss der GPU-Ausführung warten. Außerdem ist die Befehlscodierung CPU-unabhängig, sodass Anwendungen Befehle für jeden CPU-Thread unabhängig programmieren können. Schließlich werden die Renderstati im Voraus berechnet, sodass der GPU-Treiber im Voraus weiß, wie die Renderpipeline vor der Befehlsausführung konfiguriert und optimiert werden muss. |
|||
Metal verbessert die Fähigkeiten der [[General Purpose Computation on Graphics Processing Unit|GPGPU]]-Programmierung durch die Verwendung von Compute-Shadern. Metal verwendet eine spezielle Shading-Sprache basierend auf [[C++14]], implementiert mit [[Clang]] und [[LLVM]]. |
|||
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. <ref>{{cite web|last1=Apple Inc.|title=Setting Resource Storage Mode|url=https://developer.apple.com/documentation/metal/setting_resource_storage_modes}}</ref> <ref>{{cite web|title=Synchronizing a Managed Resource|publisher=Apple Inc.|url=https://developer.apple.com/documentation/metal/synchronizing_a_managed_resource}}</ref> |
|||
Metal bietet Anwendungsentwicklern die Flexibilität, wo Metal-Ressourcen (Puffer, Texturen) erstellt werden können. Ressourcen können auf der CPU, GPU oder beiden zugewiesen werden und bieten Möglichkeiten zum Aktualisieren und Synchronisieren zugewiesener Ressourcen. Metal kann auch den Zustand einer Ressource während der Lebensdauer eines Befehlscodierers erzwingen.<ref>[https://developer.apple.com/documentation/metal/setting_resource_storage_modes Setting Resource Storage Modes]</ref><ref>[https://developer.apple.com/documentation/metal/synchronizing_a_managed_resource Synchronizing a Managed Resource]</ref> |
|||
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). <ref>{{cite web|title=GPU Selection in macOS|publisher=Apple Inc.|url=https://developer.apple.com/documentation/metal/gpu_selection_in_macos}}</ref> |
|||
Auf macOS kann Metal Anwendungsentwicklern die Möglichkeit geben, festzulegen, auf welcher GPU ausgeführt werden soll. Anwendungsentwickler können zwischen der energiesparenden integrierten GPU der CPU, der diskreten GPU (bei bestimmten MacBooks und Macs) oder einer über Thunderbolt angeschlossenen externen GPU wählen. Anwendungsentwickler haben auch die Vorliebe, wie GPU-Befehle auf welchen GPUs ausgeführt werden, und geben Vorschläge, auf welcher GPU ein bestimmter Befehl am effizientesten auszuführen ist (Befehle zum Rendern einer Szene können von der diskreten GPU ausgeführt werden, während Nachbearbeitung und Anzeige von der integrierten GPU verarbeitet werden). |
|||
===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. <ref>{{cite web|title=Metal Performance Shaders|url=https://developer.apple.com/documentation/metalperformanceshaders}}</ref> It provides functions including: |
|||
=== Metal Performance Shader === |
|||
* Image filtering algorithms |
|||
Metal Performance Shaders ist eine hochoptimierte Bibliothek von Grafikfunktionen, die Anwendungsentwicklern dabei helfen kann, eine hervorragende Leistung zu erzielen und gleichzeitig den Aufwand für die Aufrechterhaltung der spezifischen Funktionen der GPU-Familie zu verringern.<ref>[https://developer.apple.com/documentation/metalperformanceshaders Metal Performance Shaders]</ref> Sie bietet Funktionen wie: |
|||
* Neural network processing |
|||
* Bildfilteralgorithmen |
|||
* Advanced math operations |
|||
* Verarbeitung neuronaler Netze |
|||
* Ray tracing |
|||
* Erweiterte mathematische Operationen |
|||
* Raytracing |
|||
== |
== Geschichte == |
||
Metal ist seit dem 2. Juni 2014 auf iOS-Geräten mit Apple A7 oder höher verfügbar und seit 8. Juni 2015 auf Macs (2012-Modelle oder höher). |
|||
Metal has been available since June 2, 2014 on [[List of iOS devices|iOS devices]] powered by [[Apple A7]] or later,<ref>{{Cite web |url=https://arstechnica.com/apple/2014/06/apple-gets-heavy-with-gaming-announces-metal-development-platform/ |title=Apple gets heavy with gaming, announces Metal development platform |work=[[Ars Technica]] |publisher=[[Condé Nast]] |date=2 June 2014 |first=Same |last=Machkovech}}</ref> and since June 8, 2015 on [[Macintosh|Macs]] (2012 models or later) running [[OS X El Capitan]].<ref>{{Cite web |url=https://www.apple.com/pr/library/2015/06/08Apple-Announces-OS-X-El-Capitan-with-Refined-Experience-Improved-Performance.html |title=Apple Announces OS X El Capitan with Refined Experience & Improved Performance |work=Newsroom |publisher=[[Apple Inc.|Apple]] |date=8 June 2015 |location=[[San Francisco]] |first=Colin |last=Smith |first2=Starlayne |last2=Meza}}</ref> |
|||
Am 5. Juni 2017 kündigte Apple auf der [[WWDC]] die zweite Version von Metal an, die von macOS High Sierra, iOS 11 und tvOS 11 unterstützt wird. Metal 2 ist keine separate API von Metal und wird von derselben Hardware unterstützt. Metal 2 ermöglicht effizienteres Profiling und Debugging in Xcode, beschleunigtes maschinelles Lernen, geringere CPU-Auslastung, Unterstützung für Virtual Reality auf macOS und insbesondere Besonderheiten der Apple A11 GPU. |
|||
Auf der WWDC 2020 kündigte Apple die Migration des Mac auf Apple silicon an. Macs, die Apple silicon verwenden, verfügen über Apple-GPUs mit einem Funktionssatz, der das kombiniert, was zuvor auf macOS und iOS verfügbar war, und ist in der Lage, TBDR-Funktionen zu nutzen.<ref>[https://developer.apple.com/videos/play/wwdc2020/10631/ Bring your Metal app to Apple silicon Macs]</ref> |
|||
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 (computer programming)|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.<ref>{{cite web |title=Archived copy of the Metal homepage, November 2017 |url=https://developer.apple.com/metal/ |website=Apple Developer |publisher=[[Apple Inc.|Apple]] |via=[[Wayback Machine]] |date=20 November 2017 |url-status=bot: unknown |archive-url=https://web.archive.org/web/20171120014933/https://developer.apple.com/metal/ |archive-date=November 20, 2017 |df=mdy-all }}</ref> |
|||
== Siehe auch == |
|||
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.<ref>{{cite web|url=https://developer.apple.com/videos/play/wwdc2020/10631|title=Bring your Metal app to Apple Silicon Macs|website=developer.apple.com|access-date=2020-07-13}}</ref> |
|||
* [[DirectX#DirectX 12|DirectX 12]] |
|||
* [[MoltenVK]] |
|||
* [[Vulkan (API)|Vulkan]], Nachfolger von OpenGL. |
|||
* [[WebGPU]], Arbeitstitel eines zukünftigen Web-Standards sowie [[JavaScript]] [[Programmierschnittstelle|API]] für hardwarenahe, beschleunigte Grafik- und Compute-Berechnungen mit dem Ziel, WebGL abzulösen |
|||
== |
== Weblinks == |
||
On iOS, tvOS, and macOS, Metal supports Apple-designed [[system on chip|SoCs]] from the [[Apple A7]] or newer. On macOS, Metal also supports [[Intel HD and Iris Graphics]] from the HD 4000 series or newer, [[Graphics Core Next|AMD GCN]], and [[RDNA (microarchitecture)|AMD RDNA]] GPUs. NVIDIA GPUs are supported but Metal drivers for newer devices (10 Series and newer) are not available since macOS Mojave. <ref>{{cite web|title=Apple Turns Its Back On Customers And NVIDIA With macOS Mojave|url=https://www.forbes.com/sites/marcochiappetta/2018/12/11/apple-turns-its-back-on-customers-and-nvidia-with-macos-mojave|first=Marco |last=Chiappetta|date=11 December 2018}}</ref> |
|||
==Adoption== |
|||
According to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-level [[application framework|frameworks]], as of June 2017.<ref>{{cite web|last1=Apple Inc.|title=WWDC 2017 Platforms State of the Union|url=https://developer.apple.com/videos/play/wwdc2017/102/}}</ref> macOS games using Metal for [[Rendering (computer graphics)|rendering]] are listed below. |
|||
{| class="wikitable sortable" |
|||
!Title |
|||
!Developer (macOS version) |
|||
!Game engine |
|||
!MacOS release date (OpenGL) |
|||
!Metal-based release date |
|||
!Metal support notes |
|||
|- |
|||
|''[[Civilization VI]]'' |
|||
|[[Aspyr Media]] |
|||
|LORE |
|||
|{{Dts|24/10/2016}} |
|||
| |
|||
|Metal support since 5 April 2019{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Batman: Arkham City]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Unreal Engine|Unreal Engine 3]] |
|||
|{{Dts|18/10/2013}} |
|||
| |
|||
|Metal support since 21 February 2019 with v1.2{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Dota 2]]'' |
|||
|[[Valve Corporation|Valve]] |
|||
|[[Source 2]] |
|||
|{{Dts|18/07/2013}} |
|||
| |
|||
|[[MoltenVK]] was announced on {{Dts|26/02/2018}}.<ref>{{Cite news|url=https://www.khronos.org/news/press/vulkan-applications-enabled-on-apple-platforms|title=Vulkan Applications Enabled on Apple Platforms|publisher=Khronos Group Press Release|access-date=2021-02-24|language=en-us}}</ref> The option to use this became available on {{Dts|31/05/2018}}.<ref>{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Dota-2-Initial-Mac-Vulkan|title=Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good|last=Larabel|first=Michael|publisher=Phoronix|date=June 1, 2018|access-date=June 5, 2018}}</ref> |
|||
|- |
|||
|''[[Quake II]]'' |
|||
|[[id Software]] |
|||
|[[Quake II engine]] |
|||
| |
|||
|{{Dts|09/02/2019}} |
|||
|A port using [[MoltenVK]] was released as vkQuake2.<ref>{{cite tweet |last=Kondrak |first=Krzysztof| user=k_kondrak |number=1094192063292297217 |date=February 9, 2019 |title=vkQuake2 gets MacOS support |access-date=February 9, 2019}}</ref> |
|||
|- |
|||
|''[[Tomb Raider (2013 video game) |Tomb Raider]]'' |
|||
|[[Feral Interactive]] |
|||
|Foundation Engine |
|||
|{{Dts|17/01/2014}} |
|||
| |
|||
|Metal support with v1.2 in July 2019{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Rise of the Tomb Raider]]'' |
|||
|[[Feral Interactive]] |
|||
|Foundation Engine |
|||
| |
|||
|{{Dts|12/04/2018}} |
|||
| |
|||
|- |
|||
|''[[Shadow of the Tomb Raider]]'' |
|||
|[[Feral Interactive]] |
|||
|Foundation Engine |
|||
| |
|||
|2019 |
|||
| |
|||
|- |
|||
|''[[F1 2016 (video game)|F1 2016]]'' |
|||
|[[Feral Interactive]] |
|||
| [[EGO (game engine)|EGO Engine 4.0]] |
|||
| |
|||
|{{Dts|06/04/2017}} |
|||
| |
|||
|- |
|||
|''[[Life Is Strange 2]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|2019 |
|||
| |
|||
|- |
|||
|''[[Life Is Strange: Before the Storm]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Unity Engine]] |
|||
| |
|||
|{{Dts|13/09/2018}} |
|||
| |
|||
|- |
|||
|''[[Divinity: Original Sin II]]'' |
|||
|Elverils |
|||
|Divinity Engine 2 |
|||
| |
|||
|{{Dts|31/01/2019}} |
|||
| |
|||
|- |
|||
|''[[Baldur's Gate III]]'' |
|||
|Elverils |
|||
|Divinity Engine 4.0 |
|||
|{{TBA}} |
|||
| |
|||
|Metal support in early access since {{Dts|06/10/2020}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Company of Heroes 2]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Essence Engine|Essence Engine 3]] |
|||
|{{Dts|21/01/2015}} |
|||
| |
|||
|Metal support since {{Dts|19/10/2018}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Hitman (2016 video game) |Hitman]]'' |
|||
|[[Feral Interactive]] |
|||
|Glacier 2 |
|||
| |
|||
|{{Dts|20/06/2017}} |
|||
| |
|||
|- |
|||
|''[[Sid Meier's Railroads!]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Gamebryo]] |
|||
|{{Dts|01/11/2012}} |
|||
| |
|||
|Metal support since {{Dts|18/12/2018}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Warhammer 40,000: Dawn of War III]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Essence Engine|Essence Engine 4]] |
|||
| |
|||
|{{Dts|9/6/2017}} |
|||
| |
|||
|- |
|||
|''[[Rome: Total War|Total War: Rome Remastered]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 2 |
|||
| |
|||
|{{Dts|29/4/2021}} |
|||
| |
|||
|- |
|||
|''[[Total War: Three Kingdoms]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
| |
|||
|{{Dts|23/5/2019}} |
|||
| |
|||
|- |
|||
|''[[Total War: Warhammer]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
| |
|||
|{{Dts|19/4/2017}} |
|||
| |
|||
|- |
|||
|''[[Total War: Warhammer II]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
| |
|||
|{{Dts|20/11/2018}} |
|||
| |
|||
|- |
|||
|''[[Total War Saga: Thrones of Britannia]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
| |
|||
|{{Dts|24/05/2018}} |
|||
| |
|||
|- |
|||
|''[[Total War Saga: Troy]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
| |
|||
|{{Dts|13/08/2020}} |
|||
| |
|||
|- |
|||
|''[[Medieval II: Total War]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 2 |
|||
|{{Dts|17/12/2015}} |
|||
| |
|||
|Metal support since 25 October 2018{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Empire: Total War]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
|{{Dts|4/3/2009}} |
|||
| |
|||
|Metal support since 16 December 2019{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Napoleon: Total War]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
|{{Dts|2/7/2013}} |
|||
| |
|||
|Metal support since 25 October 2019 with v1.2{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Total War: Shogun 2]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
|{{Dts|31/7/2014}} |
|||
| |
|||
|Metal support since 4 October 2019{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Total War: Shogun 2: Fall of the Samurai]]'' |
|||
|[[Feral Interactive]] |
|||
|TW Engine 3 |
|||
|{{Dts|18/12/2014}} |
|||
| |
|||
|Metal support since 4 October 2019{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[BioShock|Bioshock Remastered]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Unreal Engine|Unreal Engine 2.5]] |
|||
| |
|||
|{{Dts|22/8/2017}} |
|||
| |
|||
|- |
|||
|''[[BioShock 2|Bioshock 2 Remastered]]'' |
|||
|[[Feral Interactive]] |
|||
|[[Unreal Engine|Unreal Engine 2.5]] |
|||
| |
|||
|{{Dts|22/10/2020}} |
|||
| |
|||
|- |
|||
|''[[F1 2017 (video game)|F1 2017]]'' |
|||
|[[Feral Interactive]] |
|||
| [[EGO (game engine)|EGO Engine 4.0]] |
|||
| |
|||
|{{Dts|25/8/2017}} |
|||
| |
|||
|- |
|||
|''[[Deus Ex: Mankind Divided]]'' |
|||
|[[Feral Interactive]] |
|||
|Dawn Engine |
|||
| |
|||
|{{Dts|12/12/2017}} |
|||
|| |
|||
|- |
|||
|''[[DiRT Rally]]'' |
|||
|[[Feral Interactive]] |
|||
| [[EGO (game engine)|EGO Engine 2.5]] |
|||
| |
|||
|{{Dts|16/11/2017}} |
|||
| |
|||
|- |
|||
|''Ballistic Overkill'' |
|||
|Aquiris Game Studio |
|||
|[[Unity (game engine)|Unity Engine 5]] |
|||
| |
|||
|{{Dts|28/3/2017}} |
|||
| |
|||
|- |
|||
|''[[BattleTech (video game)|BattleTech]]'' |
|||
|[[Harebrained Schemes]] |
|||
|[[Unity (game engine)|Unity Engine 5]] |
|||
| |
|||
|{{Dts|24/4/2018}} |
|||
| |
|||
|- |
|||
|''[[Mafia III]]'' |
|||
|[[Aspyr Media]] |
|||
|Illusion Engine |
|||
| |
|||
|{{Dts|11/5/2017}} |
|||
| |
|||
|- |
|||
|''[[World of Warcraft]]'' |
|||
|[[Blizzard Entertainment]] |
|||
|WoW Engine |
|||
|{{Dts|23/11/2004}} |
|||
| |
|||
|Metal support since August 2016{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[StarCraft_(video_game) |Starcraft]]'' |
|||
|[[Blizzard Entertainment]] |
|||
|Modified Warcraft II engine |
|||
|{{Dts|20/11/2001}} |
|||
| |
|||
|Metal support since {{Dts|02/07/2020}} with v1.23.5{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[StarCraft II]]'' |
|||
|[[Blizzard Entertainment]] |
|||
|SC2 Engine |
|||
|{{Dts|27/7/2010}} |
|||
| |
|||
|Metal support in beta since {{Dts|24/1/2017}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Heroes of the Storm]]'' |
|||
|[[Blizzard Entertainment]] |
|||
|SC2 Engine |
|||
|{{Dts|2/6/2015}} |
|||
| |
|||
|Metal support in beta since {{Dts|24/1/2017}} (temporarily removed on {{DTS|29/11/2017}}<ref>{{Cite web|date=29 November 2017|title=HEROES OF THE STORM BALANCE PATCH NOTES — NOVEMBER 29, 2017|url=https://news.blizzard.com/en-us/heroes-of-the-storm/21273597/heroes-of-the-storm-balance-patch-notes-november-29-2017|url-status=live|access-date=|website=news.blizzard.com|language=en}}</ref> until ?){{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Fortnite]]'' |
|||
|[[Epic Games]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|25/7/2017}} |
|||
| |
|||
|- |
|||
|''[[Obduction (video game)|Obduction]]'' |
|||
|[[Cyan Worlds]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|29/3/2017}} |
|||
| |
|||
|- |
|||
|''[[Everspace]]'' |
|||
|Rockfish |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|26/5/2017}} |
|||
| |
|||
|- |
|||
|''[[Ark: Survival Evolved]]'' |
|||
|[[Studio Wildcard]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|29/8/2017}} |
|||
| |
|||
|- |
|||
|''[[Observer (video game)|Observer]]'' |
|||
|[[Bloober Team]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|24/10/2017}} |
|||
| |
|||
|- |
|||
|''[[Unreal Tournament (cancelled_video_game)|Unreal Tournament]]'' |
|||
|[[Epic Games]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
|{{Cancelled}} |
|||
| |
|||
|Metal support since January 2017{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''Refunct'' |
|||
|Dominique Grieshofer |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|5/9/2016}} |
|||
| |
|||
|- |
|||
|''[[Cities: Skylines]]'' |
|||
|[[Paradox Interactive]] |
|||
|[[Unity (game engine)|Unity Engine 5]] |
|||
|{{Dts|10/3/2015}} |
|||
| |
|||
|Metal support since {{DTS|18/05/2017}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[Universe Sandbox]]'' |
|||
|Giant Army |
|||
|[[Unity (game engine)|Unity Engine 5]] |
|||
|{{TBA}} |
|||
| |
|||
|Metal support in beta since June 2017{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[War Thunder]]'' |
|||
|[[Gaijin Entertainment]] |
|||
|Dagor Engine 4 |
|||
|{{Dts|1/11/2012}} |
|||
| |
|||
|Metal support added {{Dts|24/5/2017}} (removed in ? 2018 and reintroduced {{Dts|27/8/2020}}){{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[The Witness (2016 video game)|The Witness]]'' |
|||
|Thekla, Inc |
|||
| Thekla Engine |
|||
| |
|||
|{{Dts|8/3/2017}} |
|||
| |
|||
|- |
|||
|''[[Micro Machines World Series]]'' |
|||
|[[Virtual Programming (company)|Virtual Programming]] |
|||
|[[Unity (game engine)|Unity Engine 5]] |
|||
| |
|||
|{{Dts|30/6/2017}} |
|||
| |
|||
|-- |
|||
|''[[Guardians of the Galaxy: The Telltale Series]]'' |
|||
|[[Telltale Games]] |
|||
|[[Telltale Tool]] |
|||
| |
|||
|{{Dts|18/4/2017}} |
|||
| |
|||
|- |
|||
|''[[Batman: The Enemy Within]]'' |
|||
|[[Telltale Games]] |
|||
|[[Telltale Tool]] |
|||
| |
|||
|{{Dts|08/08/2017}} |
|||
| |
|||
|- |
|||
|''[[Minecraft: Story Mode - Season Two]]'' |
|||
|[[Telltale Games]] |
|||
|[[Telltale Tool]] |
|||
| |
|||
|{{Dts|11/7/2017}} |
|||
| |
|||
|- |
|||
|''[[ARMA 3]]'' |
|||
|[[Virtual Programming (company)|Virtual Programming]] |
|||
|Real Virtuality |
|||
|{{TBA}} |
|||
| |
|||
|Metal support in beta since {{Dts|17/9/2017}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|''[[MXGP3]]'' |
|||
|[[Virtual Programming (company)|Virtual Programming]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|23/11/2018}} |
|||
| |
|||
|- |
|||
|''[[Gravel (video game)|Gravel]]'' |
|||
|[[Virtual Programming (company)|Virtual Programming]] |
|||
|[[Unreal Engine|Unreal Engine 4]] |
|||
| |
|||
|{{Dts|20/1/2019}} |
|||
| |
|||
|- |
|||
|''[[X-Plane (simulator)|X-Plane 11]]'' |
|||
|[[Laminar Research]] |
|||
|''Custom engine'' |
|||
|{{Dts|30/5/2017}} |
|||
| |
|||
|Metal support in beta since {{Dts|2/4/2020}}<ref>{{Cite web|url=https://developer.x-plane.com/2020/04/x-plane-11-50-public-beta-1-vulkan-and-metal-are-here/|title=X-Plane 11.50 Public Beta 1: Vulkan and Metal Are Here|date=2020-04-02|website=X-Plane Developer|language=en-US|access-date=2020-04-02}}</ref> |
|||
|- |
|||
|''[[Headlander]]'' |
|||
|[[Double Fine Productions]] |
|||
|Buddha Engine |
|||
| |
|||
|{{Dts|18/11/2016}} |
|||
| |
|||
|- |
|||
|''[[The Sims 4]]'' |
|||
|[[Maxis]] |
|||
|SmartSim |
|||
|{{Dts|17/02/2015}} |
|||
| |
|||
|Metal support added {{Dts|12/11/2019}}{{Citation needed|date=May 2021}} |
|||
|- |
|||
|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#DirectX 12|DirectX 12]] introduces low-level APIs |
|||
* [[Mantle (API)|Mantle]] – low-level API by [[AMD]] |
|||
* [[Vulkan (API)|Vulkan]] – low-overhead successor to OpenGL |
|||
* [[MoltenVK]] - software compatibility library to run Vulkan software on top of the Metal API |
|||
* [[WebGPU]] |
|||
==References== |
|||
{{Reflist|refs= |
|||
<ref name="Polygon: iPhone 6">{{cite web|url=http://www.polygon.com/2014/9/9/6127259/vainglory-iphone-6-moba-game-apple |access-date=September 9, 2014 |title=This is the game Apple used to show off iPhone 6 |last=McWhertor |first=Michael |date=September 9, 2014 |work=[[Polygon (website)|Polygon]] |publisher=[[Vox Media]] |archive-url=https://www.webcitation.org/6STIyDsM0?url=http://www.polygon.com/2014/9/9/6127259/vainglory-iphone-6-moba-game-apple |archive-date=September 10, 2014 |url-status=live }}</ref> |
|||
}} |
|||
==External links== |
|||
* [https://developer.apple.com/metal/ Metal for Developers] |
* [https://developer.apple.com/metal/ Metal for Developers] |
||
* [https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014221 Metal Programming Guide] (preliminary) |
* [https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014221 Metal Programming Guide] (preliminary) |
||
* [https://www.youtube.com/watch?v=NRoGwuSDh3E WWDC14 |
* [https://www.youtube.com/watch?v=NRoGwuSDh3E WWDC14 iOS 8 Metal Demo by EPIC Games]; [https://www.youtube.com/watch?v=Br7qVnzxzv8#t=1013 WWDC Recap, Zen Garden & Metal API for iOS8 | News | Unreal Engine] |
||
* [https://support.apple.com/en-us/HT208898 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 |
|||
== Einzelnachweise == |
|||
{{OS X}} |
|||
<references /> |
|||
{{iOS}} |
|||
[[Kategorie:Grafikbibliothek]] |
|||
[[Category:Computer-related introductions in 2014]] |
|||
[[Kategorie:Programmierschnittstelle]] |
|||
[[Category:3D graphics APIs]] |
|||
[[Category:Graphics libraries]] |
|||
[[Category:IOS]] |
Version vom 4. Juli 2021, 16:53 Uhr
Metal
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Apple Inc. |
Erscheinungsjahr | 2014 |
Betriebssystem | iOS, iPadOS, macOS, tvOS |
Kategorie | API |
Lizenz | Proprietäre Software |
developer.apple.com/metal/ |
Metal ist eine von Apple entwickelte Low-Level-, Hardware-beschleunigte 3D-Grafik- und Compute-Shader-Computergrafik-API mit geringem Overhead. Es debütierte in iOS 8. Metal kombiniert Funktionen ähnlich wie OpenGL und OpenCL in einer API. Es soll die Leistung verbessern, indem es für Apps auf iOS, iPadOS, macOS und tvOS einen Low-Level-Zugriff auf die GPU-Hardware bietet. Es kann mit Low-Level-Programmierschnittstellen wie Vulkan und DirectX 12 verglichen werden.
Metal ist eine objektorientierte Programmierschnittstelle, die mit den Programmiersprachen Swift oder Objective-C aufgerufen werden kann. Die vollständige GPU-Ausführung wird über die Metal Shading Language gesteuert.
Features
Metal zielt darauf ab, den Zugriff auf die GPU mit geringem Overhead zu ermöglichen. Befehle werden vorher codiert und dann zur asynchronen Ausführung an die GPU gesendet. Die Anwendung steuert, wann auf den Abschluss einer Ausführung gewartet werden soll, sodass Anwendungsentwickler den Durchsatz erhöhen können, indem sie andere Befehle codieren, während Befehle auf der GPU ausgeführt werden, oder Energie sparen, indem sie explizit auf den Abschluss der GPU-Ausführung warten. Außerdem ist die Befehlscodierung CPU-unabhängig, sodass Anwendungen Befehle für jeden CPU-Thread unabhängig programmieren können. Schließlich werden die Renderstati im Voraus berechnet, sodass der GPU-Treiber im Voraus weiß, wie die Renderpipeline vor der Befehlsausführung konfiguriert und optimiert werden muss.
Metal verbessert die Fähigkeiten der GPGPU-Programmierung durch die Verwendung von Compute-Shadern. Metal verwendet eine spezielle Shading-Sprache basierend auf C++14, implementiert mit Clang und LLVM.
Metal bietet Anwendungsentwicklern die Flexibilität, wo Metal-Ressourcen (Puffer, Texturen) erstellt werden können. Ressourcen können auf der CPU, GPU oder beiden zugewiesen werden und bieten Möglichkeiten zum Aktualisieren und Synchronisieren zugewiesener Ressourcen. Metal kann auch den Zustand einer Ressource während der Lebensdauer eines Befehlscodierers erzwingen.[1][2]
Auf macOS kann Metal Anwendungsentwicklern die Möglichkeit geben, festzulegen, auf welcher GPU ausgeführt werden soll. Anwendungsentwickler können zwischen der energiesparenden integrierten GPU der CPU, der diskreten GPU (bei bestimmten MacBooks und Macs) oder einer über Thunderbolt angeschlossenen externen GPU wählen. Anwendungsentwickler haben auch die Vorliebe, wie GPU-Befehle auf welchen GPUs ausgeführt werden, und geben Vorschläge, auf welcher GPU ein bestimmter Befehl am effizientesten auszuführen ist (Befehle zum Rendern einer Szene können von der diskreten GPU ausgeführt werden, während Nachbearbeitung und Anzeige von der integrierten GPU verarbeitet werden).
Metal Performance Shader
Metal Performance Shaders ist eine hochoptimierte Bibliothek von Grafikfunktionen, die Anwendungsentwicklern dabei helfen kann, eine hervorragende Leistung zu erzielen und gleichzeitig den Aufwand für die Aufrechterhaltung der spezifischen Funktionen der GPU-Familie zu verringern.[3] Sie bietet Funktionen wie:
- Bildfilteralgorithmen
- Verarbeitung neuronaler Netze
- Erweiterte mathematische Operationen
- Raytracing
Geschichte
Metal ist seit dem 2. Juni 2014 auf iOS-Geräten mit Apple A7 oder höher verfügbar und seit 8. Juni 2015 auf Macs (2012-Modelle oder höher). Am 5. Juni 2017 kündigte Apple auf der WWDC die zweite Version von Metal an, die von macOS High Sierra, iOS 11 und tvOS 11 unterstützt wird. Metal 2 ist keine separate API von Metal und wird von derselben Hardware unterstützt. Metal 2 ermöglicht effizienteres Profiling und Debugging in Xcode, beschleunigtes maschinelles Lernen, geringere CPU-Auslastung, Unterstützung für Virtual Reality auf macOS und insbesondere Besonderheiten der Apple A11 GPU.
Auf der WWDC 2020 kündigte Apple die Migration des Mac auf Apple silicon an. Macs, die Apple silicon verwenden, verfügen über Apple-GPUs mit einem Funktionssatz, der das kombiniert, was zuvor auf macOS und iOS verfügbar war, und ist in der Lage, TBDR-Funktionen zu nutzen.[4]
Siehe auch
- DirectX 12
- MoltenVK
- Vulkan, Nachfolger von OpenGL.
- WebGPU, Arbeitstitel eines zukünftigen Web-Standards sowie JavaScript API für hardwarenahe, beschleunigte Grafik- und Compute-Berechnungen mit dem Ziel, WebGL abzulösen
Weblinks
- Metal for Developers
- Metal Programming Guide (preliminary)
- WWDC14 iOS 8 Metal Demo by EPIC Games; WWDC Recap, Zen Garden & Metal API for iOS8 | News | Unreal Engine