微信小程序群发功能代码实现详细分析
1253
2022-11-01
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小时内删除侵权内容。