diff --git a/.ccls b/.ccls index 4c0b28e46..47d3fc315 100644 --- a/.ccls +++ b/.ccls @@ -21,7 +21,5 @@ -I./external/spdlog/include/ -I./external/fmt/include/ -I./src/include/ --I./single_include/ --I./vk_ndk_wrapper_include/ -I./test/compiled_shaders_include/ -I./test/utils/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d4537af4..f5d2b477c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,25 +113,33 @@ include(cmake/deprecation_warnings.cmake) # Dependencies # #################################################### include(cmake/vulkan_shader_compiler.cmake) -include(FetchContent) include(cmake/check_vulkan_version.cmake) - -if(KOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER) - FetchContent_Declare(vulkan_header GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Headers.git - GIT_TAG ${KOMPUTE_OPT_BUILT_IN_VULKAN_HEADER_TAG}) # Source: https://github.com/KhronosGroup/Vulkan-Headers/tags - FetchContent_MakeAvailable(vulkan_header) - - if(NOT KOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK) - # Ensure the driver supports this Vulkan version - check_vulkan_version(INCLUDE_DIR "${vulkan_header_SOURCE_DIR}/include") - endif() -endif() +include(FetchContent) # Vulkan Header # We don't import Vulkan library if Android build as it is built dynamically # Otherwise it is expected that the Vulkan SDK and dependencies are installed # Has to happen AFTER using the build-in Vulkan headers to prevent multiple targets with the name Vulkan::Headers -if(NOT KOMPUTE_OPT_ANDROID_BUILD) +if(KOMPUTE_OPT_ANDROID_BUILD) + add_library(vulkanAndroid INTERFACE) + set(VULKAN_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) + target_sources(vulkanAndroid INTERFACE ${VULKAN_INCLUDE_DIR}/vulkan/vulkan.hpp) + target_include_directories(vulkanAndroid INTERFACE ${VULKAN_INCLUDE_DIR}) + + target_compile_definitions(vulkanAndroid INTERFACE VK_NO_PROTOTYPES=1) + target_compile_definitions(vulkanAndroid INTERFACE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) +else() + if(KOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER) + FetchContent_Declare(vulkan_header GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Headers.git + GIT_TAG ${KOMPUTE_OPT_BUILT_IN_VULKAN_HEADER_TAG}) # Source: https://github.com/KhronosGroup/Vulkan-Headers/tags + FetchContent_MakeAvailable(vulkan_header) + + if(NOT KOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK) + # Ensure the driver supports this Vulkan version + check_vulkan_version(INCLUDE_DIR "${vulkan_header_SOURCE_DIR}/include") + endif() + endif() + find_package(Vulkan REQUIRED) if(Vulkan_FOUND AND NOT TARGET Vulkan::Headers) diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index cd8b9a42b..d49860eb2 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -3,27 +3,25 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 29 - ndkVersion '21.2.6472646' + compileSdkVersion 33 + ndkVersion '25.1.8937393' defaultConfig { applicationId "com.ethicalml.kompute" - minSdkVersion 23 - targetSdkVersion 29 + minSdkVersion 26 + targetSdkVersion 33 versionCode = 1 versionName = "0.0.1" externalNativeBuild { cmake { - abiFilters "armeabi-v7a", 'arm64-v8a', 'x86', 'x86_64' arguments '-DANDROID_TOOLCHAIN=clang', - '-DANDROID_STL=c++_static', - '-DKOMPUTE_OPT_ANDROID_BUILD=ON', - '-DKOMPUTE_OPT_INSTALL=OFF', - '-DKOMPUTE_OPT_USE_SPDLOG=OFF', - '-DKOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS=ON', - '-DCMAKE_CXX_FLAGS=-DKOMPUTE_VK_API_MINOR_VERSION=0' + '-DANDROID_STL=c++_static' } } + ndk { + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + } + } buildFeatures { @@ -39,6 +37,7 @@ android { externalNativeBuild { cmake { path 'src/main/cpp/CMakeLists.txt' + version '3.22.2' } } @@ -62,6 +61,7 @@ android { // armeabi-v7a, arm64-v8a, x86, x86_64 } } + namespace 'com.ethicalml.kompute' } dependencies { diff --git a/examples/android/android-simple/app/src/main/AndroidManifest.xml b/examples/android/android-simple/app/src/main/AndroidManifest.xml index 4965abb44..8e8beb56c 100755 --- a/examples/android/android-simple/app/src/main/AndroidManifest.xml +++ b/examples/android/android-simple/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ - + - + diff --git a/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt b/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt index 868be9ca7..18feff433 100644 --- a/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt @@ -1,27 +1,22 @@ -cmake_minimum_required(VERSION 3.4.1) +cmake_minimum_required(VERSION 3.20) -add_subdirectory(../../../../../../../ ${CMAKE_CURRENT_BINARY_DIR}/kompute_build) +set(CMAKE_CXX_STANDARD 17) -set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) +include(FetchContent) +FetchContent_Declare(kompute GIT_REPOSITORY https://github.com/COM8/kompute.git + GIT_TAG b28d4ae0bec1d39003b97574623a52b0b5f7494d) # The commit hash for a dev version before v0.9.0. Replace with the latest from: https://github.com/KomputeProject/kompute/releases +set(KOMPUTE_OPT_ANDROID_BUILD ON) +set(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS ON) +FetchContent_MakeAvailable(kompute) +include_directories(${kompute_SOURCE_DIR}/src/include) -add_library(kompute-jni SHARED - KomputeJniNative.cpp - KomputeModelML.cpp) +# Add to the list, so CMake can later find the code to compile shaders to header files +list(APPEND CMAKE_PREFIX_PATH "${kompute_SOURCE_DIR}/cmake") +add_subdirectory(shader) -include_directories( - ${VK_ANDROID_COMMON_DIR} - ${VK_ANDROID_INCLUDE_DIR} - ../../../../../../../single_include/ - ../../../../../../../vk_ndk_wrapper_include/) +add_library(kompute-jni SHARED KomputeJniNative.cpp + KomputeModelML.cpp + KomputeModelML.hpp) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 \ - -DVK_USE_PLATFORM_ANDROID_KHR=1 \ - -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1") +target_link_libraries(kompute-jni PRIVATE kompute::kompute shader log android) -target_link_libraries(kompute-jni - # Libraries from kompute build - kompute - kompute_vk_ndk_wrapper - # Libraries from android build - log - android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp b/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp index 92939c4de..2b9e75dca 100644 --- a/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp +++ b/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp @@ -24,10 +24,7 @@ // Allows us to use the C++ sleep function to wait when loading the // Vulkan library in android #include - -#ifndef KOMPUTE_VK_INIT_RETRIES -#define KOMPUTE_VK_INIT_RETRIES 5 -#endif +#include static std::vector jfloatArrayToVector(JNIEnv* env, const jfloatArray& fromArray) @@ -62,16 +59,17 @@ extern "C" uint32_t totalRetries = 0; - while (totalRetries < KOMPUTE_VK_INIT_RETRIES) { + /*while (totalRetries < KOMPUTE_VK_INIT_RETRIES) { KP_LOG_INFO("VULKAN LOAD TRY NUMBER: %u", totalRetries); if (InitVulkan()) { break; } sleep(1); totalRetries++; - } + }*/ - return totalRetries < KOMPUTE_VK_INIT_RETRIES; + // return totalRetries < KOMPUTE_VK_INIT_RETRIES; + return true; } JNIEXPORT jfloatArray JNICALL diff --git a/examples/android/android-simple/app/src/main/cpp/KomputeModelML.cpp b/examples/android/android-simple/app/src/main/cpp/KomputeModelML.cpp index 3f674a783..1ff158553 100644 --- a/examples/android/android-simple/app/src/main/cpp/KomputeModelML.cpp +++ b/examples/android/android-simple/app/src/main/cpp/KomputeModelML.cpp @@ -1,5 +1,8 @@ #include "KomputeModelML.hpp" +#include "my_shader.hpp" +#include + KomputeModelML::KomputeModelML() {} @@ -10,7 +13,6 @@ KomputeModelML::train(std::vector yData, std::vector xIData, std::vector xJData) { - std::vector zerosData; for (size_t i = 0; i < yData.size(); i++) { @@ -41,15 +43,11 @@ KomputeModelML::train(std::vector yData, wIn, wOutI, wOutJ, bIn, bOut, lOut }; - std::vector spirv = std::vector( - (uint32_t*)kp::shader_data::shaders_glsl_logisticregression_comp_spv, - (uint32_t*)(kp::shader_data:: - shaders_glsl_logisticregression_comp_spv + - kp::shader_data:: - shaders_glsl_logisticregression_comp_spv_len)); + const std::vector shader = std::vector( + shader::MY_SHADER_COMP_SPV.begin(), shader::MY_SHADER_COMP_SPV.end()); std::shared_ptr algorithm = mgr.algorithm( - params, spirv, kp::Workgroup({ 5 }), std::vector({ 5.0 })); + params, shader, kp::Workgroup({ 5 }), std::vector({ 5.0 })); mgr.sequence()->eval(params); @@ -84,7 +82,6 @@ KomputeModelML::train(std::vector yData, std::vector KomputeModelML::predict(std::vector xI, std::vector xJ) { - KP_LOG_INFO("Running prediction inference"); assert(xI.size() == xJ.size()); @@ -113,7 +110,6 @@ KomputeModelML::predict(std::vector xI, std::vector xJ) std::vector KomputeModelML::get_params() { - KP_LOG_INFO("Displaying results"); std::vector retVector; diff --git a/examples/android/android-simple/app/src/main/cpp/KomputeModelML.hpp b/examples/android/android-simple/app/src/main/cpp/KomputeModelML.hpp index 779c6db7f..633877376 100644 --- a/examples/android/android-simple/app/src/main/cpp/KomputeModelML.hpp +++ b/examples/android/android-simple/app/src/main/cpp/KomputeModelML.hpp @@ -1,13 +1,8 @@ -#ifndef KOMPUTEMODELML_HPP -#define KOMPUTEMODELML_HPP +#pragma once -#include -#include #include -#include "kompute/Kompute.hpp" - class KomputeModelML { @@ -27,62 +22,3 @@ class KomputeModelML std::vector mWeights; std::vector mBias; }; - -static std::string LR_SHADER = R"( -#version 450 - -layout (constant_id = 0) const uint M = 0; - -layout (local_size_x = 1) in; - -layout(set = 0, binding = 0) buffer bxi { float xi[]; }; -layout(set = 0, binding = 1) buffer bxj { float xj[]; }; -layout(set = 0, binding = 2) buffer by { float y[]; }; -layout(set = 0, binding = 3) buffer bwin { float win[]; }; -layout(set = 0, binding = 4) buffer bwouti { float wouti[]; }; -layout(set = 0, binding = 5) buffer bwoutj { float woutj[]; }; -layout(set = 0, binding = 6) buffer bbin { float bin[]; }; -layout(set = 0, binding = 7) buffer bbout { float bout[]; }; -layout(set = 0, binding = 8) buffer blout { float lout[]; }; - -float m = float(M); - -float sigmoid(float z) { - return 1.0 / (1.0 + exp(-z)); -} - -float inference(vec2 x, vec2 w, float b) { - // Compute the linear mapping function - float z = dot(w, x) + b; - // Calculate the y-hat with sigmoid - float yHat = sigmoid(z); - return yHat; -} - -float calculateLoss(float yHat, float y) { - return -(y * log(yHat) + (1.0 - y) * log(1.0 - yHat)); -} - -void main() { - uint idx = gl_GlobalInvocationID.x; - - vec2 wCurr = vec2(win[0], win[1]); - float bCurr = bin[0]; - - vec2 xCurr = vec2(xi[idx], xj[idx]); - float yCurr = y[idx]; - - float yHat = inference(xCurr, wCurr, bCurr); - - float dZ = yHat - yCurr; - vec2 dW = (1. / m) * xCurr * dZ; - float dB = (1. / m) * dZ; - wouti[idx] = dW.x; - woutj[idx] = dW.y; - bout[idx] = dB; - - lout[idx] = calculateLoss(yHat, yCurr); -} -)"; - -#endif // ANDROID_SIMPLE_KOMPUTEMODELML_HPP diff --git a/examples/android/android-simple/app/src/main/cpp/shader/CMakeLists.txt b/examples/android/android-simple/app/src/main/cpp/shader/CMakeLists.txt new file mode 100644 index 000000000..684a6a82a --- /dev/null +++ b/examples/android/android-simple/app/src/main/cpp/shader/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.20) + +# To add more shaders simply copy the vulkan_compile_shader command and replace it with your new shader +vulkan_compile_shader(INFILE my_shader.comp + OUTFILE my_shader.hpp + NAMESPACE "shader" + RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake") + +# Then add it to the library, so you can access it later in your code +add_library(shader INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/my_shader.hpp" + + # "${CMAKE_CURRENT_BINARY_DIR}/my_shader2.hpp" +) + +target_include_directories(shader INTERFACE $) diff --git a/examples/android/android-simple/app/src/main/cpp/shader/my_shader.comp b/examples/android/android-simple/app/src/main/cpp/shader/my_shader.comp new file mode 100644 index 000000000..a448dde2e --- /dev/null +++ b/examples/android/android-simple/app/src/main/cpp/shader/my_shader.comp @@ -0,0 +1,54 @@ +#version 450 + +layout (constant_id = 0) const uint M = 0; + +layout (local_size_x = 1) in; + +layout(set = 0, binding = 0) buffer bxi { float xi[]; }; +layout(set = 0, binding = 1) buffer bxj { float xj[]; }; +layout(set = 0, binding = 2) buffer by { float y[]; }; +layout(set = 0, binding = 3) buffer bwin { float win[]; }; +layout(set = 0, binding = 4) buffer bwouti { float wouti[]; }; +layout(set = 0, binding = 5) buffer bwoutj { float woutj[]; }; +layout(set = 0, binding = 6) buffer bbin { float bin[]; }; +layout(set = 0, binding = 7) buffer bbout { float bout[]; }; +layout(set = 0, binding = 8) buffer blout { float lout[]; }; + +float m = float(M); + +float sigmoid(float z) { + return 1.0 / (1.0 + exp(-z)); +} + +float inference(vec2 x, vec2 w, float b) { + // Compute the linear mapping function + float z = dot(w, x) + b; + // Calculate the y-hat with sigmoid + float yHat = sigmoid(z); + return yHat; +} + +float calculateLoss(float yHat, float y) { + return -(y * log(yHat) + (1.0 - y) * log(1.0 - yHat)); +} + +void main() { + uint idx = gl_GlobalInvocationID.x; + + vec2 wCurr = vec2(win[0], win[1]); + float bCurr = bin[0]; + + vec2 xCurr = vec2(xi[idx], xj[idx]); + float yCurr = y[idx]; + + float yHat = inference(xCurr, wCurr, bCurr); + + float dZ = yHat - yCurr; + vec2 dW = (1. / m) * xCurr * dZ; + float dB = (1. / m) * dZ; + wouti[idx] = dW.x; + woutj[idx] = dW.y; + bout[idx] = dB; + + lout[idx] = calculateLoss(yHat, yCurr); +} \ No newline at end of file diff --git a/examples/android/android-simple/build.gradle b/examples/android/android-simple/build.gradle index 31a2d163f..6ed042a42 100644 --- a/examples/android/android-simple/build.gradle +++ b/examples/android/android-simple/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.72' + ext.kotlin_version = '1.6.20' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.0' + classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties index 12582e2e7..cfcf34b60 100644 --- a/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties +++ b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0e4d6b2a5..dbb47dbe8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,7 +16,8 @@ add_library(kompute Algorithm.cpp OpTensorSyncDevice.cpp OpTensorSyncLocal.cpp Sequence.cpp - Tensor.cpp) + Tensor.cpp + Core.cpp) add_library(kompute::kompute ALIAS kompute) @@ -45,26 +46,11 @@ configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/komputeConfig.cmake.in install(FILES ${PROJECT_BINARY_DIR}/kompute/komputeConfig.cmake ${PROJECT_BINARY_DIR}/kompute/komputeConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute) -# #################################################### -# Android -# #################################################### -if(KOMPUTE_OPT_ANDROID_BUILD) - set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common) - set(VK_ANDROID_PATCH_DIR ${PROJECT_SOURCE_DIR}/vk_ndk_wrapper_include/) - set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) - - include_directories(${VK_ANDROID_COMMON_DIR} - ${VK_ANDROID_PATCH_DIR} - ${VK_ANDROID_INCLUDE_DIR}) - - add_library(kompute_vk_ndk_wrapper STATIC ${PROJECT_SOURCE_DIR}/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp) -endif() - # #################################################### # Linking # #################################################### if(KOMPUTE_OPT_ANDROID_BUILD) - target_link_libraries(kompute PUBLIC kompute_vk_ndk_wrapper + target_link_libraries(kompute PUBLIC vulkanAndroid android kp_logger kp_shader diff --git a/src/Core.cpp b/src/Core.cpp new file mode 100644 index 000000000..01c19ff36 --- /dev/null +++ b/src/Core.cpp @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: Apache-2.0 + +#include "kompute/Core.hpp" + +#if VK_USE_PLATFORM_ANDROID_KHR +#ifndef KOMPUTE_VK_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +#define KOMPUTE_VK_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +/** + * Ensures support for dynamic loading of Vulkan functions on Android. + * Acts as a default store for loaded functions. + * More information: + * https://github.com/KhronosGroup/Vulkan-Hpp#vulkan_hpp_default_dispatcher + **/ +VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +#endif // !KOMPUTE_VK_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +#endif // VK_USE_PLATFORM_ANDROID_KHR + +namespace kp { +} // namespace kp diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 307228d55..2384e47b2 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -1,12 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once -#if VK_USE_PLATFORM_ANDROID_KHR -#include -// VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp -#undef VK_NO_PROTOTYPES -#endif - #include // Typedefs to simplify interaction with core types diff --git a/src/include/kompute/logger/Logger.hpp b/src/include/kompute/logger/Logger.hpp index 4e3c1bd2a..29dfc8696 100644 --- a/src/include/kompute/logger/Logger.hpp +++ b/src/include/kompute/logger/Logger.hpp @@ -20,9 +20,7 @@ #if !KOMPUTE_OPT_USE_SPDLOG #if VK_USE_PLATFORM_ANDROID_KHR #include -#include -// VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp -#undef VK_NO_PROTOTYPES +#include static const char* KOMPUTE_LOG_TAG = "KomputeLog"; #else #if KOMPUTE_BUILD_PYTHON diff --git a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp deleted file mode 100755 index e5a71e5dd..000000000 --- a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp +++ /dev/null @@ -1,798 +0,0 @@ -/* - * Copyright 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// This file is generated. -#ifdef __cplusplus -extern "C" { -#endif - -#include "kompute_vk_ndk_wrapper.hpp" -#include - -PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; -PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; -PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; -PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; -PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; -PFN_vkCompileDeferredNV vkCompileDeferredNV; -PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; -PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; -PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; -PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; -PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; -PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; -#endif - - -int InitVulkan(void) { - void* libvulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL); - if (!libvulkan) return 0; - - // Vulkan supported, set function addresses - vkCreateInstance = reinterpret_cast(dlsym(libvulkan, "vkCreateInstance")); - vkDestroyInstance = reinterpret_cast(dlsym(libvulkan, "vkDestroyInstance")); - vkEnumeratePhysicalDevices = reinterpret_cast(dlsym(libvulkan, "vkEnumeratePhysicalDevices")); - vkGetPhysicalDeviceFeatures = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceFeatures")); - vkGetPhysicalDeviceFormatProperties = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceFormatProperties")); - vkGetPhysicalDeviceImageFormatProperties = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceImageFormatProperties")); - vkGetPhysicalDeviceProperties = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceProperties")); - vkGetPhysicalDeviceQueueFamilyProperties = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties")); - vkGetPhysicalDeviceMemoryProperties = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceMemoryProperties")); - vkGetInstanceProcAddr = reinterpret_cast(dlsym(libvulkan, "vkGetInstanceProcAddr")); - vkGetDeviceProcAddr = reinterpret_cast(dlsym(libvulkan, "vkGetDeviceProcAddr")); - vkCreateDevice = reinterpret_cast(dlsym(libvulkan, "vkCreateDevice")); - vkDestroyDevice = reinterpret_cast(dlsym(libvulkan, "vkDestroyDevice")); - vkEnumerateInstanceExtensionProperties = - reinterpret_cast(dlsym(libvulkan, "vkEnumerateInstanceExtensionProperties")); - vkEnumerateDeviceExtensionProperties = - reinterpret_cast(dlsym(libvulkan, "vkEnumerateDeviceExtensionProperties")); - vkEnumerateInstanceLayerProperties = - reinterpret_cast(dlsym(libvulkan, "vkEnumerateInstanceLayerProperties")); - vkEnumerateDeviceLayerProperties = - reinterpret_cast(dlsym(libvulkan, "vkEnumerateDeviceLayerProperties")); - vkGetDeviceQueue = reinterpret_cast(dlsym(libvulkan, "vkGetDeviceQueue")); - vkQueueSubmit = reinterpret_cast(dlsym(libvulkan, "vkQueueSubmit")); - vkQueueWaitIdle = reinterpret_cast(dlsym(libvulkan, "vkQueueWaitIdle")); - vkDeviceWaitIdle = reinterpret_cast(dlsym(libvulkan, "vkDeviceWaitIdle")); - vkAllocateMemory = reinterpret_cast(dlsym(libvulkan, "vkAllocateMemory")); - vkFreeMemory = reinterpret_cast(dlsym(libvulkan, "vkFreeMemory")); - vkMapMemory = reinterpret_cast(dlsym(libvulkan, "vkMapMemory")); - vkUnmapMemory = reinterpret_cast(dlsym(libvulkan, "vkUnmapMemory")); - vkFlushMappedMemoryRanges = reinterpret_cast(dlsym(libvulkan, "vkFlushMappedMemoryRanges")); - vkInvalidateMappedMemoryRanges = - reinterpret_cast(dlsym(libvulkan, "vkInvalidateMappedMemoryRanges")); - vkGetDeviceMemoryCommitment = - reinterpret_cast(dlsym(libvulkan, "vkGetDeviceMemoryCommitment")); - vkBindBufferMemory = reinterpret_cast(dlsym(libvulkan, "vkBindBufferMemory")); - vkBindImageMemory = reinterpret_cast(dlsym(libvulkan, "vkBindImageMemory")); - vkGetBufferMemoryRequirements = - reinterpret_cast(dlsym(libvulkan, "vkGetBufferMemoryRequirements")); - vkGetImageMemoryRequirements = - reinterpret_cast(dlsym(libvulkan, "vkGetImageMemoryRequirements")); - vkGetImageSparseMemoryRequirements = - reinterpret_cast(dlsym(libvulkan, "vkGetImageSparseMemoryRequirements")); - vkGetPhysicalDeviceSparseImageFormatProperties = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceSparseImageFormatProperties")); - vkQueueBindSparse = reinterpret_cast(dlsym(libvulkan, "vkQueueBindSparse")); - vkCreateFence = reinterpret_cast(dlsym(libvulkan, "vkCreateFence")); - vkDestroyFence = reinterpret_cast(dlsym(libvulkan, "vkDestroyFence")); - vkResetFences = reinterpret_cast(dlsym(libvulkan, "vkResetFences")); - vkGetFenceStatus = reinterpret_cast(dlsym(libvulkan, "vkGetFenceStatus")); - vkWaitForFences = reinterpret_cast(dlsym(libvulkan, "vkWaitForFences")); - vkCreateSemaphore = reinterpret_cast(dlsym(libvulkan, "vkCreateSemaphore")); - vkDestroySemaphore = reinterpret_cast(dlsym(libvulkan, "vkDestroySemaphore")); - vkCreateEvent = reinterpret_cast(dlsym(libvulkan, "vkCreateEvent")); - vkDestroyEvent = reinterpret_cast(dlsym(libvulkan, "vkDestroyEvent")); - vkGetEventStatus = reinterpret_cast(dlsym(libvulkan, "vkGetEventStatus")); - vkSetEvent = reinterpret_cast(dlsym(libvulkan, "vkSetEvent")); - vkResetEvent = reinterpret_cast(dlsym(libvulkan, "vkResetEvent")); - vkCreateQueryPool = reinterpret_cast(dlsym(libvulkan, "vkCreateQueryPool")); - vkDestroyQueryPool = reinterpret_cast(dlsym(libvulkan, "vkDestroyQueryPool")); - vkGetQueryPoolResults = reinterpret_cast(dlsym(libvulkan, "vkGetQueryPoolResults")); - vkCreateBuffer = reinterpret_cast(dlsym(libvulkan, "vkCreateBuffer")); - vkDestroyBuffer = reinterpret_cast(dlsym(libvulkan, "vkDestroyBuffer")); - vkCreateBufferView = reinterpret_cast(dlsym(libvulkan, "vkCreateBufferView")); - vkDestroyBufferView = reinterpret_cast(dlsym(libvulkan, "vkDestroyBufferView")); - vkCreateImage = reinterpret_cast(dlsym(libvulkan, "vkCreateImage")); - vkDestroyImage = reinterpret_cast(dlsym(libvulkan, "vkDestroyImage")); - vkGetImageSubresourceLayout = - reinterpret_cast(dlsym(libvulkan, "vkGetImageSubresourceLayout")); - vkCreateImageView = reinterpret_cast(dlsym(libvulkan, "vkCreateImageView")); - vkDestroyImageView = reinterpret_cast(dlsym(libvulkan, "vkDestroyImageView")); - vkCreateShaderModule = reinterpret_cast(dlsym(libvulkan, "vkCreateShaderModule")); - vkDestroyShaderModule = reinterpret_cast(dlsym(libvulkan, "vkDestroyShaderModule")); - vkCreatePipelineCache = reinterpret_cast(dlsym(libvulkan, "vkCreatePipelineCache")); - vkDestroyPipelineCache = reinterpret_cast(dlsym(libvulkan, "vkDestroyPipelineCache")); - vkGetPipelineCacheData = reinterpret_cast(dlsym(libvulkan, "vkGetPipelineCacheData")); - vkMergePipelineCaches = reinterpret_cast(dlsym(libvulkan, "vkMergePipelineCaches")); - vkCreateGraphicsPipelines = reinterpret_cast(dlsym(libvulkan, "vkCreateGraphicsPipelines")); - vkCreateComputePipelines = reinterpret_cast(dlsym(libvulkan, "vkCreateComputePipelines")); - vkDestroyPipeline = reinterpret_cast(dlsym(libvulkan, "vkDestroyPipeline")); - vkCreatePipelineLayout = reinterpret_cast(dlsym(libvulkan, "vkCreatePipelineLayout")); - vkDestroyPipelineLayout = reinterpret_cast(dlsym(libvulkan, "vkDestroyPipelineLayout")); - vkCreateSampler = reinterpret_cast(dlsym(libvulkan, "vkCreateSampler")); - vkDestroySampler = reinterpret_cast(dlsym(libvulkan, "vkDestroySampler")); - vkCreateDescriptorSetLayout = - reinterpret_cast(dlsym(libvulkan, "vkCreateDescriptorSetLayout")); - vkDestroyDescriptorSetLayout = - reinterpret_cast(dlsym(libvulkan, "vkDestroyDescriptorSetLayout")); - vkCreateDescriptorPool = reinterpret_cast(dlsym(libvulkan, "vkCreateDescriptorPool")); - vkDestroyDescriptorPool = reinterpret_cast(dlsym(libvulkan, "vkDestroyDescriptorPool")); - vkResetDescriptorPool = reinterpret_cast(dlsym(libvulkan, "vkResetDescriptorPool")); - vkAllocateDescriptorSets = reinterpret_cast(dlsym(libvulkan, "vkAllocateDescriptorSets")); - vkFreeDescriptorSets = reinterpret_cast(dlsym(libvulkan, "vkFreeDescriptorSets")); - vkUpdateDescriptorSets = reinterpret_cast(dlsym(libvulkan, "vkUpdateDescriptorSets")); - vkCreateFramebuffer = reinterpret_cast(dlsym(libvulkan, "vkCreateFramebuffer")); - vkDestroyFramebuffer = reinterpret_cast(dlsym(libvulkan, "vkDestroyFramebuffer")); - vkCreateRenderPass = reinterpret_cast(dlsym(libvulkan, "vkCreateRenderPass")); - vkDestroyRenderPass = reinterpret_cast(dlsym(libvulkan, "vkDestroyRenderPass")); - vkGetRenderAreaGranularity = reinterpret_cast(dlsym(libvulkan, "vkGetRenderAreaGranularity")); - vkCreateCommandPool = reinterpret_cast(dlsym(libvulkan, "vkCreateCommandPool")); - vkDestroyCommandPool = reinterpret_cast(dlsym(libvulkan, "vkDestroyCommandPool")); - vkResetCommandPool = reinterpret_cast(dlsym(libvulkan, "vkResetCommandPool")); - vkAllocateCommandBuffers = reinterpret_cast(dlsym(libvulkan, "vkAllocateCommandBuffers")); - vkFreeCommandBuffers = reinterpret_cast(dlsym(libvulkan, "vkFreeCommandBuffers")); - vkBeginCommandBuffer = reinterpret_cast(dlsym(libvulkan, "vkBeginCommandBuffer")); - vkEndCommandBuffer = reinterpret_cast(dlsym(libvulkan, "vkEndCommandBuffer")); - vkResetCommandBuffer = reinterpret_cast(dlsym(libvulkan, "vkResetCommandBuffer")); - vkCmdBindPipeline = reinterpret_cast(dlsym(libvulkan, "vkCmdBindPipeline")); - vkCmdSetViewport = reinterpret_cast(dlsym(libvulkan, "vkCmdSetViewport")); - vkCmdSetScissor = reinterpret_cast(dlsym(libvulkan, "vkCmdSetScissor")); - vkCmdSetLineWidth = reinterpret_cast(dlsym(libvulkan, "vkCmdSetLineWidth")); - vkCmdSetDepthBias = reinterpret_cast(dlsym(libvulkan, "vkCmdSetDepthBias")); - vkCmdSetBlendConstants = reinterpret_cast(dlsym(libvulkan, "vkCmdSetBlendConstants")); - vkCmdSetDepthBounds = reinterpret_cast(dlsym(libvulkan, "vkCmdSetDepthBounds")); - vkCmdSetStencilCompareMask = reinterpret_cast(dlsym(libvulkan, "vkCmdSetStencilCompareMask")); - vkCmdSetStencilWriteMask = reinterpret_cast(dlsym(libvulkan, "vkCmdSetStencilWriteMask")); - vkCmdSetStencilReference = reinterpret_cast(dlsym(libvulkan, "vkCmdSetStencilReference")); - vkCmdBindDescriptorSets = reinterpret_cast(dlsym(libvulkan, "vkCmdBindDescriptorSets")); - vkCmdBindIndexBuffer = reinterpret_cast(dlsym(libvulkan, "vkCmdBindIndexBuffer")); - vkCmdBindVertexBuffers = reinterpret_cast(dlsym(libvulkan, "vkCmdBindVertexBuffers")); - vkCmdDraw = reinterpret_cast(dlsym(libvulkan, "vkCmdDraw")); - vkCmdDrawIndexed = reinterpret_cast(dlsym(libvulkan, "vkCmdDrawIndexed")); - vkCmdDrawIndirect = reinterpret_cast(dlsym(libvulkan, "vkCmdDrawIndirect")); - vkCmdDrawIndexedIndirect = reinterpret_cast(dlsym(libvulkan, "vkCmdDrawIndexedIndirect")); - vkCmdDispatch = reinterpret_cast(dlsym(libvulkan, "vkCmdDispatch")); - vkCmdDispatchIndirect = reinterpret_cast(dlsym(libvulkan, "vkCmdDispatchIndirect")); - vkCmdCopyBuffer = reinterpret_cast(dlsym(libvulkan, "vkCmdCopyBuffer")); - vkCmdCopyImage = reinterpret_cast(dlsym(libvulkan, "vkCmdCopyImage")); - vkCmdBlitImage = reinterpret_cast(dlsym(libvulkan, "vkCmdBlitImage")); - vkCmdCopyBufferToImage = reinterpret_cast(dlsym(libvulkan, "vkCmdCopyBufferToImage")); - vkCmdCopyImageToBuffer = reinterpret_cast(dlsym(libvulkan, "vkCmdCopyImageToBuffer")); - vkCmdUpdateBuffer = reinterpret_cast(dlsym(libvulkan, "vkCmdUpdateBuffer")); - vkCmdFillBuffer = reinterpret_cast(dlsym(libvulkan, "vkCmdFillBuffer")); - vkCmdClearColorImage = reinterpret_cast(dlsym(libvulkan, "vkCmdClearColorImage")); - vkCmdClearDepthStencilImage = - reinterpret_cast(dlsym(libvulkan, "vkCmdClearDepthStencilImage")); - vkCmdClearAttachments = reinterpret_cast(dlsym(libvulkan, "vkCmdClearAttachments")); - vkCmdResolveImage = reinterpret_cast(dlsym(libvulkan, "vkCmdResolveImage")); - vkCmdSetEvent = reinterpret_cast(dlsym(libvulkan, "vkCmdSetEvent")); - vkCmdResetEvent = reinterpret_cast(dlsym(libvulkan, "vkCmdResetEvent")); - vkCmdWaitEvents = reinterpret_cast(dlsym(libvulkan, "vkCmdWaitEvents")); - vkCmdPipelineBarrier = reinterpret_cast(dlsym(libvulkan, "vkCmdPipelineBarrier")); - vkCmdBeginQuery = reinterpret_cast(dlsym(libvulkan, "vkCmdBeginQuery")); - vkCmdEndQuery = reinterpret_cast(dlsym(libvulkan, "vkCmdEndQuery")); - vkCmdResetQueryPool = reinterpret_cast(dlsym(libvulkan, "vkCmdResetQueryPool")); - vkCmdWriteTimestamp = reinterpret_cast(dlsym(libvulkan, "vkCmdWriteTimestamp")); - vkCmdCopyQueryPoolResults = reinterpret_cast(dlsym(libvulkan, "vkCmdCopyQueryPoolResults")); - vkCmdPushConstants = reinterpret_cast(dlsym(libvulkan, "vkCmdPushConstants")); - vkCmdBeginRenderPass = reinterpret_cast(dlsym(libvulkan, "vkCmdBeginRenderPass")); - vkCmdNextSubpass = reinterpret_cast(dlsym(libvulkan, "vkCmdNextSubpass")); - vkCmdEndRenderPass = reinterpret_cast(dlsym(libvulkan, "vkCmdEndRenderPass")); - vkCmdExecuteCommands = reinterpret_cast(dlsym(libvulkan, "vkCmdExecuteCommands")); - vkEnumerateInstanceVersion = reinterpret_cast(dlsym(libvulkan, "vkEnumerateInstanceVersion")); - vkBindBufferMemory2 = reinterpret_cast(dlsym(libvulkan, "vkBindBufferMemory2")); - vkBindImageMemory2 = reinterpret_cast(dlsym(libvulkan, "vkBindImageMemory2")); - vkGetDeviceGroupPeerMemoryFeatures = - reinterpret_cast(dlsym(libvulkan, "vkGetDeviceGroupPeerMemoryFeatures")); - vkCmdSetDeviceMask = reinterpret_cast(dlsym(libvulkan, "vkCmdSetDeviceMask")); - vkCmdDispatchBase = reinterpret_cast(dlsym(libvulkan, "vkCmdDispatchBase")); - vkEnumeratePhysicalDeviceGroups = - reinterpret_cast(dlsym(libvulkan, "vkEnumeratePhysicalDeviceGroups")); - vkGetImageMemoryRequirements2 = - reinterpret_cast(dlsym(libvulkan, "vkGetImageMemoryRequirements2")); - vkGetBufferMemoryRequirements2 = - reinterpret_cast(dlsym(libvulkan, "vkGetBufferMemoryRequirements2")); - vkGetImageSparseMemoryRequirements2 = - reinterpret_cast(dlsym(libvulkan, "vkGetImageSparseMemoryRequirements2")); - vkGetPhysicalDeviceFeatures2 = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceFeatures2")); - vkGetPhysicalDeviceProperties2 = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceProperties2")); - vkGetPhysicalDeviceFormatProperties2 = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceFormatProperties2")); - vkGetPhysicalDeviceImageFormatProperties2 = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceImageFormatProperties2")); - vkGetPhysicalDeviceQueueFamilyProperties2 = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties2")); - vkGetPhysicalDeviceMemoryProperties2 = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceMemoryProperties2")); - vkGetPhysicalDeviceSparseImageFormatProperties2 = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceSparseImageFormatProperties2")); - vkTrimCommandPool = reinterpret_cast(dlsym(libvulkan, "vkTrimCommandPool")); - vkGetDeviceQueue2 = reinterpret_cast(dlsym(libvulkan, "vkGetDeviceQueue2")); - vkCreateSamplerYcbcrConversion = - reinterpret_cast(dlsym(libvulkan, "vkCreateSamplerYcbcrConversion")); - vkDestroySamplerYcbcrConversion = - reinterpret_cast(dlsym(libvulkan, "vkDestroySamplerYcbcrConversion")); - vkCreateDescriptorUpdateTemplate = - reinterpret_cast(dlsym(libvulkan, "vkCreateDescriptorUpdateTemplate")); - vkDestroyDescriptorUpdateTemplate = - reinterpret_cast(dlsym(libvulkan, "vkDestroyDescriptorUpdateTemplate")); - vkUpdateDescriptorSetWithTemplate = - reinterpret_cast(dlsym(libvulkan, "vkUpdateDescriptorSetWithTemplate")); - vkGetPhysicalDeviceExternalBufferProperties = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceExternalBufferProperties")); - vkGetPhysicalDeviceExternalFenceProperties = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceExternalFenceProperties")); - vkGetPhysicalDeviceExternalSemaphoreProperties = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceExternalSemaphoreProperties")); - vkGetDescriptorSetLayoutSupport = - reinterpret_cast(dlsym(libvulkan, "vkGetDescriptorSetLayoutSupport")); - vkDestroySurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkDestroySurfaceKHR")); - vkGetPhysicalDeviceSurfaceSupportKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceSupportKHR")); - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")); - vkGetPhysicalDeviceSurfaceFormatsKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceFormatsKHR")); - vkGetPhysicalDeviceSurfacePresentModesKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceSurfacePresentModesKHR")); - vkCreateSwapchainKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateSwapchainKHR")); - vkDestroySwapchainKHR = reinterpret_cast(dlsym(libvulkan, "vkDestroySwapchainKHR")); - vkGetSwapchainImagesKHR = reinterpret_cast(dlsym(libvulkan, "vkGetSwapchainImagesKHR")); - vkAcquireNextImageKHR = reinterpret_cast(dlsym(libvulkan, "vkAcquireNextImageKHR")); - vkQueuePresentKHR = reinterpret_cast(dlsym(libvulkan, "vkQueuePresentKHR")); - vkGetDeviceGroupPresentCapabilitiesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDeviceGroupPresentCapabilitiesKHR")); - vkGetDeviceGroupSurfacePresentModesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDeviceGroupSurfacePresentModesKHR")); - vkGetPhysicalDevicePresentRectanglesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDevicePresentRectanglesKHR")); - vkAcquireNextImage2KHR = reinterpret_cast(dlsym(libvulkan, "vkAcquireNextImage2KHR")); - vkGetPhysicalDeviceDisplayPropertiesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPropertiesKHR")); - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")); - vkGetDisplayPlaneSupportedDisplaysKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDisplayPlaneSupportedDisplaysKHR")); - vkGetDisplayModePropertiesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDisplayModePropertiesKHR")); - vkCreateDisplayModeKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateDisplayModeKHR")); - vkGetDisplayPlaneCapabilitiesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDisplayPlaneCapabilitiesKHR")); - vkCreateDisplayPlaneSurfaceKHR = - reinterpret_cast(dlsym(libvulkan, "vkCreateDisplayPlaneSurfaceKHR")); - vkCreateSharedSwapchainsKHR = - reinterpret_cast(dlsym(libvulkan, "vkCreateSharedSwapchainsKHR")); - vkGetPhysicalDeviceFeatures2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceFeatures2KHR")); - vkGetPhysicalDeviceProperties2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceProperties2KHR")); - vkGetPhysicalDeviceFormatProperties2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceFormatProperties2KHR")); - vkGetPhysicalDeviceImageFormatProperties2KHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceImageFormatProperties2KHR")); - vkGetPhysicalDeviceQueueFamilyProperties2KHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties2KHR")); - vkGetPhysicalDeviceMemoryProperties2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceMemoryProperties2KHR")); - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")); - vkGetDeviceGroupPeerMemoryFeaturesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDeviceGroupPeerMemoryFeaturesKHR")); - vkCmdSetDeviceMaskKHR = reinterpret_cast(dlsym(libvulkan, "vkCmdSetDeviceMaskKHR")); - vkCmdDispatchBaseKHR = reinterpret_cast(dlsym(libvulkan, "vkCmdDispatchBaseKHR")); - vkTrimCommandPoolKHR = reinterpret_cast(dlsym(libvulkan, "vkTrimCommandPoolKHR")); - vkEnumeratePhysicalDeviceGroupsKHR = - reinterpret_cast(dlsym(libvulkan, "vkEnumeratePhysicalDeviceGroupsKHR")); - vkGetPhysicalDeviceExternalBufferPropertiesKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceExternalBufferPropertiesKHR")); - vkGetMemoryFdKHR = reinterpret_cast(dlsym(libvulkan, "vkGetMemoryFdKHR")); - vkGetMemoryFdPropertiesKHR = reinterpret_cast(dlsym(libvulkan, "vkGetMemoryFdPropertiesKHR")); - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")); - vkImportSemaphoreFdKHR = reinterpret_cast(dlsym(libvulkan, "vkImportSemaphoreFdKHR")); - vkGetSemaphoreFdKHR = reinterpret_cast(dlsym(libvulkan, "vkGetSemaphoreFdKHR")); - vkCmdPushDescriptorSetKHR = reinterpret_cast(dlsym(libvulkan, "vkCmdPushDescriptorSetKHR")); - vkCmdPushDescriptorSetWithTemplateKHR = - reinterpret_cast(dlsym(libvulkan, "vkCmdPushDescriptorSetWithTemplateKHR")); - vkCreateDescriptorUpdateTemplateKHR = - reinterpret_cast(dlsym(libvulkan, "vkCreateDescriptorUpdateTemplateKHR")); - vkDestroyDescriptorUpdateTemplateKHR = - reinterpret_cast(dlsym(libvulkan, "vkDestroyDescriptorUpdateTemplateKHR")); - vkUpdateDescriptorSetWithTemplateKHR = - reinterpret_cast(dlsym(libvulkan, "vkUpdateDescriptorSetWithTemplateKHR")); - vkCreateRenderPass2KHR = reinterpret_cast(dlsym(libvulkan, "vkCreateRenderPass2KHR")); - vkCmdBeginRenderPass2KHR = reinterpret_cast(dlsym(libvulkan, "vkCmdBeginRenderPass2KHR")); - vkCmdNextSubpass2KHR = reinterpret_cast(dlsym(libvulkan, "vkCmdNextSubpass2KHR")); - vkCmdEndRenderPass2KHR = reinterpret_cast(dlsym(libvulkan, "vkCmdEndRenderPass2KHR")); - vkGetSwapchainStatusKHR = reinterpret_cast(dlsym(libvulkan, "vkGetSwapchainStatusKHR")); - vkGetPhysicalDeviceExternalFencePropertiesKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceExternalFencePropertiesKHR")); - vkImportFenceFdKHR = reinterpret_cast(dlsym(libvulkan, "vkImportFenceFdKHR")); - vkGetFenceFdKHR = reinterpret_cast(dlsym(libvulkan, "vkGetFenceFdKHR")); - vkGetPhysicalDeviceSurfaceCapabilities2KHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")); - vkGetPhysicalDeviceSurfaceFormats2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceFormats2KHR")); - vkGetPhysicalDeviceDisplayProperties2KHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceDisplayProperties2KHR")); - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")); - vkGetDisplayModeProperties2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDisplayModeProperties2KHR")); - vkGetDisplayPlaneCapabilities2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDisplayPlaneCapabilities2KHR")); - vkGetImageMemoryRequirements2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetImageMemoryRequirements2KHR")); - vkGetBufferMemoryRequirements2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetBufferMemoryRequirements2KHR")); - vkGetImageSparseMemoryRequirements2KHR = - reinterpret_cast(dlsym(libvulkan, "vkGetImageSparseMemoryRequirements2KHR")); - vkCreateSamplerYcbcrConversionKHR = - reinterpret_cast(dlsym(libvulkan, "vkCreateSamplerYcbcrConversionKHR")); - vkDestroySamplerYcbcrConversionKHR = - reinterpret_cast(dlsym(libvulkan, "vkDestroySamplerYcbcrConversionKHR")); - vkBindBufferMemory2KHR = reinterpret_cast(dlsym(libvulkan, "vkBindBufferMemory2KHR")); - vkBindImageMemory2KHR = reinterpret_cast(dlsym(libvulkan, "vkBindImageMemory2KHR")); - vkGetDescriptorSetLayoutSupportKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetDescriptorSetLayoutSupportKHR")); - vkCmdDrawIndirectCountKHR = reinterpret_cast(dlsym(libvulkan, "vkCmdDrawIndirectCountKHR")); - vkCmdDrawIndexedIndirectCountKHR = - reinterpret_cast(dlsym(libvulkan, "vkCmdDrawIndexedIndirectCountKHR")); - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkCreateAndroidSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateAndroidSurfaceKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkCreateWaylandSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateWaylandSurfaceKHR")); - vkGetPhysicalDeviceWaylandPresentationSupportKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkCreateWin32SurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateWin32SurfaceKHR")); - vkGetPhysicalDeviceWin32PresentationSupportKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceWin32PresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = reinterpret_cast(dlsym(libvulkan, "vkGetMemoryWin32HandleKHR")); - vkGetMemoryWin32HandlePropertiesKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetMemoryWin32HandlePropertiesKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = - reinterpret_cast(dlsym(libvulkan, "vkImportSemaphoreWin32HandleKHR")); - vkGetSemaphoreWin32HandleKHR = - reinterpret_cast(dlsym(libvulkan, "vkGetSemaphoreWin32HandleKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = - reinterpret_cast(dlsym(libvulkan, "vkImportFenceWin32HandleKHR")); - vkGetFenceWin32HandleKHR = reinterpret_cast(dlsym(libvulkan, "vkGetFenceWin32HandleKHR")); -#endif - -#ifdef VK_USE_PLATFORM_XCB_KHR - vkCreateXcbSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateXcbSurfaceKHR")); - vkGetPhysicalDeviceXcbPresentationSupportKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceXcbPresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkCreateXlibSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateXlibSurfaceKHR")); - vkGetPhysicalDeviceXlibPresentationSupportKHR = reinterpret_cast( - dlsym(libvulkan, "vkGetPhysicalDeviceXlibPresentationSupportKHR")); -#endif - return 1; -} - -// No Vulkan support, do not set function addresses -PFN_vkCreateInstance vkCreateInstance; -PFN_vkDestroyInstance vkDestroyInstance; -PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; -PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; -PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; -PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; -PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; -PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; -PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; -PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; -PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; -PFN_vkCreateDevice vkCreateDevice; -PFN_vkDestroyDevice vkDestroyDevice; -PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; -PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; -PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; -PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; -PFN_vkGetDeviceQueue vkGetDeviceQueue; -PFN_vkQueueSubmit vkQueueSubmit; -PFN_vkQueueWaitIdle vkQueueWaitIdle; -PFN_vkDeviceWaitIdle vkDeviceWaitIdle; -PFN_vkAllocateMemory vkAllocateMemory; -PFN_vkFreeMemory vkFreeMemory; -PFN_vkMapMemory vkMapMemory; -PFN_vkUnmapMemory vkUnmapMemory; -PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; -PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; -PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; -PFN_vkBindBufferMemory vkBindBufferMemory; -PFN_vkBindImageMemory vkBindImageMemory; -PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; -PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; -PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; -PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; -PFN_vkQueueBindSparse vkQueueBindSparse; -PFN_vkCreateFence vkCreateFence; -PFN_vkDestroyFence vkDestroyFence; -PFN_vkResetFences vkResetFences; -PFN_vkGetFenceStatus vkGetFenceStatus; -PFN_vkWaitForFences vkWaitForFences; -PFN_vkCreateSemaphore vkCreateSemaphore; -PFN_vkDestroySemaphore vkDestroySemaphore; -PFN_vkCreateEvent vkCreateEvent; -PFN_vkDestroyEvent vkDestroyEvent; -PFN_vkGetEventStatus vkGetEventStatus; -PFN_vkSetEvent vkSetEvent; -PFN_vkResetEvent vkResetEvent; -PFN_vkCreateQueryPool vkCreateQueryPool; -PFN_vkDestroyQueryPool vkDestroyQueryPool; -PFN_vkGetQueryPoolResults vkGetQueryPoolResults; -PFN_vkCreateBuffer vkCreateBuffer; -PFN_vkDestroyBuffer vkDestroyBuffer; -PFN_vkCreateBufferView vkCreateBufferView; -PFN_vkDestroyBufferView vkDestroyBufferView; -PFN_vkCreateImage vkCreateImage; -PFN_vkDestroyImage vkDestroyImage; -PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; -PFN_vkCreateImageView vkCreateImageView; -PFN_vkDestroyImageView vkDestroyImageView; -PFN_vkCreateShaderModule vkCreateShaderModule; -PFN_vkDestroyShaderModule vkDestroyShaderModule; -PFN_vkCreatePipelineCache vkCreatePipelineCache; -PFN_vkDestroyPipelineCache vkDestroyPipelineCache; -PFN_vkGetPipelineCacheData vkGetPipelineCacheData; -PFN_vkMergePipelineCaches vkMergePipelineCaches; -PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; -PFN_vkCreateComputePipelines vkCreateComputePipelines; -PFN_vkDestroyPipeline vkDestroyPipeline; -PFN_vkCreatePipelineLayout vkCreatePipelineLayout; -PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; -PFN_vkCreateSampler vkCreateSampler; -PFN_vkDestroySampler vkDestroySampler; -PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; -PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; -PFN_vkCreateDescriptorPool vkCreateDescriptorPool; -PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; -PFN_vkResetDescriptorPool vkResetDescriptorPool; -PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; -PFN_vkFreeDescriptorSets vkFreeDescriptorSets; -PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; -PFN_vkCreateFramebuffer vkCreateFramebuffer; -PFN_vkDestroyFramebuffer vkDestroyFramebuffer; -PFN_vkCreateRenderPass vkCreateRenderPass; -PFN_vkDestroyRenderPass vkDestroyRenderPass; -PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; -PFN_vkCreateCommandPool vkCreateCommandPool; -PFN_vkDestroyCommandPool vkDestroyCommandPool; -PFN_vkResetCommandPool vkResetCommandPool; -PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; -PFN_vkFreeCommandBuffers vkFreeCommandBuffers; -PFN_vkBeginCommandBuffer vkBeginCommandBuffer; -PFN_vkEndCommandBuffer vkEndCommandBuffer; -PFN_vkResetCommandBuffer vkResetCommandBuffer; -PFN_vkCmdBindPipeline vkCmdBindPipeline; -PFN_vkCmdSetViewport vkCmdSetViewport; -PFN_vkCmdSetScissor vkCmdSetScissor; -PFN_vkCmdSetLineWidth vkCmdSetLineWidth; -PFN_vkCmdSetDepthBias vkCmdSetDepthBias; -PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; -PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; -PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; -PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; -PFN_vkCmdSetStencilReference vkCmdSetStencilReference; -PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; -PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; -PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; -PFN_vkCmdDraw vkCmdDraw; -PFN_vkCmdDrawIndexed vkCmdDrawIndexed; -PFN_vkCmdDrawIndirect vkCmdDrawIndirect; -PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; -PFN_vkCmdDispatch vkCmdDispatch; -PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; -PFN_vkCmdCopyBuffer vkCmdCopyBuffer; -PFN_vkCmdCopyImage vkCmdCopyImage; -PFN_vkCmdBlitImage vkCmdBlitImage; -PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; -PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; -PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; -PFN_vkCmdFillBuffer vkCmdFillBuffer; -PFN_vkCmdClearColorImage vkCmdClearColorImage; -PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; -PFN_vkCmdClearAttachments vkCmdClearAttachments; -PFN_vkCmdResolveImage vkCmdResolveImage; -PFN_vkCmdSetEvent vkCmdSetEvent; -PFN_vkCmdResetEvent vkCmdResetEvent; -PFN_vkCmdWaitEvents vkCmdWaitEvents; -PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; -PFN_vkCmdBeginQuery vkCmdBeginQuery; -PFN_vkCmdEndQuery vkCmdEndQuery; -PFN_vkCmdResetQueryPool vkCmdResetQueryPool; -PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; -PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; -PFN_vkCmdPushConstants vkCmdPushConstants; -PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; -PFN_vkCmdNextSubpass vkCmdNextSubpass; -PFN_vkCmdEndRenderPass vkCmdEndRenderPass; -PFN_vkCmdExecuteCommands vkCmdExecuteCommands; -PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; -PFN_vkBindBufferMemory2 vkBindBufferMemory2; -PFN_vkBindImageMemory2 vkBindImageMemory2; -PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; -PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; -PFN_vkCmdDispatchBase vkCmdDispatchBase; -PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; -PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; -PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; -PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; -PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; -PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; -PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; -PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; -PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; -PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; -PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; -PFN_vkTrimCommandPool vkTrimCommandPool; -PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; -PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; -PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; -PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; -PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; -PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; -PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; -PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; -PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; -PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; -PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; -PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; -PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; -PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; -PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; -PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; -PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; -PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; -PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; -PFN_vkQueuePresentKHR vkQueuePresentKHR; -PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; -PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; -PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; -PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; -PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; -PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; -PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; -PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; -PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; -PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; -PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; -PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; -PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; -PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; -PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; -PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; -PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; -PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; -PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; -PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; -PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; -PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; -PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; -PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; -PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; -PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; -PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; -PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; -PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; -PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; -PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; -PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; -PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; -PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; -PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; -PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; -PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; -PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; -PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; -PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; -PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; -PFN_vkImportFenceFdKHR vkImportFenceFdKHR; -PFN_vkGetFenceFdKHR vkGetFenceFdKHR; -PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; -PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; -PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; -PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; -PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; -PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; -PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; -PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; -PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; -PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; -PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; -PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; -PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; -PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; -PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; -PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; -PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; -PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; -PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; -PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; -PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; -PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; -PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; -PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; -PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; -PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; -PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; -PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; -PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; -PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; -PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; -PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; -PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; -PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; -PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; -PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; -PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX; -PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX; -PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX; -PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX; -PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX; -PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX; -PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX; -PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX; -PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX; -PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; -PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; -PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; -PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; -PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; -PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; -PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; -PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; -PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; -PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; -PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; -PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; -PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; -PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; -PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; -PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; -PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; -PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; -PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; -PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; -PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; -PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; -PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; -PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; -PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; -PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; -PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; -PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; -PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; -PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; -PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; -PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; -PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; -PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; -PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; -PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; -PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; -PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; -PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; -PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; -PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; -PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; -PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; - -#ifdef VK_USE_PLATFORM_FUCHSIA -PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; -#endif - -#ifdef VK_USE_PLATFORM_IOS_MVK -PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; -#endif - -#ifdef VK_USE_PLATFORM_MACOS_MVK -PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; -#endif - -#ifdef VK_USE_PLATFORM_VI_NN -PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; -#endif - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; -PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; -PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; -PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; -PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; -PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#endif - -#ifdef VK_USE_PLATFORM_XCB_KHR -PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; -PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_XLIB_KHR -PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; -PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT -PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; -PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; -#endif - -#ifdef __cplusplus -} -#endif diff --git a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.hpp b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.hpp deleted file mode 100755 index b387bade3..000000000 --- a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.hpp +++ /dev/null @@ -1,414 +0,0 @@ -/* - * Copyright 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// This file is generated. -#ifndef VULKAN_WRAPPER_H -#define VULKAN_WRAPPER_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define VK_NO_PROTOTYPES 1 -#include -#include - -/* Initialize the Vulkan function pointer variables declared in this header. - * Returns 0 if vulkan is not available, non-zero if it is available. - */ -int InitVulkan(void); - -// VK_core_0 -extern PFN_vkCreateInstance vkCreateInstance; -extern PFN_vkDestroyInstance vkDestroyInstance; -extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; -extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; -extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; -extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; -extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; -extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; -extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; -extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; -extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; -extern PFN_vkCreateDevice vkCreateDevice; -extern PFN_vkDestroyDevice vkDestroyDevice; -extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; -extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; -extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; -extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; -extern PFN_vkGetDeviceQueue vkGetDeviceQueue; -extern PFN_vkQueueSubmit vkQueueSubmit; -extern PFN_vkQueueWaitIdle vkQueueWaitIdle; -extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle; -extern PFN_vkAllocateMemory vkAllocateMemory; -extern PFN_vkFreeMemory vkFreeMemory; -extern PFN_vkMapMemory vkMapMemory; -extern PFN_vkUnmapMemory vkUnmapMemory; -extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; -extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; -extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; -extern PFN_vkBindBufferMemory vkBindBufferMemory; -extern PFN_vkBindImageMemory vkBindImageMemory; -extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; -extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; -extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; -extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; -extern PFN_vkQueueBindSparse vkQueueBindSparse; -extern PFN_vkCreateFence vkCreateFence; -extern PFN_vkDestroyFence vkDestroyFence; -extern PFN_vkResetFences vkResetFences; -extern PFN_vkGetFenceStatus vkGetFenceStatus; -extern PFN_vkWaitForFences vkWaitForFences; -extern PFN_vkCreateSemaphore vkCreateSemaphore; -extern PFN_vkDestroySemaphore vkDestroySemaphore; -extern PFN_vkCreateEvent vkCreateEvent; -extern PFN_vkDestroyEvent vkDestroyEvent; -extern PFN_vkGetEventStatus vkGetEventStatus; -extern PFN_vkSetEvent vkSetEvent; -extern PFN_vkResetEvent vkResetEvent; -extern PFN_vkCreateQueryPool vkCreateQueryPool; -extern PFN_vkDestroyQueryPool vkDestroyQueryPool; -extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults; -extern PFN_vkCreateBuffer vkCreateBuffer; -extern PFN_vkDestroyBuffer vkDestroyBuffer; -extern PFN_vkCreateBufferView vkCreateBufferView; -extern PFN_vkDestroyBufferView vkDestroyBufferView; -extern PFN_vkCreateImage vkCreateImage; -extern PFN_vkDestroyImage vkDestroyImage; -extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; -extern PFN_vkCreateImageView vkCreateImageView; -extern PFN_vkDestroyImageView vkDestroyImageView; -extern PFN_vkCreateShaderModule vkCreateShaderModule; -extern PFN_vkDestroyShaderModule vkDestroyShaderModule; -extern PFN_vkCreatePipelineCache vkCreatePipelineCache; -extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache; -extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData; -extern PFN_vkMergePipelineCaches vkMergePipelineCaches; -extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; -extern PFN_vkCreateComputePipelines vkCreateComputePipelines; -extern PFN_vkDestroyPipeline vkDestroyPipeline; -extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout; -extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; -extern PFN_vkCreateSampler vkCreateSampler; -extern PFN_vkDestroySampler vkDestroySampler; -extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; -extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; -extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool; -extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; -extern PFN_vkResetDescriptorPool vkResetDescriptorPool; -extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; -extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets; -extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; -extern PFN_vkCreateFramebuffer vkCreateFramebuffer; -extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer; -extern PFN_vkCreateRenderPass vkCreateRenderPass; -extern PFN_vkDestroyRenderPass vkDestroyRenderPass; -extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; -extern PFN_vkCreateCommandPool vkCreateCommandPool; -extern PFN_vkDestroyCommandPool vkDestroyCommandPool; -extern PFN_vkResetCommandPool vkResetCommandPool; -extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; -extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers; -extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer; -extern PFN_vkEndCommandBuffer vkEndCommandBuffer; -extern PFN_vkResetCommandBuffer vkResetCommandBuffer; -extern PFN_vkCmdBindPipeline vkCmdBindPipeline; -extern PFN_vkCmdSetViewport vkCmdSetViewport; -extern PFN_vkCmdSetScissor vkCmdSetScissor; -extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth; -extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias; -extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; -extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; -extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; -extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; -extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference; -extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; -extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; -extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; -extern PFN_vkCmdDraw vkCmdDraw; -extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed; -extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect; -extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; -extern PFN_vkCmdDispatch vkCmdDispatch; -extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; -extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer; -extern PFN_vkCmdCopyImage vkCmdCopyImage; -extern PFN_vkCmdBlitImage vkCmdBlitImage; -extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; -extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; -extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; -extern PFN_vkCmdFillBuffer vkCmdFillBuffer; -extern PFN_vkCmdClearColorImage vkCmdClearColorImage; -extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; -extern PFN_vkCmdClearAttachments vkCmdClearAttachments; -extern PFN_vkCmdResolveImage vkCmdResolveImage; -extern PFN_vkCmdSetEvent vkCmdSetEvent; -extern PFN_vkCmdResetEvent vkCmdResetEvent; -extern PFN_vkCmdWaitEvents vkCmdWaitEvents; -extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; -extern PFN_vkCmdBeginQuery vkCmdBeginQuery; -extern PFN_vkCmdEndQuery vkCmdEndQuery; -extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool; -extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; -extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; -extern PFN_vkCmdPushConstants vkCmdPushConstants; -extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; -extern PFN_vkCmdNextSubpass vkCmdNextSubpass; -extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass; -extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands; - -// VK_core_1 -extern PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; -extern PFN_vkBindBufferMemory2 vkBindBufferMemory2; -extern PFN_vkBindImageMemory2 vkBindImageMemory2; -extern PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; -extern PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; -extern PFN_vkCmdDispatchBase vkCmdDispatchBase; -extern PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; -extern PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; -extern PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; -extern PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; -extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; -extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; -extern PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; -extern PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; -extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; -extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; -extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; -extern PFN_vkTrimCommandPool vkTrimCommandPool; -extern PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; -extern PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; -extern PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; -extern PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; -extern PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; -extern PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; -extern PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; -extern PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; -extern PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; -extern PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; - -// VK_KHR_surface -extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; -extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; -extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; -extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; -extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; - -// VK_KHR_swapchain -extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; -extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; -extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; -extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; -extern PFN_vkQueuePresentKHR vkQueuePresentKHR; -extern PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; -extern PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; -extern PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; -extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; - -// VK_KHR_display -extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; -extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; -extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; -extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; -extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; -extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; -extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; - -// VK_KHR_display_swapchain -extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; - -// VK_KHR_sampler_mirror_clamp_to_edge - -// VK_KHR_multiview - -// VK_KHR_get_physical_device_properties2 -extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; -extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; -extern PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; -extern PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; -extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; -extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; -extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; - -// VK_KHR_device_group -extern PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; -extern PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; -extern PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; - -// VK_KHR_shader_draw_parameters - -// VK_KHR_maintenance1 -extern PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; - -// VK_KHR_device_group_creation -extern PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; - -// VK_KHR_external_memory_capabilities -extern PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; - -// VK_KHR_external_memory - -// VK_KHR_external_memory_fd -extern PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; -extern PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; - -// VK_KHR_external_semaphore_capabilities -extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; - -// VK_KHR_external_semaphore - -// VK_KHR_external_semaphore_fd -extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; -extern PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; - -// VK_KHR_push_descriptor -extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; -extern PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; - -// VK_KHR_16bit_storage - -// VK_KHR_incremental_present - -// VK_KHR_descriptor_update_template -extern PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; -extern PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; -extern PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; - -// VK_KHR_create_renderpass2 -extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; -extern PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; -extern PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; -extern PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; - -// VK_KHR_shared_presentable_image -extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; - -// VK_KHR_external_fence_capabilities -extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; - -// VK_KHR_external_fence - -// VK_KHR_external_fence_fd -extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR; -extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR; - -// VK_KHR_maintenance2 - -// VK_KHR_get_surface_capabilities2 -extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; -extern PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; - -// VK_KHR_variable_pointers - -// VK_KHR_get_display_properties2 -extern PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; -extern PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; -extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; -extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; - -// VK_KHR_dedicated_allocation - -// VK_KHR_storage_buffer_storage_class - -// VK_KHR_relaxed_block_layout - -// VK_KHR_get_memory_requirements2 -extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; -extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; -extern PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; - -// VK_KHR_image_format_list - -// VK_KHR_sampler_ycbcr_conversion -extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; -extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; - -// VK_KHR_bind_memory2 -extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; -extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; - -// VK_KHR_maintenance3 -extern PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; - -// VK_KHR_draw_indirect_count -extern PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; -extern PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; - -// VK_KHR_8bit_storage - -// VK_KHR_shader_atomic_int64 - -// VK_KHR_driver_properties - -// VK_KHR_vulkan_memory_model - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -// VK_KHR_android_surface -extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -// VK_KHR_wayland_surface -extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; -extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -// VK_KHR_win32_surface -extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; -extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -// VK_KHR_external_memory_win32 -extern PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; -extern PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -// VK_KHR_win32_keyed_mutex -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -// VK_KHR_external_semaphore_win32 -extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; -extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -// VK_KHR_external_fence_win32 -extern PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; -extern PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; -#endif - -#ifdef VK_USE_PLATFORM_XCB_KHR -// VK_KHR_xcb_surface -extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; -extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_XLIB_KHR -// VK_KHR_xlib_surface -extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; -extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; -#endif - -#ifdef __cplusplus -} -#endif - - -#endif // VULKAN_WRAPPER_H - diff --git a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp deleted file mode 100644 index f25f44c2b..000000000 --- a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp +++ /dev/null @@ -1,185 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -#pragma once - -/* - * Vulkan API definitions to assist with issues in the `vulkan_wrapper.h/vulkan_wrapper.cpp` - * which ships with the Android NDK 20 when using the `vulkan.hpp` header. - */ - -#define VK_NO_PROTOTYPES 1 -#include - -// Adding references previously in vulkan_wrapper.cpp into here instead for vulkan.hpp -extern PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; -extern PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; -extern PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; -extern PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; -extern PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; -extern PFN_vkCompileDeferredNV vkCompileDeferredNV; -extern PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; -extern PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; -extern PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; -extern PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; -extern PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; -extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; -#endif - -extern PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; -extern PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; -extern PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; -extern PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; -extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; -extern PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; -extern PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; -extern PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; -extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; -extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; -extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; -extern PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; -extern PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; -extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; -extern PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; -extern PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; -extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; -extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; -extern PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; -extern PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; - -typedef void *PFN_vkBindAccelerationStructureMemoryNVX; -typedef void *PFN_vkCmdBuildAccelerationStructureNVX; -typedef void *PFN_vkCmdCopyAccelerationStructureNVX; -typedef void *PFN_vkBindAccelerationStructureMemoryNVX; -typedef void *PFN_vkCmdBuildAccelerationStructureNVX; -typedef void *PFN_vkCmdCopyAccelerationStructureNVX; -typedef void *PFN_vkBindAccelerationStructureMemoryNVX; -typedef void *PFN_vkCmdTraceRaysNVX; -typedef void *PFN_vkCmdWriteAccelerationStructurePropertiesNVX; -typedef void *PFN_vkCompileDeferredNVX; -typedef void *PFN_vkCreateAccelerationStructureNVX; -typedef void *PFN_vkCreateRaytracingPipelinesNVX; -typedef void *PFN_vkDestroyAccelerationStructureNVX; -typedef void *PFN_vkGetAccelerationStructureHandleNVX; -typedef void *PFN_vkGetAccelerationStructureMemoryRequirementsNVX; -typedef void *PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX; -typedef void *PFN_vkGetRaytracingShaderHandlesNVX; -typedef void *PFN_vkBindAccelerationStructureMemoryNVX; -typedef void *PFN_vkCmdBuildAccelerationStructureNVX; -typedef void *PFN_vkCmdCopyAccelerationStructureNVX; - - -extern PFN_vkBindAccelerationStructureMemoryNVX vkBindAccelerationStructureMemoryNVX; -extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; -extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; -extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; -extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; -extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; -extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; -extern PFN_vkCmdBuildAccelerationStructureNVX vkCmdBuildAccelerationStructureNVX; -extern PFN_vkCmdCopyAccelerationStructureNVX vkCmdCopyAccelerationStructureNVX; -extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; -extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; -extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; -extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; -extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; -extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; -extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; -extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; -extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; -extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; -extern PFN_vkBindAccelerationStructureMemoryNVX vkBindAccelerationStructureMemoryNVX; -extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; -extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; -extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; -extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; -extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; -extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; -extern PFN_vkCmdBuildAccelerationStructureNVX vkCmdBuildAccelerationStructureNVX; -extern PFN_vkCmdCopyAccelerationStructureNVX vkCmdCopyAccelerationStructureNVX; -extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; -extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; -extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; -extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; -extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; -extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; -extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; -extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; -extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; -extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; -extern PFN_vkBindAccelerationStructureMemoryNVX vkBindAccelerationStructureMemoryNVX; -extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; -extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; -extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; -extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; -extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; -extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; -extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; -extern PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX; -extern PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX; -extern PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; -extern PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; -extern PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; -extern PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; -extern PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; -extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; -extern PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; -extern PFN_vkCmdTraceRaysNVX vkCmdTraceRaysNVX; -extern PFN_vkCmdWriteAccelerationStructurePropertiesNVX vkCmdWriteAccelerationStructurePropertiesNVX; -extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; -extern PFN_vkCompileDeferredNVX vkCompileDeferredNVX; -extern PFN_vkCreateAccelerationStructureNVX vkCreateAccelerationStructureNVX; -extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; -extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; -extern PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX; -extern PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX; -extern PFN_vkCreateRaytracingPipelinesNVX vkCreateRaytracingPipelinesNVX; -extern PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; -extern PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; -extern PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; -extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; -extern PFN_vkDestroyAccelerationStructureNVX vkDestroyAccelerationStructureNVX; -extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; -extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; -extern PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX; -extern PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX; -extern PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; -extern PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; -extern PFN_vkGetAccelerationStructureHandleNVX vkGetAccelerationStructureHandleNVX; -extern PFN_vkGetAccelerationStructureMemoryRequirementsNVX vkGetAccelerationStructureMemoryRequirementsNVX; -extern PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX vkGetAccelerationStructureScratchMemoryRequirementsNVX; -extern PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; -extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; -extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; -extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; -extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; -extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; -extern PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX; -extern PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; -extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; -extern PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; -extern PFN_vkGetRaytracingShaderHandlesNVX vkGetRaytracingShaderHandlesNVX; -extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; -extern PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; -extern PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; -extern PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; -extern PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; -extern PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; -extern PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; -extern PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; -extern PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; -extern PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; -extern PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX; -extern PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; -extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; -extern PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; -extern PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; -extern PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; -extern PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX; -extern PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; -