powervr-graphics / Native_SDK

C++ cross-platform 3D graphics SDK. Includes demos & helper code (resource loading etc.) to speed up development of Vulkan, OpenGL ES 2.0 & 3.x applications
https://docs.imgtec.com/sdk-documentation/html/introduction.html
MIT License
702 stars 197 forks source link

[BUG] Update Vulkan validation layers to the unified VK_LAYER_KHRONOS_validation layer #54

Closed hevrard closed 4 years ago

hevrard commented 4 years ago

Description

The Android Vulkan validation layers provided in https://github.com/powervr-graphics/Native_SDK/tree/master/external/validation_layers/jniLibs are now a bit old. In particular, since March 2019, the VK_LAYER_KHRONOS_validation unified layer supersedes the series of historical validation layers.

See https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/LAYER_CONFIGURATION.md#validation-layer-overview

This layer is now available through github releases at: https://github.com/KhronosGroup/Vulkan-ValidationLayers/releases/tag/sdk-1.2.135.0

Repro steps

Build the app for Android by default. The Gradle setup picks the layers shipped in the NDK, or the ones provided in external/validation_layers, both of which are old.

Environment

n/a

Additional Info

This may require to change the list of layer names queried by the Vulkan samples. It will also be worth checking if the up-to-date, unified layer leads to new warning/errors on the samples.

graptis commented 4 years ago

Hi @hevrard, thanks for the report. I took a very quick look, this makes sense, we will work to integrate android layer releases instead of the pre-packaged ones. EDIT: On second thought - they should already work if you update the libraries in external/validation_layers/jniLibs to latest - which we will as soon as we test them (doing this currently). So, at this point, we will just regularly update them, and document to the users that they can update them in their local tree if they wish (same as they would update their local Vulkan SDK installation). As far as the name of the layers in the code, we already support both names in the code - VK_LAYER_lunarg etc and VK_LAYER_khronos etc.

graptis commented 4 years ago

Updated on 20.1 release.