If the SPIRV module contains multiple entry points then checking for the existance of the builtin variable is not enough to guarantee it is in the entry point inputs
* Capturing when a device lost (or OOM) is hit can produce a corrupted capture
that crashes on load, mirror vulkan's detection of these cases and bail out.
The spec says
Android hardware buffers have intrinsic width, height, format, and
usage properties, so Vulkan images bound to memory imported from an
Android hardware buffer must use dedicated allocations:
VkMemoryDedicatedRequirements::requiresDedicatedAllocation must be
VK_TRUE for images created with
VkExternalMemoryImageCreateInfo::handleTypes that includes
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID.
Stripping VkMemoryDedicatedAllocateInfo causes segfaults on Mesa panvk
driver at least.
ALooper_pollAll was obsoleted since NDK 27 and resulted in
renderdoccmd_android.cpp:526:8: error: 'ALooper_pollAll' is
unavailable: obsoleted in Android 1 - ALooper_pollAll may ignore
wakes. Use ALooper_pollOnce instead. See The API documentation for
more information
Since we poll from within a loop, we can replace it by ALooper_pollOnce
directly. But to be on the safe side, do this only on NDK 27+.
Java 7 support was dropped since JDK 20. We should be able to target
Java 8 without compatibility concerns because we run the bytecode
through dex which desugars (or fails at build time which does not
happen). But to be on the safe side, print a warning.
-Wcast-function-type-mismatch was added in clang 19.1. Change the
version check to "VERSION_GREATER 19.0.999" instead.
Add -Wno-vla-cxx-extension for ihv/arm to silence
gator_api.cpp:312:15: error: variable length arrays in C++ are a
Clang extension [-Werror,-Wvla-cxx-extension]
* This is not necessarily guaranteed as the viewport is selected by a shader
export, but this is a very sane default and showing viewport 0 for all views
is much more likely to be wrong.
* Some clang versions seem to complain about the storage for this being missing
even if it's constexpr, since it's not important we make it a plain member.