Vulkan Portability Update - January 2021 - Khronos Group
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Vulkan Portability Update January 2021 This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 1
Open-Source Layering Projects Fighting Platform Fragmentation Layers Over Vulkan OpenGL OpenCL OpenGL ES DX12 DX9-11 vkd3d-Proton Vulkan as clspv Angle DXVK Vulkan Zink clvk GLOVE vkd3d WineD3D porting target for multiple APIs gfx-portability OpenGL Ashes Angle WineD3D Microsoft Microsoft Microsoft ROWS: DX12 gfx-portability ‘GLOn12’ ‘CLOn12’ D3D11On12 Bring more APIs to Platforms gfx-portability DX9-11 Ashes Angle MoltenVK clspv + MoltenGL Metal gfx-portability SPIRV-Cross? Angle Vulkan functionality COLUMNS: Making APIs available everywhere available across platforms This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 2
Vulkan Portability Multiple Implementations of Layered Vulkan Functionality TODAY Enable Vulkan applications on diverse platforms and APIs +more! Khronos Portability Extension Portable queries for what functionality is available through Vulkan layering Extended Vulkan Conformance Tests Open-source tools, SDKs Gracefully handle partial functionality to enable Vulkan and libraries bring Vulkan Portability conformance - what is present must work! applications to Apple platforms over Metal Enhanced Vulkan Layers and Tools DevSim/Validation Layers flag or simulate queries for features that are not present Fighting fragmentation by enabling Vulkan applications on platforms without native drivers through layered implementations of Vulkan functionality over Metal, DX12 and other APIs https://github.com/KhronosGroup/Vulkan-Portability This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 3
Vulkan Portability Development on Apple Config Files hand-coded or Applications generated using vulkaninfo utility DevSim JSON Vulkan SDK Config files Running on macOS Database gpuinfo.org SPIRV-Cross Vulkan Configurator: Defines available functionality on a Export Public Database Open-source disassembler DevSim config file selection target device. Available Vulkan functionality Converts SPIR-V shaders to DevSim Layer: simulates queries for Pre-populated per GPU/Driver/Layer/OS. Metal Shading Language selected target system subset in SDK List of entries containing Validation Layer: flags incorrect usage of Vulkan Portability data available functionality Database Upload Hardware Capability Viewer (for macOS, iOS soon) Run-time application now includes interrogation of Vulkan Portability Extension to discover available features of layered implementations macOS / iOS / tvOS Enhanced Vulkan SDK, Vulkan to Metal API Mapping Layer Layers and Tools Vulkan Portability Extension Streamlines application development for Portable run-time queries for available functionality on the current system Apple devices. Universal Binaries supported This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 4
Example Vulkan Portability Implementations Baseline Vulkan 1.1 with Vulkan 1.0 with extensions Vulkan Version Vulkan 1.2 in development Metal on macOS and iOS (in Beta) API/Platforms Metal on macOS. iOS, tvOS DirectX 12 (in development) and Mac Catalyst (Shipping) UWP platforms such as Windows 10 S, Polaris, Xbox. Supported macOS 10.11 / iOS 9.0 and up GPUs without native drivers e.g., Intel Haswell/Broadwell OpenGL (ES)/D3D11 (in development) Implementor Community and Brenwill Workshop Community and Mozilla Licensing Royalty-free Apache 2.0 Royalty-free Apache 2.0 / MIT Used by multiple production Notes applications on Mac and iPhone Implemented using Rust Language https://github.com/gfx-rs/gfx More https://github.com/KhronosGroup/MoltenVK https://github.com/gfx-rs/portability Information https://github.com/gfx-rs/portability/releases Example beta and prototype implementations that are expected to be Vulkan Portability conformant once the Vulkan Portability Extension and conformance tests are complete This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 5
Vulkan Portability Timelines Upcoming Deliverables Finalized Conformance Tests Portability Extension 1.0 MoltenVK released in open source for macOS and iOS MoltenVK 1.1 ships Vulkan CTS with support for Vulkan SDK Validation ported to macOS Vulkan Portability Vulkan 1.1 features, Layers support gfx-rs DX11 Provisional 48 Vulkan extensions, Portability Extension. backend in alpha - Extension released Metal 3.0, Apple Vulkan Configurator Vulkan CTS joins DX12 and and shipped in Silicon, Mac Catalyst manages DevSim and ported to macOS Metal backends MoltenVK and gfx-rs and tvOS config files GDC August September Fall January 2018 2018 2020 2020 2021 This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 6
Vulkan Apps on macOS and iOS using MoltenVK “I was initially skeptical about the use of a Vulkan translation layer to Metal, but it turns out MoltenVK enables applications using the real-time NAP Framework to run as well on macOS as they do on Linux and Windows. This is something I'd like to highlight and stress the importance of - without the portability of Vulkan we would have been forced to implement a special Metal rendering backend just for macOS users, something not doable for a relatively small company such as ours. Plus switching to Vulkan dramatically improved render-times for Mac users.” Coen Klosters, Lead Developer of NAP Framework and Technical Director at Naivi Multiple iOS and macOS apps shipping //rpcs3.net/ e.g., Forsaken RPCS3 PlayStation 3 Production Dota 2 on Remastered Emulator on macOS macOS with up to 50% more perf than Crossover Windows CodeWeavers and Apple’s OpenGL compatibility layer https://google.github.io/filament/ Square Enix ship Final Fantasy XIV on macOS //dolphin-emu.org/ First iOS Apps using Google Filament PBR Dolphin GameCube MoltenVK ship Renderer on Mac and Wii Emulator through app store working on macOS https://www.napframework.com/ https://www.winehq.org/ Artifact ships on Underlords ships on Naivi ports NAP //www.qt.io/blog/2018/05/30/vulkan-for-qt-on-macos Initial ports of DX Steam for macOS - //diligentgraphics.com/diligent-engine/ Steam - first Valve real-time Qt Running on macOS games in progress first Valve Vulkan- Diligent Engine Vulkan app on both performance through MoltenVK using Vulkan on macOS only app on macOS runs on macOS macOS and iOS engine to macOS June September November January June January 2018 2018 2018 2019 2019 2021 This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 7
Khronos-Related GitHub Projects Vulkan-Docs SPIRV-Cross Ashes https://star-history.t9t.io/#khronosgroup/moltenvk&khronosgroup/gltf&khronosgroup/vulkan-docs&khronosgroup/spirv-cross&gfx-rs/gfx&DragonJoker/Ashes This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 8
You can also read