Skip to content

Releases: ARM-software/vulkan_best_practice_for_mobile_developers

Release 1.3.0

16 Dec 11:53
301e900
Compare
Choose a tag to compare

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

specialization_constants_sample

  • 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

last_layout

  • 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

sample_frag_to_vert

  • Added Wait idle sample:
    • Outlining how to properly synchronize back to the CPU
    • Showing the negative impacts of using the Vulkan vkWaitIdle functions

wait_idle_sample

  • Updated AFBC sample:

    • Added a note regarding VK_IMAGE_USAGE_TRANSFER_DST_BIT
  • Updated Render passes sample:

    • Improved vkCmdClear section

Framework

  • Assets are now included into the project via a git submodule
  • Various bug fixes and improvements

Other

Known Issues

Release 1.2.0

27 Sep 13:06
dae28a6
Compare
Choose a tag to compare

Please follow the README, to download the assets use the newly added download_assets.py script (located in /bldsys/scripts).

Changelog

Samples

good-practice

  • Updated Command buffer usage sample:
    • Multi-threaded command buffer recording
    • Toggle between single primary command buffer or adjustable number of secondaries

multi_threading

  • Updated Render Subpasses sample:

    • Reduced flickering
    • Validation layer errors are fixed
  • Updated Render Passes sample:

    • Adds the ability to toggle the command vkCmdClear
  • 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

26 Jul 15:41
a137ee5
Compare
Choose a tag to compare

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

18 Jul 12:12
f082fbd
Compare
Choose a tag to compare

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

good-practice

Framework

  • Redesigned filesystem to improve its flexibility

Release 1.1.2

11 Jul 18:06
a4c2210
Compare
Choose a tag to compare

Please, download the updated scenes.zip and follow the README.

Changelog

Samples

  • Command buffer usage: new sample (featuring the new Bonza scene) and tutorial

reset_pool

  • Pipeline management: the sample now shows the time needed to re-create pipelines

pipeline_cache_enable

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

31 May 16:56
657367a
Compare
Choose a tag to compare

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

10 May 17:47
7d7895f
Compare
Choose a tag to compare

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

16 Apr 13:23
b755b94
Compare
Choose a tag to compare

Please, download scenes.zip and follow the README.

Release 1.0.0

14 Mar 18:30
Compare
Choose a tag to compare
v1.0.0

Release 1.0.0