Vulkan Samples 是一个资源的集合,可帮助您开发优化的Vulkan应用程序

网友投稿 1253 2022-11-01 16:14:09

Vulkan Samples 是一个资源的集合,可帮助您开发优化的Vulkan应用程序

Vulkan Samples

Contents

IntroductionGoals TutorialsSetupBuildSupported Platforms UsageTestingLicenseTrademarks ContributionsRelated resources

Introduction

The Vulkan Samples is collection of resources to help you develop optimized Vulkan applications.

If you are new to Vulkan the API samples are the right place to start. Additionally you may find the following links useful:

Vulkan GuideGet Started in Vulkan

Performance samples show the recommended best practice together with real-time profiling information. They are more advanced but also contain a detailed tutorial with more in-detail explanations.

Goals

Create a collection of resources that demonstrate best-practice recommendations in VulkanCreate tutorials that explain the implementation of best-practices and include performance analysis guidesCreate a framework that can be used as reference material and also as a sandbox for advanced experimentation with Vulkan

Tutorials

Project BasicsControlsDebug windowCreate a Sample Vulkan EssentialsHow does Vulkan compare to OpenGL ES? What should you expect when targeting Vulkan? Vulkan SwapchainsAppropriate use of N-bufferingAppropriate use of surface rotation PipelinesUse of pipeline caches to avoid startup latencyUtilizing Specialization Constants DescriptorsDescriptor and buffer management Render PassesAppropriate use of load/store operations, and use of transient attachmentsChoosing the correct layout when transitioning imagesHow to implement MSAA Render SubpassesBenefits of subpasses over multiple render passes, use of transient attachments, and G-buffer recommended size Workload SynchronizationUsing pipeline barriers efficientlyHow to synchronize back to the CPU and avoid stalling Command BuffersAllocation and management of command buffersMulti-threaded recording with secondary command buffers AFBCAppropriate use of AFBC API samplesOverview for the API samples Extension samplesOverview for the extension samples MiscDriver versionMemory limits

Setup

Clone the repo with submodules using the following command:

git clone --recurse-submodules https://github.com/KhronosGroup/Vulkan-Samples.gitcd Vulkan-Samples

Follow build instructions for your platform below.

Build

Supported Platforms

Windows - Build GuideLinux - Build GuidemacOS - Build GuideAndroid - Build Guide

Usage

The following shows some example command line usage on how to configure and run the Vulkan Samples.

# Run Swapchain Images samplevulkan_samples swapchain_images# Run AFBC sample in benchmark mode for 5000 framesvulkan_samples --sample afbc --benchmark 5000# Run bonza test offscreenvulkan_samples --test bonza --hide# Run all the performance samplesvulkan_samples --batch performance# Run Swapchain Images sample on an Android deviceadb shell am start-activity -n com.khronos.vulkan_samples/com.khronos.vulkan_samples.SampleLauncherActivity -e sample swapchain_images

Tests

System Test - Usage GuideGenerate Sample - Usage Guide

License

See LICENSE.

This project has some third-party dependencies, each of which may have independent licensing:

astc-encoder: ASTC Evaluation CodecCTPL: Thread Pool Librarydocopt: A C++11 port of the Python argument parsing libraryglfw: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and inputglm: OpenGL Mathematicsglslang: Shader front end and validatordear imgui: Immediate Mode Graphical User Interface dear imgui shaders: GLSL shaders for dear imgui HWCPipe: Interface to mobile Hardware CountersKTX-Software: Khronos Texture Library and Toolsspdlog: Fast C++ logging librarySPIRV-Cross: Parses and converts SPIR-V to other shader languagesstb: Single-file public domain (or MIT licensed) librariestinygltf: Header only C++11 glTF 2.0 file parsernlohmann json: C++ JSON Library (included by tinygltf)vma: Vulkan Memory Allocatorvolk: Meta loader for Vulkan APIvulkan: Sources for the formal documentation of the Vulkan API

This project uses assets from vulkan-samples-assets. Each one has its own licence.

Trademarks

Vulkan is a registered trademark of the Khronos Group Inc.

Contributions

Donated to Khronos by Arm, with further contributions by Sascha Willems and Adam Sawicki. See CONTRIBUTORS for the full contributor list.

Also see CONTRIBUTING for contribution guidelines.

Related resources

Mali GPU Best Practices: A document with recommendations for efficient API usagePerfDoc: A Vulkan layer which aims to validate applications against Mali GPU Best Practices

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一个Python程序使用OpenCV从Raspberry Pi的PiCamera视频中检测和识别扑克牌
下一篇:Base64与File之间的相互转化方式
相关文章