platform_frameworks_native/vulkan
Jesse Hall 7559c76d12 libvulkan: support vkGIPA self-query
vkGetInstanceProcAddr(nullptr, ...) is valid and is effectively a
globally dispatched function, so it's consistent to support querying
vkGetInstanceProcAddr from itself without an instance.

This is required in Vulkan 1.2 and is supported for all Vulkan versions
by the loader on other platforms. To maximize app compatibility and
minimize surprises, this makes it work on Android also, even for pre-1.2
versions where the result is undefined by the spec.

Bug: 157173922
Test: dEQP-VK.api.version_check.entry_points with
      https://gerrit.khronos.org/#/c/5490/ applied and modified to
      check even on pre-1.2 implementations.
Change-Id: I820dd1239df54a415b7ff5db47cf2c2b349f6155
2020-05-21 16:28:48 -07:00
..
include Move the nested struct inside VkNativeBufferANDROID outside. 2019-07-18 01:26:31 +00:00
libvulkan libvulkan: support vkGIPA self-query 2020-05-21 16:28:48 -07:00
nulldrv Replace more -Weverything with -Wextra 2019-11-09 00:56:40 +00:00
scripts libvulkan: support vkGIPA self-query 2020-05-21 16:28:48 -07:00
vkjson [vkjson] Add support of VK_KHR_shader_float16_int8. 2020-02-27 19:33:24 -08:00
.clang-format
Android.bp vulkan: remove the obsolete vkinfo tool 2019-08-07 13:00:49 -07:00
OWNERS Add opengl owners 2018-12-21 15:14:42 -08:00
README.md vulkan: combine doc with README.md file 2019-08-06 19:28:36 -07:00
TEST_MAPPING Add CtsGpuToolsHostTestCases into presubmit. 2020-03-25 20:32:46 -07:00

frameworks/native/vulkan

This subdirectory contains Android's Vulkan loader, as well as some Vulkan-related tools useful to platform developers.

Documentation

The former contents of doc/implementors_guide/ are now at https://source.android.com/devices/graphics/implement-vulkan.

Coding Style

We follow the Chromium coding style for naming and formatting, except with four-space indentation instead of two spaces. In general, any C++ features supported by the prebuilt platform toolchain are allowed.

Use "clang-format -style=file" to format all C/C++ code, except code imported verbatim from elsewhere. Setting up git-clang-format in your environment is recommended.

Code Generation

We generate several parts of the loader and tools driectly from the Vulkan Registry (external/vulkan-headers/registry/vk.xml). Code generation must be done manually because the generator is not part of the platform toolchain (yet?). Files named foo_gen.* are generated by the code generator.

Run The Code Generator

Install Python3 (if not already installed) and execute below: $ ./scripts/code_generator.py