Skip to content
Vulkan Samples
C++ C Objective-C CMake Python HTML Other
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
API-Samples Add windows/osx host support when downloading shader tools for Android Apr 17, 2020
Layer-Samples build: Update cmake_minimum_required(VERSION 3.10.2) Jul 16, 2019
Sample-Programs/Hologram Move spirv_assembly to use offline assembly Mar 31, 2020
cmake repo: Remove MIR specific code Oct 25, 2018
external build: Remove Windows loader build dependency Sep 6, 2019
external_revisions external: Update glslang commit ID, fix LVT Feb 6, 2018
samples_images Remove unused images in samples_images folder Mar 18, 2019
scripts Move spirv_assembly to use offline assembly Mar 31, 2020
.appveyor.yml cmake: use HTTP, don't send mail to Karl Jun 5, 2019
.clang-format repo: Change source style from LLVM to Google Jan 26, 2017
.gitattributes repo: normalize line termination across repo Oct 30, 2017
.gitignore Merge branch 'trunk' Feb 6, 2018
.gitmodules Remove Vulkan-LoaderAndValidationLayers submodule Jul 26, 2018
.travis.yml Move Android build to use offline compilation Mar 31, 2020
BUILD.md Add windows/osx host support when downloading shader tools for Android Apr 17, 2020
CMakeLists-SDK.txt Get rid of glslang dependency in SDK CMakeLists Mar 31, 2020
CMakeLists.txt Move spirv_assembly to use offline assembly Mar 31, 2020
CONTRIBUTING.md docs: Update CONTRIBUTING.md for CI process Mar 21, 2019
LICENSE.txt Update License.tst Nov 15, 2019
MANIFEST.md samples: Add manifest file Feb 17, 2017
README-contrib.md Update contributing to require Apache style license May 23, 2016
README.md docs: Add explanation of version tagging scheme Dec 19, 2018
Vulkan_LogoBug_48px_Nov17.png Samples Index: update favicon Jul 25, 2019
build_windows_samples_sdk.bat Add "call" to msbuild calls Mar 31, 2020
samples_index.html Samples Index: update favicon Jul 25, 2019
update_external_sources.bat build: Add LVL as a submodule Feb 26, 2018
update_external_sources.sh build: Add LVL as a submodule Feb 26, 2018

README.md

Vulkan Samples

  • This repository is a collection of Vulkan C++ sample applications.
  • Run the following script to obtain a short description of all or a specific sample: $ API-Samples/get-short-descripts.sh
  • Run the following script to obtain a more detailed description of all samples with a long description set: $ API-Samples/get-descripts.sh

CI Build Status

Platform Build Status
Linux/Android Build Status
Windows Build status

Structure

Vulkan Samples

  • The Vulkan Samples repo is a set of source and data files in a specific directory hierarchy:
    • API-Samples - Samples that demonstrate the use of various aspects of the Vulkan API
    • Vulkan Tutorial - Steps you through the process of creating a simple Vulkan application, learning the basics along the way. This Vulkan Tutorial link allows you to view the Vulkan Tutorial on LunarXchange as well.
    • Sample-Programs - Samples that are more functional and go deeper than simple API use.
    • Layer-Samples - Samples that are implemented as layers. The Overlay layer sample is deprecated and does not build.

Sample progression

  • In general, the samples are not interrelated, but there is a progression among some of the samples that lead to drawing a cube. Start with the instance sample, then enumerate-adv, device, initcommandbuffer, initswapchain, initdepthbuffer, inituniformbuffer, descriptor_pipeline_layouts, initrenderpass, initshaders, initframebuffers, vertexbuffer, allocdescriptorsets, initpipeline, and they culminate in the drawcube sample. Each sample uses utility routines from the code from previous samples to get to the point to show something new. The drawtexturedcube sample takes all of the drawcube code and adds texturing.

Contributing

Refer to the README.contrib file for specific info regarding contributing to the Vulkan samples creation effort.

Contact Information

Information for Developing or Contributing:

Please see the CONTRIBUTING.md file in this repository for more details.

How to Build and Run

BUILD.md Includes directions for building all components as well as running validation tests and demo applications.

Version Tagging Scheme

Updates to the LunarG-VulkanSamples repository which correspond to a new Vulkan specification release are tagged using the following format: v<version> (e.g., v1.1.96).

Note: Marked version releases have undergone thorough testing but do not imply the same quality level as SDK tags. SDK tags follow the sdk-<version>.<patch> format (e.g., sdk-1.1.92.0).

This scheme was adopted following the 1.1.96 Vulkan specification release.

License

This work is released as open source under a Apache-style license. See LICENSE.txt for full license.

See COPYRIGHT.txt for a full list of licenses used in this repository.

Acknowledgements

While this project has been developed primarily by LunarG, Inc., there are many other companies and individuals making this possible: Valve Corporation, funding project development; Google providing significant contributions to the samples.

You can’t perform that action at this time.