1029 lines
47 KiB
HTML
1029 lines
47 KiB
HTML
<h1 id="awesome-vulkan-awesome">Awesome Vulkan <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p><img src="https://raw.githubusercontent.com/SaschaWillems/Vulkan/master/images/vulkanlogoscene.png" alt="Vulkan demo scene" height="256px"></p>
|
||
<p>A curated list of awesome Vulkan libraries, debuggers and resources.
|
||
Inspired by <a
|
||
href="https://github.com/eug/awesome-opengl">awesome-opengl</a> and
|
||
other awesome-… stuff.</p>
|
||
<ul>
|
||
<li><strong><a href="#hardware-support">Hardware
|
||
Support</a></strong></li>
|
||
<li><strong><a href="#sdk">SDK</a></strong></li>
|
||
<li><strong><a href="#document">IHV Document</a></strong></li>
|
||
<li><strong><a href="#tutorial">Tutorial</a></strong></li>
|
||
<li><strong><a href="#apps">Apps</a></strong></li>
|
||
<li><strong><a href="#samples">Samples</a></strong></li>
|
||
<li><strong><a href="#libraries">Libraries</a></strong></li>
|
||
<li><strong><a href="#bindings">Bindings</a></strong></li>
|
||
<li><strong><a href="#tools">Tools</a></strong></li>
|
||
<li><strong><a href="#books">Books</a></strong></li>
|
||
<li><strong><a href="#papers">Papers</a></strong></li>
|
||
<li><strong><a href="#khronos">Khronos</a></strong></li>
|
||
<li><strong><a href="#community">Community</a></strong></li>
|
||
</ul>
|
||
<h2 id="hardware-support">Hardware Support</h2>
|
||
<ul>
|
||
<li><a href="http://vulkan.gpuinfo.org/">gpuinfo</a> - Vulkan Hardware
|
||
Database by Sascha Willems</li>
|
||
<li><a href="https://www.khronos.org/vulkan">Khronos</a></li>
|
||
<li><a href="https://developer.nvidia.com/Vulkan">NVIDIA</a>
|
||
<ul>
|
||
<li><a href="https://developer.nvidia.com/vulkan-driver">Driver for
|
||
Desktop</a></li>
|
||
<li><a href="https://developer.nvidia.com/vulkan-android">Driver for
|
||
Android</a></li>
|
||
<li><a href="https://developer.nvidia.com/embedded/vulkan">Driver for
|
||
Linux for Tegra (L4T)</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="http://www.amd.com/en-gb/innovations/software-technologies/technologies-gaming/vulkan">AMD</a>
|
||
<ul>
|
||
<li><a href="https://github.com/GPUOpen-Drivers/AMDVLK">Open-source
|
||
Driver</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://www.imgtec.com/developers/powervr-sdk-tools/">Imagination</a></li>
|
||
<li>Intel
|
||
<ul>
|
||
<li><a
|
||
href="https://01.org/linuxgraphics/blogs/jekstrand/2016/open-source-vulkan-drivers-intel-hardware/">Open-source
|
||
Driver</a></li>
|
||
<li><a
|
||
href="https://software.intel.com/en-us/blogs/2016/03/14/new-intel-vulkan-beta-1540204404-graphics-driver-for-windows-78110-1540">Driver
|
||
for Windows</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://developer.qualcomm.com/software/adreno-gpu-sdk/gpu">Qualcomm</a></li>
|
||
<li>Arm
|
||
<ul>
|
||
<li><a
|
||
href="https://developer.arm.com/solutions/graphics/developer-guides/mali-gpu-best-practices">Mali
|
||
GPU Best Practices</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="sdk">SDK</h2>
|
||
<ul>
|
||
<li><a href="https://vulkan.lunarg.com/signin">For Windows &
|
||
Linux</a></li>
|
||
<li><a
|
||
href="https://developer.android.com/ndk/guides/graphics/index.html">For
|
||
Android</a></li>
|
||
</ul>
|
||
<h2 id="document">Document</h2>
|
||
<ul>
|
||
<li><a href="http://gpuopen.com/tag/vulkan/">AMD</a>
|
||
<ul>
|
||
<li><a href="http://gpuopen.com/vulkan-barriers-explained/">Vulkan
|
||
barriers explained</a></li>
|
||
<li><a
|
||
href="https://gpuopen.com/wp-content/uploads/2016/03/VulkanFastPaths.pdf">Vulkan
|
||
Fast Paths</a></li>
|
||
<li><a
|
||
href="https://gpuopen.com/wp-content/uploads/2016/03/Let_your_game_shine_optimizing_DirectX-12_and_Vulkan-performance_with_AMD_CodeXL.pdf">Let
|
||
Your Game Shine – Optimizing DirectX 12 and Vulkan Performance with AMD
|
||
CodeXL</a></li>
|
||
<li><a
|
||
href="https://gpuopen.com/wp-content/uploads/2016/03/d3d12_vulkan_lessons_learned.pdf">D3D12
|
||
& Vulkan: Lessons Learned</a></li>
|
||
<li><a href="http://gpuopen.com/say-hello/">Say Hello to a New Rendering
|
||
API in Town!</a></li>
|
||
<li><a href="http://gpuopen.com/vulkan-renderpasses/">Vulkan
|
||
Renderpasses</a></li>
|
||
<li><a
|
||
href="http://gpuopen.com/performance-tweets-series-barriers-fences-synchronization/">Performance
|
||
tweets series: Barriers, fences, synchronization</a></li>
|
||
<li><a
|
||
href="http://gpuopen.com/using-the-vulkan-validation-layers/">Using the
|
||
Vulkan™ Validation Layers</a></li>
|
||
<li><a
|
||
href="https://gpuopen.com/wp-content/uploads/2016/05/Most-common-mistakes-in-Vulkan-apps.pdf">Most
|
||
common mistakes in Vulkan apps</a></li>
|
||
<li><a href="http://gpuopen.com/vulkan-device-memory/">Vulkan Device
|
||
Memory</a></li>
|
||
</ul></li>
|
||
<li><a href="https://developer.nvidia.com/taxonomy/term/586">NVIDIA</a>
|
||
<ul>
|
||
<li><a
|
||
href="https://developer.nvidia.com/device-generated-commands-vulkan">Vulkan
|
||
Device-Generated Commands</a></li>
|
||
<li><a
|
||
href="https://developer.nvidia.com/getting-vulkan-ready-vr">Getting
|
||
Vulkan Ready For VR</a></li>
|
||
<li><a
|
||
href="http://on-demand.gputechconf.com/gtc/2016/presentation/s6138-christoph-kubisch-pierre-boudier-gpu-driven-rendering.pdf">GPU-Driven
|
||
Rendering</a></li>
|
||
<li><a
|
||
href="http://developer.download.nvidia.com/gameworks/events/GDC2016/mschott_lbishop_gl_vulkan.pdf">GDC
|
||
16 - High-performance, Low-Overhead Rendering with OpenGL and
|
||
Vulkan</a></li>
|
||
<li><a
|
||
href="http://developer.download.nvidia.com/gameworks/events/GDC2016/Vulkan_Essentials_GDC16_tlorach.pdf">GDC
|
||
16 - Vulkan and NVIDIA – The Essentials</a></li>
|
||
<li><a
|
||
href="https://developer.nvidia.com/engaging-voyage-vulkan">Engaging the
|
||
Voyage to Vulkan</a></li>
|
||
<li><a
|
||
href="https://developer.nvidia.com/vulkan-shader-resource-binding">Vulkan
|
||
Shader Resource Binding</a></li>
|
||
<li><a
|
||
href="https://developer.nvidia.com/vulkan-memory-management">Vulkan
|
||
Memory Management</a></li>
|
||
<li><a href="https://developer.nvidia.com/opengl-vulkan">OpenGL like
|
||
Vulkan</a></li>
|
||
<li><a
|
||
href="https://developer.nvidia.com/transitioning-opengl-vulkan">Transitioning
|
||
from OpenGL to Vulkan</a></li>
|
||
<li><a
|
||
href="http://on-demand.gputechconf.com/siggraph/2015/presentation/SIG1501-Piers-Daniell.pdf">Siggraph
|
||
15 talk - Vulkan on NVIDIA GPUs</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://developer.arm.com/solutions/graphics/apis/vulkan">Arm</a>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ARM-software/vulkan_best_practice_for_mobile_developers">Vulkan
|
||
Best Practice for Mobile Developers Tutorials</a></li>
|
||
<li><a
|
||
href="https://developer.arm.com/-/media/Files/pdf/graphics-and-multimedia/Vulkan%20API%20key%20features%20on%20ARM%20architecture.pdf">Vulkan’s
|
||
Key Features on Arm Architecture</a></li>
|
||
<li><a
|
||
href="https://community.arm.com/groups/arm-mali-graphics/blog/2016/02/16/porting-a-graphics-engine-to-the-vulkan-api">Porting
|
||
a Graphics Engine to the Vulkan API</a></li>
|
||
<li><a
|
||
href="https://developer.arm.com/-/media/Files/pdf/graphics-and-multimedia/Get%20Your%20Engine%20Ready%20for%20Vulkan%20on%20Mobile.pdf">Get
|
||
Your Engine Ready for Vulkan on Mobile</a></li>
|
||
<li><a
|
||
href="https://community.arm.com/groups/arm-mali-graphics/blog/2016/04/19/massively-multi-thread-for-vulkan">Multi-Threading
|
||
in Vulkan</a></li>
|
||
<li><a
|
||
href="https://developer.arm.com/products/software/mali-sdks/vulkan">Mali
|
||
Vulkan SDK Tutorials</a> and <a
|
||
href="https://developer.arm.com/graphics/vulkan/vulkan-tutorials">Slides</a></li>
|
||
</ul></li>
|
||
<li>Intel
|
||
<ul>
|
||
<li><a href="https://github.com/GameTechDev/IntroductionToVulkan">API
|
||
without Secrets: Introduction to Vulkan</a> [<a
|
||
href="https://github.com/GameTechDev/IntroductionToVulkan/blob/master/license.txt">LICENSE</a>]
|
||
<ul>
|
||
<li><a
|
||
href="https://software.intel.com/en-us/api-without-secrets-introduction-to-vulkan-part-1">Part
|
||
1: The Beginning</a></li>
|
||
<li><a
|
||
href="https://software.intel.com/en-us/api-without-secrets-introduction-to-vulkan-part-2">Part
|
||
2: Swap Chain</a></li>
|
||
<li><a
|
||
href="https://software.intel.com/en-us/api-without-secrets-introduction-to-vulkan-part-3">Part
|
||
3: First Triangle</a></li>
|
||
<li><a
|
||
href="https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-part-4">Part
|
||
4: Vertex Attributes</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
<li><a href="http://blog.imgtec.com/tag/vulkan">Imagination</a>
|
||
<ul>
|
||
<li><a
|
||
href="https://imagination-technologies-cloudfront-assets.s3.amazonaws.com/idc-docs/gdc16/6_Efficient%20rendering%20with%20Vulkan%20on%20PowerVR.pdf">Efficient
|
||
Rendering with Vulkan on PowerVR</a></li>
|
||
<li><a
|
||
href="https://www.imgtec.com/webinar/migrating-to-vulkan-with-the-powervr-framework/">Migrating
|
||
to Vulkan with the New PowerVR Graphics Framework</a></li>
|
||
<li><a
|
||
href="https://www.imgtec.com/downloads/download-info/migrating-from-opengl-es-to-vulkan/">Migrating
|
||
from OpenGLES to Vulkan</a></li>
|
||
</ul></li>
|
||
<li>Samsung
|
||
<ul>
|
||
<li><a
|
||
href="https://community.arm.com/cfs-file/__key/telligent-evolution-extensions-calendar-calendarfiles/00-00-00-00-05/2_2D00_mmg_2D00_siggraph2016_2D00_best_2D00_practice_2D00_andrew.pdf">Siggraph
|
||
2016 - Best Practices for Mobile</a></li>
|
||
<li><a href="https://developer.samsung.com/game/usage">Vulkan Usage
|
||
Recommencation</a> (for mobile)</li>
|
||
</ul></li>
|
||
<li>Epic
|
||
<ul>
|
||
<li><a
|
||
href="https://community.arm.com/cfs-file/__key/telligent-evolution-extensions-calendar-calendarfiles/00-00-00-00-05/6_2D00_mmg_2D00_siggraph2016_2D00_vulkan_2D00_smedis.pdf">Efficient
|
||
use of Vulkan on UE4 Mobile</a></li>
|
||
</ul></li>
|
||
<li>Khronos
|
||
<ul>
|
||
<li><a href="https://github.com/KhronosGroup/Vulkan-Guide">Vulkan
|
||
Guide</a></li>
|
||
</ul></li>
|
||
<li><a href="https://lunarg.com">LunarG</a>
|
||
<ul>
|
||
<li><a href="https://vulkan.lunarg.com/">Vulkan SDK</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/vulkan-sdk-version-compatibility/">Vulkan
|
||
SDK Version Compatibility</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/vulkan-validation-layers/">Introducing
|
||
the New Vulkan Configurator</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/unified-validation-layer-for-vulkan/">Unified
|
||
Validation Layer for Vulkan</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/vulkan-synchronization-validation-quick-start-guide/">Vulkan
|
||
Synchronization Validation Quick Start Guide</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/guide-to-vulkan-synchronization-validation/">Guide
|
||
to Vulkan Synchronization Validation</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/vulkan-gpu-assisted-validation/">Vulkan
|
||
GPU-Assisted Validation</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/automatic-relaxedprecision-decoration-and-conversion-in-spirv-opt/">Automatic
|
||
RelaxedPrecision Decoration and Conversion in Spirv-Opt</a></li>
|
||
<li><a
|
||
href="https://www.lunarg.com/news-insights/white-papers/spir-v-legalization-and-size-reduction-with-spirv-opt/">SPIR-V
|
||
Legalization and Size Reduction with spirv-opt</a></li>
|
||
<li><a href="https://www.lunarg.com/vulkan-white-papers/">All White
|
||
Papers</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="tutorial">Tutorial</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.jeremyong.com/c++/vulkan/graphics/rendering/2018/03/26/how-to-learn-vulkan.html">How
|
||
to Learn Vulkan</a> - Meta post on how to learn Vulkan</li>
|
||
<li><a
|
||
href="https://www.fasterthan.life/blog/2017/7/11/i-am-graphics-and-so-can-you-part-1">I
|
||
Am Graphics And So Can You</a> - Blog post style tutorial for those new
|
||
to graphics learning Vulkan.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=Y9U9IE0gVHA">Vulkan Game
|
||
Engine Tutorial</a> - Tutorial series on making a vulkan game engine by
|
||
Brendan Galea on YouTube.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=dHPuU-DJoBM&list=PLv8Ddw9K0JPg1BEO-RS-0MYs423cvLVtj">Kohi
|
||
Game Engine Series</a> - “Vulkan Game Engine series, where we make a
|
||
game engine from the ground up using C and Vulkan”.</li>
|
||
<li><a
|
||
href="https://www.khronos.org/assets/uploads/developers/library/2016-uk-chapter-moving-to-vulkan/Moving-to-Vulkan_Khronos-UK_May16.pdf">Moving
|
||
to Vulkan (Khronos UK May16)</a></li>
|
||
<li><a href="http://jhenriques.net/development.html">jhenriques’s
|
||
tutorial</a></li>
|
||
<li><a
|
||
href="https://vulkan.lunarg.com/doc/sdk/1.0.26.0/windows/tutorial.html">Lunarg’s
|
||
tutorial</a></li>
|
||
<li><a href="http://web.engr.oregonstate.edu/~mjb/vulkan/">Mike Bailey’s
|
||
Vulkan Page</a> - Provides extensive Vulkan course slides. [CC BY-NC-ND
|
||
4.0]</li>
|
||
<li><a
|
||
href="https://developer.qualcomm.com/software/adreno-gpu-sdk/tutorial-videos">Qualcomm
|
||
Video Tutorial Series</a> - Leans more towards Vulkan for mobile
|
||
devices.</li>
|
||
<li><a href="https://alain.xyz/blog/raw-vulkan">Raw Vulkan</a> -
|
||
Overview on how to program a Vulkan application from the ground up.</li>
|
||
<li>Siggraph
|
||
<ul>
|
||
<li><a href="http://nextgenapis.realtimerendering.com/">An overview of
|
||
next-generation graphics APIs</a> - covers Vulkan, D3D12 etc.</li>
|
||
</ul></li>
|
||
<li><a href="https://vulkan-tutorial.com/">Tutorial by Overv</a> and <a
|
||
href="https://github.com/Overv/VulkanTutorial">its github
|
||
repository</a>. [CC BY-SA 4.0]</li>
|
||
<li><a href="https://github.com/philiptaylor/vulkan-sxs">vulkan-sxs</a>
|
||
- explain the Vulkan API step by step and <a
|
||
href="https://github.com/philiptaylor/vulkan-sync">vulkan-sync</a> -
|
||
rephrase Vulkan’s requirements on execution dependencies in a more
|
||
precise form. [MIT]</li>
|
||
<li><a href="https://renderdoc.org/vulkan-in-30-minutes.html">Vulkan in
|
||
30 minutes</a> - by baldurk.</li>
|
||
<li><a href="https://github.com/Z80Fan/VulkanDemos">Vulkan Demos and
|
||
Tutorials</a>. [MIT]</li>
|
||
<li><a href="https://vkguide.dev">Vulkan Guide</a>. [MIT]</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLmIqTlJ6KsE1Jx5HV4sd2jOe3V1KMHHgn">Vulkan
|
||
Lecture Series</a> - University lectures by Johannes Unterguggenberger
|
||
from the Research Unit of Computer Graphics, TU Wien. Covers basic and
|
||
advanced topics like: Vulkan essentials, the swap chain, resources and
|
||
descriptors, commands and command buffers, pipelines and stages,
|
||
real-time ray tracing, and synchronization.</li>
|
||
</ul>
|
||
<h2 id="apps">Apps</h2>
|
||
<ul>
|
||
<li><a
|
||
href="http://www.croteam.com/talos-principle-will-support-vulkan-first-screenshot-released/">The
|
||
Talos Principle</a> - by Croteam.</li>
|
||
<li><a href="https://github.com/ValveSoftware/Dota-2-Vulkan/">Dota2</a>
|
||
- by Valve.</li>
|
||
<li><a
|
||
href="https://www.basemark.com/blog/basemark-extends-its-benchmarking-lead-with-a-vulkan-performance-test/">Basemark</a>
|
||
- by Basemark.</li>
|
||
<li><a href="https://kishonti.net/news_single.jsp?id=31133884">GFXBench
|
||
5</a> - by Kishonti.</li>
|
||
<li><a
|
||
href="https://www.unrealengine.com/blog/epic-games-unveils-protostar-at-samsung-galaxy-unpacked">ProtoStar</a>
|
||
- by Epic, built with Unreal Engine 4 technology.</li>
|
||
<li><a href="https://github.com/ddnet/ddnet/">DDraceNetwork</a> -
|
||
Cooperative 2D platformer with optional <a
|
||
href="https://github.com/ddnet/ddnet/blob/master/src/engine/client/backend/vulkan/backend_vulkan.cpp">Vulkan
|
||
backend</a>. - <a
|
||
href="https://github.com/ddnet/ddnet/blob/master/license.txt">zlib</a>
|
||
<a href="https://ddnet.tw/">website</a></li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Doom_(2016_video_game)">Doom</a> -
|
||
by id Software.</li>
|
||
<li><a href="https://github.com/Novum/vkQuake">vkQuake</a> - Vulkan
|
||
Quake port based on QuakeSpasm. [GPL]</li>
|
||
<li><a href="https://github.com/kondrak/vkQuake2">vkQuake2</a> - id
|
||
Software’s Quake 2 v3.21 with Vulkan support (Windows and Linux).
|
||
[GPL]</li>
|
||
<li><a href="https://github.com/cschied/q2vkpt/">q2vkpt</a> - Real-time
|
||
path tracer VKPT integrated into q2pro Quake 2 client. [gpl]</li>
|
||
<li><a href="https://github.com/ValveSoftware/SteamVR-for-Linux">Linux
|
||
port of SteamVR</a> - SteamVR is built on top of the Vulkan API.</li>
|
||
<li><a
|
||
href="https://www.futuremark.com/pressreleases/compare-vulkan-and-directx-12-performance-with-3dmark">3DMark</a>
|
||
- 3DMark API Overhead test.</li>
|
||
<li><a href="https://github.com/NVIDIA/Q2RTX">Q2RTX</a> - NVIDIA’s
|
||
implementation of RTX ray-tracing in Quake II. [<a
|
||
href="https://github.com/NVIDIA/Q2RTX/blob/master/license.txt">LICENSE</a>]</li>
|
||
</ul>
|
||
<h2 id="samples">Samples</h2>
|
||
<ul>
|
||
<li>Khronos <a
|
||
href="https://github.com/KhronosGroup/Vulkan-Samples">Vulkan samples</a>
|
||
[<a
|
||
href="https://github.com/KhronosGroup/Vulkan-Samples/blob/master/LICENSE">LICENSE</a>]</li>
|
||
<li>Sascha Willems’s <a
|
||
href="https://github.com/SaschaWillems/Vulkan">samples</a> and <a
|
||
href="https://github.com/SaschaWillems/VulkanSponza">Deferred rendering
|
||
of Sponza</a> and his talk of <a
|
||
href="https://www.saschawillems.de/blog/2016/04/11/khronos-chapter-munich-vulkan-slides/">Khronos_meetup_munich</a>.</li>
|
||
<li>(Incomplete) Sascha Willems’s <a
|
||
href="https://github.com/jvm-graphics-labs/Vulkan">samples port</a> to
|
||
Kotlin</li>
|
||
<li>Sascha Willems’s <a
|
||
href="https://github.com/SaschaWillems/Vulkan-glTF-PBR">Vulkan-glTF-PBR</a>
|
||
- physical based rendering with Vulkan using glTF 2.0 models. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/ARM-software/vulkan_best_practice_for_mobile_developers">Vulkan
|
||
Best Practice for Mobile Developers Samples</a></li>
|
||
<li>Google
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/googlesamples/vulkan-basic-samples">Android
|
||
port of LunarG samples</a>.</li>
|
||
<li><a
|
||
href="https://github.com/googlesamples/android-vulkan-tutorials">android
|
||
tutorials</a>.</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/nvpro-samples">nvpro-samples</a> -
|
||
NVIDIA DesignWorks Samples. [<a
|
||
href="https://github.com/nvpro-samples/gl_vk_threaded_cadscene/blob/master/LICENSE">LICENSE</a>]
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/nvpro-samples/gl_vk_chopper">gl_vk_chopper</a>
|
||
- Simple vulkan rendering example.</li>
|
||
<li><a
|
||
href="https://github.com/nvpro-samples/gl_vk_threaded_cadscene">gl_vk_threaded_cadscene</a>
|
||
- OpenGL and Vulkan comparison on rendering a CAD scene using various
|
||
techniques and <a
|
||
href="https://developer.nvidia.com/vulkan-opengl-threaded-cad-scene-sample">the
|
||
blog</a> about it.</li>
|
||
<li><a
|
||
href="https://github.com/nvpro-samples/gl_vk_bk3dthreaded">gl_vk_bk3dthreaded</a>
|
||
- Vulkan sample rendering 3D with ‘worker-threads’.</li>
|
||
<li><a
|
||
href="https://github.com/nvpro-samples/gl_vk_supersampled">gl_vk_supersampled</a>
|
||
- Vulkan sample showing a high quality super-sampled rendering.</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/NVIDIAGameWorks/GraphicsSamples">NVIDIA
|
||
GameWorks Samples</a> - GameWorks cross-platform graphics API samples.
|
||
[<a
|
||
href="https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/license.txt">LICENSE</a>]</li>
|
||
<li><a href="https://github.com/LunarG/VulkanSamples">LunarG’s
|
||
Samples</a></li>
|
||
<li><a href="https://github.com/krh/vkcube">vkcube</a> - ‘vkcube’ sample
|
||
from krh, works under X, wayland and VT console with drm/kms.</li>
|
||
<li><a href="https://github.com/GameTechDev/stardust_vulkan">Stardust
|
||
from Intel</a> - The Stardust sample application uses the Vulkan
|
||
graphics API to efficiently render a cloud of animated particles. [<a
|
||
href="https://github.com/GameTechDev/stardust_vulkan/blob/master/license.txt">LICENSE</a>]</li>
|
||
<li><a href="https://github.com/Novum/vkQuake">Vulkan Quake port based
|
||
on QuakeSpasm</a>.</li>
|
||
<li><a href="https://github.com/FacticiusVir/SharpVk-Samples">C#
|
||
Samples</a> - Port of Overv’s tutorials to <a
|
||
href="https://github.com/FacticiusVir/SharpVk">SharpVk</a> [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/WindyDarian/Vulkan-Forward-Plus-Renderer">Vulkan-Forward-Plus-Renderer</a>
|
||
- VFPR - a Vulkan Forward Plus Renderer. [MIT]</li>
|
||
<li><a href="https://github.com/jian-ru/laugh_engine">Laugh Engine</a> -
|
||
Vulkan implementation of real-time PBR renderer.</li>
|
||
<li><a
|
||
href="https://github.com/chaoticbob/tinyrenderers">tinyrenderers</a> -
|
||
Single header implemenations of Vulkan and D3D12 renderers.</li>
|
||
<li><a
|
||
href="https://github.com/trungtle/TLVulkanRenderer">TLVulkanRenderer</a>
|
||
- Simple Vulkan-based renderer for my master thesis on real-time
|
||
transparency. [CC BY-SA 4.0]</li>
|
||
<li><a href="https://github.com/jherico/Vulkan">Vulkan-Hpp Samples</a> -
|
||
Fork of Sascha Willems excellent Vulkan examples that uses
|
||
Vulkan-Hpp.</li>
|
||
<li><a href="https://github.com/kocsis1david/font-demo">SDF Font
|
||
Demo</a> - Text rendering in Vulkan by estimating signed distance.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/jpystynen/vulkantoy">vulkantoy</a> -
|
||
Shadertoy image shader test app with Vulkan. [MIT]</li>
|
||
<li><a href="https://github.com/RippeR37/GL_vs_VK">GL_vs_VK</a> -
|
||
Comparison of OpenGL and Vulkan API in terms of performance. [MIT]</li>
|
||
<li><a href="https://github.com/vcoda/basic-graphics-samples">Vulkan
|
||
Basic Graphics Samples</a> - Collection of simple graphics samples that
|
||
are written using Magma library.</li>
|
||
<li><a href="https://github.com/iOrange/rtxON">Simple RTX Vulkan
|
||
raytracing tutorials</a>. [MIT]</li>
|
||
<li><a href="https://github.com/GPSnoopy/RayTracingInVulkan">Ray Tracing
|
||
In One Weekend (Vulkan RTX)</a> - Implementation of Peter Shirley’s Ray
|
||
Tracing In One Weekend book using Vulkan and NVIDIA’s RTX
|
||
extension.</li>
|
||
<li><a href="https://github.com/jeffboody/gearsvk">Gears VK</a> - Gears
|
||
VK is a heavily modified port of the famous “gears” demo to
|
||
Vulkan/Android/Linux. [MIT]</li>
|
||
<li><a href="https://github.com/maierfelix/VK_KHR_ray_tracing">Hello
|
||
triangle,</a> based on Vulkan Ray Tracing extensions. [MIT]</li>
|
||
<li><a href="https://github.com/Red1C3/Simple-Animation-Blender">Simple
|
||
Animation Blender</a> - A real-time 1D animation blender and player
|
||
using Vulkan as graphical back end and ImGui for GUI. [MIT]</li>
|
||
</ul>
|
||
<h2 id="libraries">Libraries</h2>
|
||
<ul>
|
||
<li>2D
|
||
<ul>
|
||
<li><a href="https://github.com/ocornut/imgui">imgui</a> - Immediate
|
||
Mode Graphical User interface. [MIT]</li>
|
||
<li><a href="https://skia.googlesource.com/skia">Skia</a> - Google’s 2D
|
||
graphics library has a <a
|
||
href="https://skia.org/user/special/vulkan">Vulkan</a> <a
|
||
href="https://github.com/google/skia/tree/master/src/gpu/vk">backend</a>,
|
||
demonstrated in a cross-platform <a
|
||
href="https://skia.org/user/sample/viewer">sample application</a> with
|
||
its own <a
|
||
href="https://github.com/google/skia/tree/master/tools/viewer">window
|
||
library</a>. [BSD 3-clause] <a href="https://skia.org">website</a></li>
|
||
<li><a href="https://github.com/jpbruyere/vkvg">VKVG</a> - Vulkan 2D
|
||
graphics library, API follows the same pattern as Cairo graphics lib,
|
||
but with new functions.</li>
|
||
</ul></li>
|
||
<li>Compute
|
||
<ul>
|
||
<li><a href="https://github.com/alexhultman/libvc">libvc</a> - Vulkan
|
||
Compute for C++. [<a
|
||
href="https://github.com/alexhultman/libvc/blob/master/LICENSE">LICENSE</a>]</li>
|
||
<li><a href="https://github.com/axsaucedo/vulkan-kompute">Vulkan
|
||
Kompute</a> - Blazing fast and lightweight Vulkan Compute Framework
|
||
optimized for advanced GPU processing usecases. [Apache License
|
||
2.0]</li>
|
||
<li><a href="https://github.com/Tencent/ncnn">ncnn</a> -
|
||
High-performance neural network inference framework with Vulkan based
|
||
GPU inference. [BSD 3-clause]</li>
|
||
<li><a href="https://github.com/Glavnokoman/vuh">vuh</a> - Vulkan-based
|
||
C++ GPGPU computing framework. [MIT]</li>
|
||
<li><a href="https://github.com/DTolm/VkFFT">VkFFT</a> - Efficient
|
||
Vulkan FFT library [MPL-2.0 License]</li>
|
||
</ul></li>
|
||
<li>Low Level
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator">Vulkan
|
||
Memory Allocator</a> - Easy to integrate Vulkan memory allocation
|
||
library from AMD. [MIT]
|
||
<ul>
|
||
<li>[VulkanMemoryAllocator-Hpp]
|
||
(https://github.com/malte-v/VulkanMemoryAllocator-Hpp) - C++ Bindings
|
||
for VMA, like Vulkan-HPP</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/Themaister/Fossilize">Fossilize</a> -
|
||
serialization format for various persistent Vulkan object types.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/charles-lunarg/vk-bootstrap">vk-bootstrap</a> -
|
||
C++ utility library to jump start Vulkan development by automating
|
||
instance, physical device, device, and swapchain creation. [MIT]</li>
|
||
<li><a href="https://github.com/google/vulkan-cpp-library">Google’s
|
||
vulkan-cpp-library</a> - Vulkan abstraction library using C++11 for
|
||
memory, resource management, type and thread safety as well as system
|
||
independency. [Apache]</li>
|
||
<li><a href="https://github.com/azhirnov/FrameGraph">FrameGraph</a> -
|
||
Vulkan abstraction layer that represent frame as a task graph. [BSD
|
||
2-clause]</li>
|
||
<li><a href="https://github.com/GPUOpen-LibrariesAndSDKs/V-EZ">V-EZ</a>
|
||
- light-weight middleware layer for the Vulkan API targeting
|
||
Professional Workstation ISVs. [MIT]</li>
|
||
<li><a href="https://github.com/andy-thomason/Vookoo">Vookoo</a> -
|
||
Vookoo is a set of dependency-free utilities to assist in the
|
||
construction and updating of Vulkan graphics data structres. [MIT]</li>
|
||
<li><a href="https://github.com/nyorain/vpp">vpp</a> - Modern C++ Vulkan
|
||
Abstraction focused on performance and a straightforward interface.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/vsg-dev">VulkanSceneGraph</a> -
|
||
Vulkan/C++17 scene graph project, successor to <a
|
||
href="http://www.openscenegraph.org">OpenSceneGraph</a>.</li>
|
||
<li><a
|
||
href="https://github.com/renelindsay/Vulkan-WSIWindow">Vulkan-WSIWindow</a>
|
||
- Multi-platform library to create a Vulkan window, and handle input
|
||
events. [Apache License 2.0]</li>
|
||
<li><a href="https://github.com/attackgoat/screen-13">Screen 13</a> - An
|
||
easy-to-use Vulkan render graph for Rust. [MIT]</li>
|
||
</ul></li>
|
||
<li>Frameworks, Engines, Higher Level Rendering
|
||
<ul>
|
||
<li><a href="https://github.com/Equilibrium-Games/Acid">Acid</a> - A
|
||
high speed C++17 Vulkan game engine. [MIT]</li>
|
||
<li><a href="https://github.com/GPUOpen-LibrariesAndSDKs/Anvil">AMD’s
|
||
Anvil</a> - cross-platform framework for Vulkan. [<a
|
||
href="https://github.com/GPUOpen-LibrariesAndSDKs/Anvil/blob/master/LICENSE.txt">LICENSE</a>]</li>
|
||
<li><a href="https://github.com/cg-tuwien/Auto-Vk">Auto-Vk</a> - Vulkan
|
||
convenience and productivity layer for modern C++, atop Vulkan-Hpp, by
|
||
the Research Unit of Computer Graphics, TU Wien. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/cg-tuwien/Auto-Vk-Toolkit">Auto-Vk-Toolkit</a>
|
||
- C++ framework around <a
|
||
href="https://github.com/cg-tuwien/Auto-Vk">Auto-Vk</a> for rapid
|
||
prototyping, research, and teaching, by the Research Unit of Computer
|
||
Graphics, TU Wien. [MIT for the framework’s code]</li>
|
||
<li><a
|
||
href="https://github.com/bkaradzic/bgfx#bgfx---cross-platform-rendering-library">bgfx</a>
|
||
- Cross-platform, graphics API agnostic, “Bring Your Own
|
||
Engine/Framework” style rendering library. [<a
|
||
href="https://github.com/bkaradzic/bgfx/blob/master/LICENSE">BSD-2-clause</a>]</li>
|
||
<li><a href="https://github.com/GameFoundry/bsf">bsf</a> - Modern C++14
|
||
library for the development of real-time graphical applications.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/cinder/Cinder">Cinder</a> and <a
|
||
href="https://libcinder.org/notes/vulkan">the story</a> <a
|
||
href="https://forum.libcinder.org/#Topic/23286000002614007">behind</a>.
|
||
[BSD]</li>
|
||
<li><a
|
||
href="https://github.com/NXPmicro/gtec-demo-framework">DemoFramework</a>
|
||
- NXP GTEC C++11 cross-platform demo framework including lots of samples
|
||
for Vulkan, OpenGL ES, OpenVX, OpenCL, OpenVG and OpenCV. [<a
|
||
href="https://github.com/NXPmicro/gtec-demo-framework/blob/master/License.md">BSD-3-clause</a>]</li>
|
||
<li><a
|
||
href="https://github.com/DiligentGraphics/DiligentEngine">Diligent
|
||
Engine</a> - a modern cross-platform low-level graphics library that
|
||
supports OpenGL/GLES, Direct3D11/12 and Vulkan. [Apache License
|
||
2.0]</li>
|
||
<li><a href="https://github.com/NVIDIAGameWorks/Falcor">Falcor</a> -
|
||
Real-time rendering framework from NVIDIA, supporting mainly DX12, with
|
||
experimental Vulkan support. [BSD 3-clause]</li>
|
||
<li><a href="https://github.com/glfw/glfw">glfw</a> and <a
|
||
href="http://www.glfw.org/docs/3.2/vulkan.html">the guide</a>. [<a
|
||
href="https://github.com/glfw/glfw/blob/master/LICENSE.md">LICENSE</a>]</li>
|
||
<li><a href="https://github.com/begla/Intrinsic">Intrinsic Engine</a> -
|
||
Intrinsic is a Vulkan based cross-platform graphics and game engine.
|
||
[Apache License 2.0]</li>
|
||
<li><a
|
||
href="https://github.com/GPUOpen-LibrariesAndSDKs/HelloVulkan">Introductory
|
||
Vulkan sample by GPUOpen</a>. [MIT]</li>
|
||
<li><a href="https://github.com/liblava/liblava">liblava</a> - A modern
|
||
C++ and easy-to-use framework. [MIT]</li>
|
||
<li><a href="https://github.com/UL-FRI-LGM/Logi">Logi</a> - Light-weight
|
||
object oriented Vulkan abstraction framework. [BSD 2-clause]</li>
|
||
<li><a href="https://github.com/Lugdunum3D/Lugdunum">Lugdunum</a> -
|
||
Modern cross-platform 3D rendering engine built with Vulkan and modern
|
||
C++14. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/openframeworks-vk/openFrameworks">openFrameworks</a>
|
||
- the most famouse C++ creative coding framework. [MIT]</li>
|
||
<li><a href="https://github.com/powervr-graphics/Native_SDK">PowerVR
|
||
SDK</a> - C++ cross-platform 3D graphics SDK to speed up development of
|
||
Vulkan and GLES. [<a
|
||
href="https://github.com/powervr-graphics/Native_SDK/blob/4.1/LICENSE_POWERVR_SDK.txt">LICENSE</a>]</li>
|
||
<li><a href="https://github.com/pumexx/pumex">Pumex</a> - cross-platform
|
||
Vulkan renderer implementing frame graph and simple scene graph. Able to
|
||
render on many surfaces at once [MIT]</li>
|
||
<li><a
|
||
href="https://discourse.libsdl.org/t/sdl-2-0-6-released/23109">SDL</a> -
|
||
added cross-platform Vulkan graphics support in SDL_vulkan.h.
|
||
[zlib]</li>
|
||
<li><a href="https://www.gamedev.net/projects/515-small3d/">small3d</a>,
|
||
Tiny Vulkan based C++ cross-platform game development framework [BSD
|
||
3-clause]</li>
|
||
<li><a href="https://github.com/mwalczyk/spectrum_core">Spectrum</a> -
|
||
Work-in-progress framework and abstraction layer around Vulkan.</li>
|
||
<li><a href="https://github.com/Dolkar/Tephra">Tephra</a> - A modern
|
||
C++17 graphics and compute library filling the gap between Vulkan and
|
||
high-level APIs like OpenGL. [MIT]</li>
|
||
<li><a href="https://github.com/ConfettiFX/The-Forge">The-Forge</a> -
|
||
DirectX 12, Vulkan, macOS Metal 2 rendering framework. [Apache License
|
||
2.0]</li>
|
||
<li><a href="https://github.com/MHDtA-dev/VKFS">VKFS</a> -
|
||
Cross-platform easy-to-use C++ framework that allows you to quickly
|
||
initialize Vulkan and get a ready-made environment. Provides high-level
|
||
abstraction over basic Vulkan objects.</li>
|
||
<li><a href="https://github.com/nvpro-pipeline/VkHLF">VkHLF</a> - Vulkan
|
||
High Level Framework. <a
|
||
href="https://github.com/nvpro-pipeline/VkHLF/blob/master/LICENSE.txt">[LICENSE]</a></li>
|
||
<li><a href="https://github.com/cg-tuwien/VulkanLaunchpad">Vulkan
|
||
Launchpad</a> - Vulkan framework for Windows, macOS, and Linux.
|
||
Especially well-suited for Vulkan beginners, used in university
|
||
education, by the Research Unit of Computer Graphics, TU Wien. [MIT]
|
||
<ul>
|
||
<li><a href="https://github.com/cg-tuwien/VulkanLaunchpadStarter">Vulkan
|
||
Launchpad Starter</a> - Starter template containing additional
|
||
functionality and assets. <a
|
||
href="https://github.com/cg-tuwien/VulkanLaunchpadStarter/blob/main/LICENSE">[LICENSE]</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
<li>Other API Interop and Implementations
|
||
<ul>
|
||
<li><a href="https://github.com/baldurk/visor">visor</a> - Vulkan
|
||
Ignoble Software Rasterizer. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/Chabloom/VulkanOnD3D12">VulkanOnD3D12</a> -
|
||
Vulkan API for D3D12. [Apache License 2.0]</li>
|
||
<li><a href="https://github.com/msiglreith/rostkatze">rostkatze</a> -
|
||
C++ implementation of Vulkan sitting on D3D12 🐈[Apache License
|
||
2.0]</li>
|
||
<li><a href="https://github.com/disks86/VK9">VK9</a> - Direct3D 9
|
||
compatibility layer using Vulkan</li>
|
||
<li><a href="https://github.com/jgbit/vuda">VUDA</a> - header-only lib
|
||
that provides a CUDA Runtime API interface. [MIT]</li>
|
||
<li><a href="https://github.com/google/clspv">clspv</a> - prototype
|
||
compiler for a subset of OpenCL C to Vulkan compute shaders. [Apache
|
||
License 2.0]</li>
|
||
<li><a href="https://github.com/KhronosGroup/MoltenVK/">MoltenVK</a> -
|
||
run Vulkan on iOS and macOS. [Apache-2.0]</li>
|
||
<li><a
|
||
href="https://gitlab.freedesktop.org/kusma/mesa/tree/zink">Zink</a> -
|
||
OpenGL implementation on top of Vulkan, part of Mesa project. [MIT]</li>
|
||
<li><a href="https://github.com/g-truc/glo">glo / OpenGL Overload</a> -
|
||
OpenGL implementation on top of Vulkan.</li>
|
||
<li><a href="https://github.com/gfx-rs/portability">gfx-portability</a>
|
||
- Vulkan Portability implementation on Metal and D3D12, based on <a
|
||
href="https://github.com/gfx-rs/gfx/">gfx-rs</a>.</li>
|
||
</ul></li>
|
||
<li>Raytracing
|
||
<ul>
|
||
<li><a href="https://github.com/Nadrin/Quartz">Quartz</a> - Physically
|
||
based Vulkan RTX path tracer with a declarative ES7-like scene
|
||
description language. [LGPL-3.0]</li>
|
||
</ul></li>
|
||
<li>Scientific
|
||
<ul>
|
||
<li><a href="https://github.com/datoviz/datoviz">datoviz</a> -
|
||
High-performance GPU interactive scientific data visualization with
|
||
Vulkan. [MIT]</li>
|
||
<li><a href="https://gitlab.kitware.com/iMSTK/iMSTK">iMSTK</a> - C++
|
||
toolkit for building surgical simulations with Vulkan and VTK backends.
|
||
[Apache License 2.0]</li>
|
||
</ul></li>
|
||
<li>Shaders
|
||
<ul>
|
||
<li><a href="https://github.com/KhronosGroup/glslang">glslang</a> -
|
||
Library for compiling glsl to spirv [BSD 3-Clause]</li>
|
||
<li><a
|
||
href="https://github.com/KhronosGroup/SPIRV-Cross">SPIRV-Cross</a> -
|
||
Library for reflection of spirv, simplify the creation of Vulkan
|
||
pipeline layouts [ Apache-2.0 License]</li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="bindings">Bindings</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/MaikKlein/ash">ash</a> - Vulkan bindings
|
||
for Rust. [MIT]</li>
|
||
<li><a href="https://github.com/gfx-rs/gfx">gfx-rs</a> - A low-overhead
|
||
Vulkan-like GPU API for Rust. [Apache License 2.0]</li>
|
||
<li><a
|
||
href="https://github.com/CapsAdmin/ffibuild/blob/master/vulkan/vulkan.lua">libvulkan.lua</a>
|
||
- Lua bindings for Vulkan.</li>
|
||
<li><a href="https://github.com/ColonelThirtyTwo/dvulkan">dvulkan</a> -
|
||
Auto-generated D bindings for Vulkan.</li>
|
||
<li><a href="https://github.com/ParticlePeter/ErupteD">ErupteD</a> -
|
||
Another Auto-generated D bindings for Vulkan.</li>
|
||
<li><a href="https://github.com/mosra/flextgl">flextGL</a> - Minimal
|
||
Vulkan header/loader generator and <a
|
||
href="http://blog.magnum.graphics/hacking/simple-efficient-vulkan-loading-with-flextgl/">the
|
||
blog post</a> about it.</li>
|
||
<li><a href="https://github.com/dotnet/Silk.NET">Silk.NET</a> - C#
|
||
bindings for Vulkan and others. [MIT]</li>
|
||
<li><a href="https://github.com/expipiplus1/vulkan">vulkan</a> - Haskell
|
||
bindings for Vulkan and Vulkan Memory Allocator [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/maierfelix/nvk">nvk</a> - JavaScript
|
||
bindings for Vulkan. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/zyrolasting/racket-vulkan">racket-vulkan</a> -
|
||
Racket bindings for Vulkan with <a
|
||
href="https://sagegerard.com/racket-vulkan-notes-index.html">detailed
|
||
implementation notes</a>. [MIT]</li>
|
||
<li><a href="https://github.com/KhronosGroup/Vulkan-Hpp">Vulkan-hpp</a>
|
||
Open-Source Vulkan C++ API originated from NVIDIA and <a
|
||
href="https://developer.nvidia.com/open-source-vulkan-c-api">the
|
||
blog</a> about it.</li>
|
||
<li><a href="https://github.com/mono/VulkanSharp">VulkanSharp</a> - C#
|
||
bindings for Vulkan. [MIT]</li>
|
||
<li><a href="https://github.com/vulkano-rs/vulkano">Vulkano</a> - Safe
|
||
and rich Rust wrapper around the Vulkan API. [MIT]</li>
|
||
<li><a href="https://www.lwjgl.org/">LWJGL</a> - Lightweight Java Game
|
||
Library 3 has Vulkan bindings. [BSD]</li>
|
||
<li><a href="https://github.com/FacticiusVir/SharpVk">SharpVk</a> - C#
|
||
bindings for Vulkan with Linq-to-SPIR-V & <a
|
||
href="https://www.nuget.org/packages/SharpVk">NuGet package</a>.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/realitix/vulkan">vulkan</a> - Ultimate
|
||
Python bindings for Vulkan generated with CFFI. [Apache Licence
|
||
2.0]</li>
|
||
<li><a href="https://github.com/vulkan-go/vulkan">vulkan-go</a> - Go
|
||
bindings for Vulkan. [MIT]</li>
|
||
<li><a href="https://github.com/BeRo1985/pasvulkan">PasVulkan</a> -
|
||
Vulkan bindings plus high-level wrapper library for Object Pascal
|
||
[Zlib]</li>
|
||
<li><a href="https://github.com/Snektron/vulkan-zig">vulkan-zig</a> -
|
||
Vulkan binding generator for Zig [MIT]</li>
|
||
<li><a href="https://github.com/kotlin-graphics/vkk">VK²</a>, Kotlin
|
||
Wrapper for Vulkan: code expressiveness and safety meet graphic power
|
||
[Apache License 2.0]</li>
|
||
<li><a
|
||
href="https://github.com/amerkoleci/Vortice.Vulkan">Vortice.Vulkan</a> -
|
||
.NET Standard 2.0 and .NET5 C# bindings [MIT]</li>
|
||
<li><a href="https://github.com/hydra2s/node-vulkan-api">Raw Node.js
|
||
Vulkan API</a> - A new Vulkan bindings for Node.JS, similar with LWJGL-3
|
||
or NVK.</li>
|
||
<li><a href="https://github.com/deno-windowing/vulkan">Deno Vulkan</a> -
|
||
Vulkan API bindings for Deno. [Apache Licence 2.0]</li>
|
||
</ul>
|
||
<h2 id="tools">Tools</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://developer.nvidia.com/nvidia-nsight-visual-studio-edition">Nsight™
|
||
Visual Studio Edition 5.2+</a>.</li>
|
||
<li><a
|
||
href="https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers">LoaderAndValidationLayers</a>
|
||
- from KhronosGroup. [Apache Licence 2.0]</li>
|
||
<li><a href="https://github.com/baldurk/renderdoc">renderdoc</a> - by
|
||
baldurk, a stand-alone graphics debugging tool. [MIT]
|
||
<ul>
|
||
<li><a href="https://github.com/azhirnov/RDCtoVkCpp">RDCtoVkCpp</a> -
|
||
converts RenderDoc Vulkan capture to compilable and executable C++ code.
|
||
[MIT]</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/LunarG/VulkanTools">VulkanTools</a> -
|
||
LunarG’s tools including layers and configurator. [Apache Licence
|
||
2.0]</li>
|
||
<li><a href="https://www.vktracer.com">VKtracer</a> - universal and
|
||
easy-to-use profiler for Vulkan.</li>
|
||
<li><a href="https://github.com/GPUOpen-Tools/CodeXL">CodeXL</a> -
|
||
CodeXL goes open source. [MIT]</li>
|
||
<li><a
|
||
href="https://developer.qualcomm.com/software/adreno-gpu-sdk/tools">Qualcomm
|
||
Adreno GPU Tools</a> - samples, Adreno recommendation layer, best
|
||
practice docs for Adreno GPU.</li>
|
||
<li><a
|
||
href="https://developer.qualcomm.com/software/snapdragon-profiler">Qualcomm
|
||
Snapdragon Profiler</a> - includes Vulkan traces and frame captures for
|
||
Adreno GPU.</li>
|
||
<li><a
|
||
href="https://www.arm.com/products/development-tools/graphics/arm-mobile-studio">Arm
|
||
Mobile Studio</a> - includes the Arm Graphics Analyzer to trace graphics
|
||
performance issues easily, and Arm Streamline performance analyzer, for
|
||
a whole-system view of performance to determine bottlenecks quickly
|
||
across both the CPU and GPU.</li>
|
||
<li><a href="https://github.com/GPUOpen-Tools/OCAT">Open Capture and
|
||
Analytics Tool (OCAT)</a> - provides an FPS overlay and performance
|
||
measurement for D3D11, D3D12, and Vulkan. [MIT]</li>
|
||
<li><a href="https://github.com/google/gapid">gapid</a> - Graphics API
|
||
Debugger, can trace and replay Android OpenGL ES and Vulkan
|
||
applications. [Apache License 2.0]</li>
|
||
<li><a href="https://github.com/ARM-software/perfdoc">Arm - PerfDoc</a>
|
||
- a validation layer against the Mali Application Developer Best
|
||
Practices document. [MIT]</li>
|
||
<li><a href="https://github.com/azhirnov/glsl_trace">glsl_trace</a> -
|
||
library for shader debugging and profiling for Vulkan and OpenGL.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/flightlessmango/MangoHud">MangoHud</a> -
|
||
Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU
|
||
load. [MIT]</li>
|
||
</ul>
|
||
<h2 id="books">Books</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.amazon.com/Introduction-Computer-Graphics-Vulkan-API/dp/1548616176">Introduction
|
||
to Computer Graphics and the Vulkan API</a> by
|
||
<strong>Kenwright</strong> - Introduce the reader to the exciting topic
|
||
of computer graphics from a grounds-up practical perspective with the
|
||
Vulkan API.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Learning-Vulkan-Parminder-Singh/dp/1786469804">Learning
|
||
Vulkan</a> - by <strong>Parminder Singh</strong> - Get started with the
|
||
Vulkan API and its programming techniques using the easy-to-follow
|
||
examples.
|
||
<ul>
|
||
<li><a href="https://github.com/PacktPublishing/Learning-Vulkan">Book’s
|
||
Examples</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://www.amazon.com/Vulkan-Cookbook-Pawel-Lapinski/dp/1786468158">Vulkan
|
||
Cookbook</a>- by <strong>Pawel Lapinski</strong> - Explores a wide range
|
||
of graphics programming and GPU compute methods to make the best use of
|
||
the Vulkan API.
|
||
<ul>
|
||
<li><a href="https://github.com/PacktPublishing/Vulkan-Cookbook">Book’s
|
||
Examples</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://www.amazon.com/Vulkan-Programming-Guide-Official-Learning/dp/0134464540">Vulkan
|
||
Programming Guide</a> - by <strong>Graham Sellers</strong> and
|
||
<strong>John Kessenich</strong> - Introduces powerful 3D development
|
||
techniques for many fields.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Mastering-Graphics-Programming-Vulkan-state/dp/1803244798/ref=sr_1_1?keywords=mastering+graphics+programming+with+vulkan&qid=1678290788&sprefix=mastering+graphics+%2Caps%2C255&sr=8-1">Mastering
|
||
Graphics Programming with Vulkan</a> - Develop a modern rendering engine
|
||
from first principles to state-of-the-art techniques, by <strong>Marco
|
||
Castorina</strong> and <strong>Gabriel Sassone</strong>.</li>
|
||
</ul>
|
||
<h2 id="papers">Papers</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.cg.tuwien.ac.at/research/publications/2022/unterguggenberger-2022-vulkan">The
|
||
Road to Vulkan: Teaching Modern Low-Level APIs in Introductory Graphics
|
||
Courses</a> by <strong>Johannes Unterguggenberger</strong>,
|
||
<strong>Bernhard Kerbl</strong>, and <strong>Michael Wimmer</strong>,
|
||
Eurographics 2022 - Education Papers
|
||
<ul>
|
||
<li>Direct link to the <a
|
||
href="https://www.cg.tuwien.ac.at/research/publications/2022/unterguggenberger-2022-vulkan/unterguggenberger-2022-vulkan-paper.pdf">paper</a>.</li>
|
||
<li>Pre-recorded presentation on <a
|
||
href="https://youtu.be/ZG0ct4V6c0k">YouTube</a>.</li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="khronos">Khronos</h2>
|
||
<ul>
|
||
<li>Specification
|
||
<ul>
|
||
<li>Vulkan 1.0 Core API (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.0 Core API + Khronos-defined Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0-wsi_extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0-wsi_extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0-wsi_extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.0 Core API + all registered Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.0-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.1 Core API (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.1 Core API + Khronos-defined Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1-khr-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1-khr-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1-khr-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.1 Core API + all registered Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.1-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.2 Core API (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.2 Core API + Khronos-defined Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2-khr-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2-khr-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2-khr-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.2 Core API + all registered Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.2-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.3 Core API (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.3 Core API + Khronos-defined Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3-khr-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3-khr-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3-khr-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
<li>Vulkan 1.3 Core API + all registered Extensions (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/index.html">Chunked
|
||
HTML</a>) (<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3-extensions/pdf/vkspec.pdf">PDF</a>)
|
||
(<a
|
||
href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html">Single-file
|
||
HTML</a>)</li>
|
||
</ul></li>
|
||
<li>Quick Reference Sheets
|
||
<ul>
|
||
<li><a
|
||
href="https://www.khronos.org/registry/vulkan/specs/1.0/refguide/Vulkan-1.0-web.pdf">Vulkan
|
||
1.0 Quick Reference Sheets</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/registry/vulkan/specs/1.1/refguide/Vulkan-1.1-web.pdf">Vulkan
|
||
1.1 Quick Reference Sheets</a></li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/KhronosGroup/Vulkan-CTS">Conformance
|
||
Tests (CTS)</a></li>
|
||
<li>Conferences and Presentations
|
||
<ul>
|
||
<li><a href="https://www.khronos.org/developers/library/2016-gdc">GDC
|
||
2016 Presentations</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2016-uk-chapter-moving-to-vulkan">2016
|
||
UK Chapter: Moving to Vulkan</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=CsHMiEQgrLA">SIGGRAPH 2016
|
||
BOF - Vulkan</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=owuJRPKIUAg">SIGGRPAH 2016
|
||
Best Practices Roundtable</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2016-vulkan-devday-uk">2016
|
||
Vulkan DevDay UK</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2016-Vulkan-DevU-Seoul">2016
|
||
Vulkan DevDay Seoul</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2017-vulkan-devu-vancouver">2017
|
||
Vulkan DevU Vancouver</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2017-vulkan-loader-webinar">2017
|
||
Vulkan Loader Webinar</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=Nx0u-9ZwrmQ">SIGGRAPH 2017
|
||
BOF - Vulkan</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2018-vulkan-montreal-dev-day">2018
|
||
Vulkan Montreal Dev Day</a></li>
|
||
<li><a
|
||
href="https://www.khronos.org/developers/library/2018-vulkanised">2018
|
||
Vulkanised!</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=FCAM-3aAzXg&t=18350s">SIGGRAPH
|
||
2018 BOF - Vulkan</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="community">Community</h2>
|
||
<ul>
|
||
<li><a href="http://webchat.freenode.net/?channels=Vulkan">Freenode
|
||
IRC</a></li>
|
||
<li><a
|
||
href="https://plus.google.com/communities/108983304183191634377">Google
|
||
Plus</a></li>
|
||
<li><a
|
||
href="https://forums.khronos.org/forumdisplay.php/114-Vulkan">Khronos
|
||
Forum</a></li>
|
||
<li><a href="https://www.reddit.com/r/vulkan/">Reddit</a></li>
|
||
<li><a href="http://stackoverflow.com/questions/tagged/vulkan">Stack
|
||
Overflow</a></li>
|
||
<li><a href="https://discord.com/invite/tFdvbEj">Discord</a></li>
|
||
</ul>
|
||
<h2 id="related-lists">Related lists</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/sindresorhus/awesome">awesome</a> -
|
||
Curated list of awesome lists.</li>
|
||
<li><a href="https://github.com/eug/awesome-opengl">awesome-opengl</a> -
|
||
Curated list of awesome OpenGL libraries, debuggers and resources.</li>
|
||
<li><a href="https://github.com/ellisonleao/magictools">gamedev</a> -
|
||
Awesome list about game development.</li>
|
||
<li><a
|
||
href="https://github.com/mattdesl/graphics-resources">graphics-resources</a>
|
||
- List of graphic programming resources.</li>
|
||
<li><a href="https://github.com/vinjn/awesome-d3d12">awesome-d3d12</a> -
|
||
Curated list of awesome D3D12 libraries, debuggers and resources.</li>
|
||
</ul>
|
||
<h2 id="license">License</h2>
|
||
<p><a href="http://creativecommons.org/licenses/by/4.0/"><img
|
||
src="http://i.creativecommons.org/l/by/4.0/88x31.png"
|
||
alt="Creative Commons License" /></a></p>
|
||
<p>This work is licensed under a <a
|
||
href="http://creativecommons.org/licenses/by/4.0/">Creative Commons
|
||
Attribution 4.0 International License</a>.</p>
|
||
<h2 id="contributing">Contributing</h2>
|
||
<p>Please see <a
|
||
href="https://github.com/vinjn/awesome-vulkan/blob/master/CONTRIBUTING.md">CONTRIBUTING</a>
|
||
for details.</p>
|