Releases: ARM-software/vulkan_best_practice_for_mobile_developers
Release 1.3.0
This is the final release of this project, all work has been moved to Khronos' Vulkan Samples repo.
Assets are now integrated as a git submodule. If updating then delete the current assets
folder before pulling. Otherwise please follow the README for more information and details on how to set up the project.
Changelog
Samples
- Added Specialization constants sample:
- The benefits of specialization constants over uniform buffer objects
- Showing how shaders handle control flow and unrolling of loops during compilation and how to take advantage of it
- Added Layout transitions sample:
- How to use layout transitions to make use of transaction elimination
- The importance of setting the correct layouts when transitioning your images
- Added Pipeline barriers sample:
- Using pipeline barriers to handle memory accesses between render passes
- How to effectively set up your pipeline barriers as to not starve your GPU of work but also avoid rendering corruption
- Added Wait idle sample:
- Outlining how to properly synchronize back to the CPU
- Showing the negative impacts of using the Vulkan
vkWaitIdle
functions
-
Updated AFBC sample:
- Added a note regarding
VK_IMAGE_USAGE_TRANSFER_DST_BIT
- Added a note regarding
-
Updated Render passes sample:
- Improved
vkCmdClear
section
- Improved
Framework
- Assets are now included into the project via a git submodule
- Various bug fixes and improvements
Other
- Added Vulkan FAQ
- Added tutorial on Mali memory limits
Known Issues
Release 1.2.0
Please follow the README, to download the assets use the newly added download_assets.py
script (located in /bldsys/scripts
).
Changelog
Samples
- Descriptor set management sample highlighting:
- Benefits of descriptor set caching
- Approaches to buffer management
- Updated Command buffer usage sample:
- Multi-threaded command buffer recording
- Toggle between single primary command buffer or adjustable number of secondaries
-
Updated Render Subpasses sample:
- Reduced flickering
- Validation layer errors are fixed
-
Updated Render Passes sample:
- Adds the ability to toggle the command
vkCmdClear
- Adds the ability to toggle the command
-
Updated AFBC sample:
- Added a list of supported formats to the tutorial
Framework
- Implemented headless rendering, with support for the Vulkan headless surface extension
- Mulithreaded rendering, where command recording is thread-safe
- Gltf Loader supports extension loading, and the scene graph now can support lights loaded in from
KHR_lights_punctual
Other
- Downgraded C++17 to C++14
- Shaders now exist in their own folder within the root directory
- Removed command recorder and replayer
- Added tutorial to find the driver version of the GPU
- Various bug fixes and improvements
Known Issues
- Please make sure to uninstall and re-install the app on Android to avoid a crash in the pipeline management sample
Release 1.1.4
Please, download scenes.zip and follow the README.
Changelog
Framework
- Implemented benchmark mode
- Screenshot was made much faster by using
GPU_TO_CPU
memory - Composite counters such as cache miss ratio and branch miss ratio are now supported
- Replaced our ThreadPool class with CTPL
Bugfix
- Fixed a bug which prevented the creation of the
output
directory on Android - Fixed a bug with batch mode in portrait orientation
- Avoid loss of precision in the projection matrix to reduce flickering
Release 1.1.3
Please, download scenes.zip and follow the README.
Changelog
Samples
- Render subpasses sample highlighting:
- Benefits of sub-passes over multiple render passes
- Transient attachments image usage
- G-buffer suggested size
Framework
- Redesigned filesystem to improve its flexibility
Release 1.1.2
Please, download the updated scenes.zip and follow the README.
Changelog
Samples
- Command buffer usage: new sample (featuring the new Bonza scene) and tutorial
- Pipeline management: the sample now shows the time needed to re-create pipelines
Framework
- Support Vulkan subpasses
- Support compute shaders
- Support taking screenshots of the swapchain image
- Added Mac support (experimental)
- Improved fatal error handling, with error messages on Android
- Reduced memory usage when loading textures
- General bugfixes and refactoring
Other
- New scenes: Bonza and Space Module (see the updated
scenes.zip
) - Added system-level tests
- Improved documentation
Known issues
- System tests do not currently run on Mac
- Please make sure to uninstall and re-install the app on Android to avoid a crash in the pipeline management sample
Release 1.1.1
Please, download scenes.zip and follow the README.
Changelog
- New sample: pipeline caching
- Support shader variants with runtime compilation
- Get hardware counters with higher sampling rate
- Added a Timer helper class
- Added cross-platform File helper functions
- Better documentation for Linux build
- Various updates and fixes
Android build: the assets are now pushed to the device via adb. If you are updating from a previous version, please make sure you re-run generate_android_gradle and do a clean build.
Release 1.1.0
Please, download scenes.zip and follow the README.
Changelog
- Support KTX texture container with ASTC mipmaps
- Support dynamic buffer binding
- Introduced debug window
- Improved logging with spdlog
- Improved CMake project
- Minor performance improvements
- Various updates and fixes
Release 1.0.1
Please, download scenes.zip and follow the README.
Release 1.0.0
v1.0.0 Release 1.0.0