From 4a093554c76902dca3bb879ef47cdaccea23db24 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Wed, 30 Sep 2020 08:29:58 +0100 Subject: [PATCH 01/34] Initial commit of android example --- examples/android/android-simple/.gitignore | 12 + examples/android/android-simple/README.md | 5 + .../android/android-simple/app/build.gradle | 35 ++ .../android-simple/app/proguard-rules.pro | 17 + .../app/src/main/AndroidManifest.xml | 27 ++ .../app/src/main/jni/CMakeLists.txt | 16 + .../android-simple/app/src/main/jni/main.cpp | 224 ++++++++++ .../app/src/main/jni/vulkan_wrapper.cpp | 404 ++++++++++++++++++ .../app/src/main/jni/vulkan_wrapper.h | 236 ++++++++++ .../app/src/main/res/values/strings.xml | 4 + examples/android/android-simple/build.gradle | 24 ++ .../android/android-simple/gradle.properties | 18 + .../gradle/wrapper/gradle-wrapper.properties | 6 + examples/android/android-simple/gradlew | 172 ++++++++ examples/android/android-simple/gradlew.bat | 84 ++++ .../android/android-simple/settings.gradle | 1 + 16 files changed, 1285 insertions(+) create mode 100644 examples/android/android-simple/.gitignore create mode 100644 examples/android/android-simple/README.md create mode 100644 examples/android/android-simple/app/build.gradle create mode 100644 examples/android/android-simple/app/proguard-rules.pro create mode 100755 examples/android/android-simple/app/src/main/AndroidManifest.xml create mode 100644 examples/android/android-simple/app/src/main/jni/CMakeLists.txt create mode 100644 examples/android/android-simple/app/src/main/jni/main.cpp create mode 100644 examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp create mode 100644 examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h create mode 100755 examples/android/android-simple/app/src/main/res/values/strings.xml create mode 100644 examples/android/android-simple/build.gradle create mode 100644 examples/android/android-simple/gradle.properties create mode 100755 examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties create mode 100755 examples/android/android-simple/gradlew create mode 100644 examples/android/android-simple/gradlew.bat create mode 100644 examples/android/android-simple/settings.gradle diff --git a/examples/android/android-simple/.gitignore b/examples/android/android-simple/.gitignore new file mode 100644 index 000000000..60b71a8b5 --- /dev/null +++ b/examples/android/android-simple/.gitignore @@ -0,0 +1,12 @@ +.idea +.DS_Store +.gradle +build +*.iml +*~ +local.properties +.externalNativeBuild +.cxx +.cdep +cdep.sha256 + diff --git a/examples/android/android-simple/README.md b/examples/android/android-simple/README.md new file mode 100644 index 000000000..b58262930 --- /dev/null +++ b/examples/android/android-simple/README.md @@ -0,0 +1,5 @@ +Vulkan Kompute Android Example +=========== +Loading Vulkan to Andriod Application using Vulkan Kompute. + + diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle new file mode 100644 index 000000000..ea5436e88 --- /dev/null +++ b/examples/android/android-simple/app/build.gradle @@ -0,0 +1,35 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + + defaultConfig { + applicationId "com.kompute.examples.android" + minSdkVersion 24 + targetSdkVersion 24 + versionCode 1 + versionName "0.0.1" + externalNativeBuild { + cmake { + abiFilters "armeabi-v7a", 'arm64-v8a', 'x86', 'x86_64' + arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static' + } + } + } + externalNativeBuild { + cmake { + path 'src/main/jni/CMakeLists.txt' + } + } + buildTypes { + release { + minifyEnabled = false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + ndkVersion '21.3.6528147' +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) +} diff --git a/examples/android/android-simple/app/proguard-rules.pro b/examples/android/android-simple/app/proguard-rules.pro new file mode 100644 index 000000000..c8505fb8e --- /dev/null +++ b/examples/android/android-simple/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in {ANDROID_SDK}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/examples/android/android-simple/app/src/main/AndroidManifest.xml b/examples/android/android-simple/app/src/main/AndroidManifest.xml new file mode 100755 index 000000000..3f36ad490 --- /dev/null +++ b/examples/android/android-simple/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt new file mode 100644 index 000000000..0ecb4e451 --- /dev/null +++ b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.4.1) + +# build native_app_glue as a static lib +set(APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) +include_directories(${APP_GLUE_DIR}) +add_library( app-glue STATIC ${APP_GLUE_DIR}/android_native_app_glue.c) + +add_library(vktuts SHARED + main.cpp + vulkan_wrapper.cpp) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -std=c++11 \ + -DVK_USE_PLATFORM_ANDROID_KHR") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") + +target_link_libraries(vktuts app-glue log android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp new file mode 100644 index 000000000..991455979 --- /dev/null +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -0,0 +1,224 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// 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. + +#include +#include +#include +#include +#include "vulkan_wrapper.h" + +// Android log function wrappers +static const char* kTAG = "Vulkan-Tutorial01"; +#define LOGI(...) \ + ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) +#define LOGW(...) \ + ((void)__android_log_print(ANDROID_LOG_WARN, kTAG, __VA_ARGS__)) +#define LOGE(...) \ + ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) + +// Vulkan call wrapper +#define CALL_VK(func) \ + if (VK_SUCCESS != (func)) { \ + __android_log_print(ANDROID_LOG_ERROR, "Tutorial ", \ + "Vulkan error. File[%s], line[%d]", __FILE__, \ + __LINE__); \ + assert(false); \ + } + +// Global variables +VkInstance tutorialInstance; +VkPhysicalDevice tutorialGpu; +VkDevice tutorialDevice; +VkSurfaceKHR tutorialSurface; + +// We will call this function the window is opened. +// This is where we will initialise everything +bool initialized_ = false; +bool initialize(android_app* app); + +// Functions interacting with Android native activity +void android_main(struct android_app* state); +void terminate(void); +void handle_cmd(android_app* app, int32_t cmd); + +// typical Android NativeActivity entry function +void android_main(struct android_app* app) { + app->onAppCmd = handle_cmd; + + int events; + android_poll_source* source; + do { + if (ALooper_pollAll(initialized_ ? 1 : 0, nullptr, &events, + (void**)&source) >= 0) { + if (source != NULL) source->process(app, source); + } + } while (app->destroyRequested == 0); +} + +bool initialize(android_app* app) { + // Load Android vulkan and retrieve vulkan API function pointers + if (!InitVulkan()) { + LOGE("Vulkan is unavailable, install vulkan and re-start"); + return false; + } + + VkApplicationInfo appInfo = { + .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, + .pNext = nullptr, + .apiVersion = VK_MAKE_VERSION(1, 0, 0), + .applicationVersion = VK_MAKE_VERSION(1, 0, 0), + .engineVersion = VK_MAKE_VERSION(1, 0, 0), + .pApplicationName = "tutorial01_load_vulkan", + .pEngineName = "tutorial", + }; + + // prepare necessary extensions: Vulkan on Android need these to function + std::vector instanceExt, deviceExt; + instanceExt.push_back("VK_KHR_surface"); + instanceExt.push_back("VK_KHR_android_surface"); + deviceExt.push_back("VK_KHR_swapchain"); + + // Create the Vulkan instance + VkInstanceCreateInfo instanceCreateInfo{ + .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, + .pNext = nullptr, + .pApplicationInfo = &appInfo, + .enabledExtensionCount = static_cast(instanceExt.size()), + .ppEnabledExtensionNames = instanceExt.data(), + .enabledLayerCount = 0, + .ppEnabledLayerNames = nullptr, + }; + CALL_VK(vkCreateInstance(&instanceCreateInfo, nullptr, &tutorialInstance)); + + // if we create a surface, we need the surface extension + VkAndroidSurfaceCreateInfoKHR createInfo{ + .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, + .pNext = nullptr, + .flags = 0, + .window = app->window}; + CALL_VK(vkCreateAndroidSurfaceKHR(tutorialInstance, &createInfo, nullptr, + &tutorialSurface)); + + // Find one GPU to use: + // On Android, every GPU device is equal -- supporting + // graphics/compute/present + // for this sample, we use the very first GPU device found on the system + uint32_t gpuCount = 0; + CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, nullptr)); + VkPhysicalDevice tmpGpus[gpuCount]; + CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, tmpGpus)); + tutorialGpu = tmpGpus[0]; // Pick up the first GPU Device + + // check for vulkan info on this GPU device + VkPhysicalDeviceProperties gpuProperties; + vkGetPhysicalDeviceProperties(tutorialGpu, &gpuProperties); + LOGI("Vulkan Physical Device Name: %s", gpuProperties.deviceName); + LOGI("Vulkan Physical Device Info: apiVersion: %x \n\t driverVersion: %x", + gpuProperties.apiVersion, gpuProperties.driverVersion); + LOGI("API Version Supported: %d.%d.%d", + VK_VERSION_MAJOR(gpuProperties.apiVersion), + VK_VERSION_MINOR(gpuProperties.apiVersion), + VK_VERSION_PATCH(gpuProperties.apiVersion)); + + VkSurfaceCapabilitiesKHR surfaceCapabilities; + vkGetPhysicalDeviceSurfaceCapabilitiesKHR(tutorialGpu, tutorialSurface, + &surfaceCapabilities); + + LOGI("Vulkan Surface Capabilities:\n"); + LOGI("\timage count: %u - %u\n", surfaceCapabilities.minImageCount, + surfaceCapabilities.maxImageCount); + LOGI("\tarray layers: %u\n", surfaceCapabilities.maxImageArrayLayers); + LOGI("\timage size (now): %dx%d\n", surfaceCapabilities.currentExtent.width, + surfaceCapabilities.currentExtent.height); + LOGI("\timage size (extent): %dx%d - %dx%d\n", + surfaceCapabilities.minImageExtent.width, + surfaceCapabilities.minImageExtent.height, + surfaceCapabilities.maxImageExtent.width, + surfaceCapabilities.maxImageExtent.height); + LOGI("\tusage: %x\n", surfaceCapabilities.supportedUsageFlags); + LOGI("\tcurrent transform: %u\n", surfaceCapabilities.currentTransform); + LOGI("\tallowed transforms: %x\n", surfaceCapabilities.supportedTransforms); + LOGI("\tcomposite alpha flags: %u\n", surfaceCapabilities.currentTransform); + + // Find a GFX queue family + uint32_t queueFamilyCount; + vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, nullptr); + assert(queueFamilyCount); + std::vector queueFamilyProperties(queueFamilyCount); + vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, + queueFamilyProperties.data()); + + uint32_t queueFamilyIndex; + for (queueFamilyIndex=0; queueFamilyIndex < queueFamilyCount; + queueFamilyIndex++) { + if (queueFamilyProperties[queueFamilyIndex].queueFlags & VK_QUEUE_GRAPHICS_BIT) { + break; + } + } + assert(queueFamilyIndex < queueFamilyCount); + + // Create a logical device from GPU we picked + float priorities[] = { + 1.0f, + }; + VkDeviceQueueCreateInfo queueCreateInfo{ + .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, + .pNext = nullptr, + .flags = 0, + .queueCount = 1, + .queueFamilyIndex = queueFamilyIndex, + .pQueuePriorities = priorities, + }; + + VkDeviceCreateInfo deviceCreateInfo{ + .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, + .pNext = nullptr, + .queueCreateInfoCount = 1, + .pQueueCreateInfos = &queueCreateInfo, + .enabledLayerCount = 0, + .ppEnabledLayerNames = nullptr, + .enabledExtensionCount = static_cast(deviceExt.size()), + .ppEnabledExtensionNames = deviceExt.data(), + .pEnabledFeatures = nullptr, + }; + + CALL_VK( + vkCreateDevice(tutorialGpu, &deviceCreateInfo, nullptr, &tutorialDevice)); + initialized_ = true; + return 0; +} + +void terminate(void) { + vkDestroySurfaceKHR(tutorialInstance, tutorialSurface, nullptr); + vkDestroyDevice(tutorialDevice, nullptr); + vkDestroyInstance(tutorialInstance, nullptr); + + initialized_ = false; +} + +// Process the next main command. +void handle_cmd(android_app* app, int32_t cmd) { + switch (cmd) { + case APP_CMD_INIT_WINDOW: + // The window is being shown, get it ready. + initialize(app); + break; + case APP_CMD_TERM_WINDOW: + // The window is being hidden or closed, clean it up. + terminate(); + break; + default: + LOGI("event not handled: %d", cmd); + } +} diff --git a/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp b/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp new file mode 100644 index 000000000..f186c8504 --- /dev/null +++ b/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp @@ -0,0 +1,404 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// 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. +#include "vulkan_wrapper.h" +#include + +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")); + 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")); + 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")); + +#ifdef VK_USE_PLATFORM_XLIB_KHR + vkCreateXlibSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateXlibSurfaceKHR")); + vkGetPhysicalDeviceXlibPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceXlibPresentationSupportKHR")); +#endif + +#ifdef VK_USE_PLATFORM_XCB_KHR + vkCreateXcbSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateXcbSurfaceKHR")); + vkGetPhysicalDeviceXcbPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceXcbPresentationSupportKHR")); +#endif + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + vkCreateWaylandSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateWaylandSurfaceKHR")); + vkGetPhysicalDeviceWaylandPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")); +#endif + +#ifdef VK_USE_PLATFORM_MIR_KHR + vkCreateMirSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateMirSurfaceKHR")); + vkGetPhysicalDeviceMirPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceMirPresentationSupportKHR")); +#endif + +#ifdef VK_USE_PLATFORM_ANDROID_KHR + vkCreateAndroidSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateAndroidSurfaceKHR")); +#endif + +#ifdef VK_USE_PLATFORM_WIN32_KHR + vkCreateWin32SurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateWin32SurfaceKHR")); + vkGetPhysicalDeviceWin32PresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceWin32PresentationSupportKHR")); +#endif +#ifdef USE_DEBUG_EXTENTIONS + vkCreateDebugReportCallbackEXT = reinterpret_cast(dlsym(libvulkan, "vkCreateDebugReportCallbackEXT")); + vkDestroyDebugReportCallbackEXT = reinterpret_cast(dlsym(libvulkan, "vkDestroyDebugReportCallbackEXT")); + vkDebugReportMessageEXT = reinterpret_cast(dlsym(libvulkan, "vkDebugReportMessageEXT")); +#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_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_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; +PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; +PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; +PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; +PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; +PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; +PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; +PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; + +#ifdef VK_USE_PLATFORM_XLIB_KHR +PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; +PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_XCB_KHR +PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; +PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR +PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; +PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_MIR_KHR +PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; +PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; +#endif + +#ifdef VK_USE_PLATFORM_WIN32_KHR +PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; +PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; +#endif +PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; +PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; +PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; + diff --git a/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h b/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h new file mode 100644 index 000000000..5d34c0c8d --- /dev/null +++ b/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h @@ -0,0 +1,236 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// 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 + +#define VK_NO_PROTOTYPES 1 +#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 +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_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; + +// 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; + +#ifdef VK_USE_PLATFORM_XLIB_KHR +// VK_KHR_xlib_surface +extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; +extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_XCB_KHR +// VK_KHR_xcb_surface +extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; +extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR +// VK_KHR_wayland_surface +extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; +extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_MIR_KHR +// VK_KHR_mir_surface +extern PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; +extern PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; +#endif + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +// VK_KHR_android_surface +extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; +#endif + +#ifdef VK_USE_PLATFORM_WIN32_KHR +// VK_KHR_win32_surface +extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; +extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; +#endif + +#ifdef USE_DEBUG_EXTENTIONS +#include +// VK_EXT_debug_report +extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; +extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; +extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; +#endif + + +#endif // VULKAN_WRAPPER_H diff --git a/examples/android/android-simple/app/src/main/res/values/strings.xml b/examples/android/android-simple/app/src/main/res/values/strings.xml new file mode 100755 index 000000000..f4df1ad46 --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Tutorial 01 + diff --git a/examples/android/android-simple/build.gradle b/examples/android/android-simple/build.gradle new file mode 100644 index 000000000..97047034f --- /dev/null +++ b/examples/android/android-simple/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:4.0.1' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/examples/android/android-simple/gradle.properties b/examples/android/android-simple/gradle.properties new file mode 100644 index 000000000..1d3591c8a --- /dev/null +++ b/examples/android/android-simple/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties new file mode 100755 index 000000000..cf89bf4f5 --- /dev/null +++ b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Sep 29 20:22:44 BST 2020 +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 diff --git a/examples/android/android-simple/gradlew b/examples/android/android-simple/gradlew new file mode 100755 index 000000000..cccdd3d51 --- /dev/null +++ b/examples/android/android-simple/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/examples/android/android-simple/gradlew.bat b/examples/android/android-simple/gradlew.bat new file mode 100644 index 000000000..e95643d6a --- /dev/null +++ b/examples/android/android-simple/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/examples/android/android-simple/settings.gradle b/examples/android/android-simple/settings.gradle new file mode 100644 index 000000000..e7b4def49 --- /dev/null +++ b/examples/android/android-simple/settings.gradle @@ -0,0 +1 @@ +include ':app' From 01828363868274340eebf34d65c4314c3ea79e15 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Thu, 1 Oct 2020 08:31:32 +0100 Subject: [PATCH 02/34] updated wrapper --- .../app/src/main/jni/vulkan_wrapper.cpp | 404 ------------------ .../app/src/main/jni/vulkan_wrapper.h | 236 ---------- 2 files changed, 640 deletions(-) delete mode 100644 examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp delete mode 100644 examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h diff --git a/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp b/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp deleted file mode 100644 index f186c8504..000000000 --- a/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.cpp +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// 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. -#include "vulkan_wrapper.h" -#include - -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")); - 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")); - 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")); - -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkCreateXlibSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateXlibSurfaceKHR")); - vkGetPhysicalDeviceXlibPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceXlibPresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_XCB_KHR - vkCreateXcbSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateXcbSurfaceKHR")); - vkGetPhysicalDeviceXcbPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceXcbPresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkCreateWaylandSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateWaylandSurfaceKHR")); - vkGetPhysicalDeviceWaylandPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_MIR_KHR - vkCreateMirSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateMirSurfaceKHR")); - vkGetPhysicalDeviceMirPresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceMirPresentationSupportKHR")); -#endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkCreateAndroidSurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateAndroidSurfaceKHR")); -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkCreateWin32SurfaceKHR = reinterpret_cast(dlsym(libvulkan, "vkCreateWin32SurfaceKHR")); - vkGetPhysicalDeviceWin32PresentationSupportKHR = reinterpret_cast(dlsym(libvulkan, "vkGetPhysicalDeviceWin32PresentationSupportKHR")); -#endif -#ifdef USE_DEBUG_EXTENTIONS - vkCreateDebugReportCallbackEXT = reinterpret_cast(dlsym(libvulkan, "vkCreateDebugReportCallbackEXT")); - vkDestroyDebugReportCallbackEXT = reinterpret_cast(dlsym(libvulkan, "vkDestroyDebugReportCallbackEXT")); - vkDebugReportMessageEXT = reinterpret_cast(dlsym(libvulkan, "vkDebugReportMessageEXT")); -#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_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_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; -PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; -PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; -PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; -PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; -PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; -PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; -PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; - -#ifdef VK_USE_PLATFORM_XLIB_KHR -PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; -PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_XCB_KHR -PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; -PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; -PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_MIR_KHR -PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; -PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; -PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; -#endif -PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; -PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; -PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; - diff --git a/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h b/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h deleted file mode 100644 index 5d34c0c8d..000000000 --- a/examples/android/android-simple/app/src/main/jni/vulkan_wrapper.h +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// 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 - -#define VK_NO_PROTOTYPES 1 -#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 -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_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; - -// 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; - -#ifdef VK_USE_PLATFORM_XLIB_KHR -// VK_KHR_xlib_surface -extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; -extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_XCB_KHR -// VK_KHR_xcb_surface -extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; -extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -// VK_KHR_wayland_surface -extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; -extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_MIR_KHR -// VK_KHR_mir_surface -extern PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; -extern PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; -#endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -// VK_KHR_android_surface -extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -// VK_KHR_win32_surface -extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; -extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; -#endif - -#ifdef USE_DEBUG_EXTENTIONS -#include -// VK_EXT_debug_report -extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; -extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; -extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; -#endif - - -#endif // VULKAN_WRAPPER_H From 6c41ceb0b237468ffae681c58dce36bc3b653232 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Thu, 1 Oct 2020 18:44:25 +0100 Subject: [PATCH 03/34] Updated example to start using core structure --- examples/android/android-simple/.gitignore | 1 - examples/android/android-simple/README.md | 13 +- .../android/android-simple/app/build.gradle | 32 +- .../android-simple/app/proguard-rules.pro | 2 +- .../app/src/main/AndroidManifest.xml | 4 +- .../app/src/main/jni/CMakeLists.txt | 40 +- .../app/src/main/jni/TutorialValLayer.cpp | 361 ++++++++++++++++++ .../app/src/main/jni/TutorialValLayer.hpp | 93 +++++ .../android-simple/app/src/main/jni/main.cpp | 63 +-- .../app/src/main/res/values/strings.xml | 2 +- examples/android/android-simple/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 12 +- examples/android/android-simple/gradlew | 100 +++-- examples/android/android-simple/gradlew.bat | 14 +- .../android/android-simple/settings.gradle | 1 + 15 files changed, 622 insertions(+), 118 deletions(-) create mode 100644 examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp create mode 100644 examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp mode change 100755 => 100644 examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties diff --git a/examples/android/android-simple/.gitignore b/examples/android/android-simple/.gitignore index 60b71a8b5..f23ff3a66 100644 --- a/examples/android/android-simple/.gitignore +++ b/examples/android/android-simple/.gitignore @@ -9,4 +9,3 @@ local.properties .cxx .cdep cdep.sha256 - diff --git a/examples/android/android-simple/README.md b/examples/android/android-simple/README.md index b58262930..1f5d12d07 100644 --- a/examples/android/android-simple/README.md +++ b/examples/android/android-simple/README.md @@ -1,5 +1,14 @@ -Vulkan Kompute Android Example +Tutorial 02 - use validation layers - 1 =========== -Loading Vulkan to Andriod Application using Vulkan Kompute. +1. Add validation layers into gradle and pack them into apk +1. Enable all validation layers/extensions found on the system +1. Use vulkan wrappers in common/vulkan_wrapper directory + +Verification +============ +Planted error: this sample sets `VkDeviceQueueCreateInfo::pQueuePriorities` to nullptr, +which will trigger validation layers to notify us from registered callback function +`vkDebugReportCallbackEX_impl();` putting a breakpoint with Android Studo, observe +the breakpoint being triggered. diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index ea5436e88..82cd7a09e 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -1,18 +1,23 @@ apply plugin: 'com.android.application' +Properties properties = new Properties() +properties.load(project.rootProject.file('local.properties').newDataInputStream()) +def ndkDir = properties.getProperty('ndk.dir') +def valLayerBinDir = "${ndkDir}/sources/third_party/vulkan/src/build-android/jniLibs" + android { compileSdkVersion 24 defaultConfig { - applicationId "com.kompute.examples.android" + applicationId "com.ethicalml.kompute.examples.android" minSdkVersion 24 targetSdkVersion 24 - versionCode 1 - versionName "0.0.1" + versionCode = 1 + versionName = "0.0.1" externalNativeBuild { cmake { abiFilters "armeabi-v7a", 'arm64-v8a', 'x86', 'x86_64' - arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static' + arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static', '-DKOMPUTE_OPT_ANDOID_BUILD=1', '-DKOMPUTE_OPT_INSTALL=0' } } } @@ -21,13 +26,22 @@ android { path 'src/main/jni/CMakeLists.txt' } } - buildTypes { - release { - minifyEnabled = false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + + sourceSets { + main { + jniLibs { + // Must have ndk-r12 or better which including layer binaries + srcDirs = ["${valLayerBinDir}"] + } } } - ndkVersion '21.3.6528147' + + buildTypes { + release { + minifyEnabled = false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } } dependencies { diff --git a/examples/android/android-simple/app/proguard-rules.pro b/examples/android/android-simple/app/proguard-rules.pro index c8505fb8e..b41fe70c7 100644 --- a/examples/android/android-simple/app/proguard-rules.pro +++ b/examples/android/android-simple/app/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified -# in {ANDROID_SDK}/tools/proguard/proguard-android.txt +# in ${ANDROID_SDK}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # diff --git a/examples/android/android-simple/app/src/main/AndroidManifest.xml b/examples/android/android-simple/app/src/main/AndroidManifest.xml index 3f36ad490..c15080377 100755 --- a/examples/android/android-simple/app/src/main/AndroidManifest.xml +++ b/examples/android/android-simple/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ @@ -15,7 +15,7 @@ android:configChanges="orientation|keyboardHidden"> + android:value="kompute_android" /> diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt index 0ecb4e451..7d9e7b19a 100644 --- a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt @@ -1,16 +1,38 @@ cmake_minimum_required(VERSION 3.4.1) +add_subdirectory(../../../../../../../ ${CMAKE_CURRENT_BINARY_DIR}/kompute_build) + +set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) +set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common) +set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) + # build native_app_glue as a static lib -set(APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) -include_directories(${APP_GLUE_DIR}) -add_library( app-glue STATIC ${APP_GLUE_DIR}/android_native_app_glue.c) +include_directories(${ANDROID_APP_GLUE_DIR}) +add_library(app-glue STATIC + ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) -add_library(vktuts SHARED +# build vulkan app +add_library(kompute_android SHARED + TutorialValLayer.cpp main.cpp - vulkan_wrapper.cpp) + ${VK_ANDROID_COMMON_DIR}/vulkan_wrapper.cpp) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -std=c++11 \ - -DVK_USE_PLATFORM_ANDROID_KHR") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") +include_directories( + ${VK_ANDROID_COMMON_DIR} + ${VK_ANDROID_INCLUDE_DIR}) -target_link_libraries(vktuts app-glue log android) \ No newline at end of file +# TODO: Explore: +# * -DVK_NO_PROTOTYPES +# * -DUSE_DEBUG_EXTENTIONS +# * -Wno-unused-variable +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Werror \ + -DVK_USE_PLATFORM_ANDROID_KHR -DVK_NO_PROTOTYPES") + +set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") + +target_link_libraries(kompute_android + kompute + app-glue + log + android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp new file mode 100644 index 000000000..35902b0fc --- /dev/null +++ b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp @@ -0,0 +1,361 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// 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. +#include "TutorialValLayer.hpp" +#include +#include + +// Android log function wrappers +static const char* kTAG = "Vulkan-Tutorial02"; +#define LOGI(...) \ + ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) +#define LOGW(...) \ + ((void)__android_log_print(ANDROID_LOG_WARN, kTAG, __VA_ARGS__)) +#define LOGE(...) \ + ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) + +// Vulkan call wrapper +#define CALL_VK(func) \ + if (VK_SUCCESS != (func)) { \ + __android_log_print(ANDROID_LOG_ERROR, "Tutorial ", \ + "Vulkan error. File[%s], line[%d]", __FILE__, \ + __LINE__); \ + assert(false); \ + } + +/* + * Validation Layer names at this time (info purpose) + static const char* kValLayerNames[] = { + "VK_LAYER_GOOGLE_threading", + "VK_LAYER_LUNARG_device_limits", + "VK_LAYER_LUNARG_core_validation", + "VK_LAYER_LUNARG_image", + "VK_LAYER_LUNARG_object_tracker", + "VK_LAYER_LUNARG_parameter_validation", + "VK_LAYER_LUNARG_swapchain", + "VK_LAYER_GOOGLE_unique_objects", + }; +*/ +static const char* kUniqueObjectLayer = "VK_LAYER_GOOGLE_unique_objects"; +static const char* kGoogleThreadingLayer = "VK_LAYER_GOOGLE_threading"; + +// Debug Extension names in use. +// assumed usage: +// 1) app calls GetDbgExtName() +// 2) app calls IsExtSupported() to make sure it is supported +// 3) app tucks dbg extension name into InstanceCreateInfo to create instance +// 4) app calls CreateDbgExtCallback() to hook up debug print message +static const char* kDbgExtName = "VK_EXT_debug_report"; + +// Simple Dbg Callback function to be used by Vk engine +static VkBool32 VKAPI_PTR vkDebugReportCallbackEX_impl( + VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, + uint64_t object, size_t location, int32_t messageCode, + const char* pLayerPrefix, const char* pMessage, void* pUserData) { + if (flags & VK_DEBUG_REPORT_INFORMATION_BIT_EXT) { + __android_log_print(ANDROID_LOG_INFO, "Vulkan-Debug-Message: ", "%s -- %s", + pLayerPrefix, pMessage); + } + if (flags & VK_DEBUG_REPORT_WARNING_BIT_EXT) { + __android_log_print(ANDROID_LOG_WARN, "Vulkan-Debug-Message: ", "%s -- %s", + pLayerPrefix, pMessage); + } + if (flags & VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT) { + __android_log_print(ANDROID_LOG_WARN, "Vulkan-Debug-Message-(Perf): ", + "%s -- %s", pLayerPrefix, pMessage); + } + if (flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) { + __android_log_print(ANDROID_LOG_ERROR, "Vulkan-Debug-Message: ", "%s -- %s", + pLayerPrefix, pMessage); + } + if (flags & VK_DEBUG_REPORT_DEBUG_BIT_EXT) { + __android_log_print(ANDROID_LOG_DEBUG, "Vulkan-Debug-Message: ", "%s -- %s", + pLayerPrefix, pMessage); + } + + return VK_FALSE; +} +// Reinforce the layer name sequence to meet load sequence +// requirement if there is any +void LayerAndExtensions::CheckLayerLoadingSequence( + std::vector* layerPtr) { + // VK_LAYER_GOOGLE_unique_objects need to be after + // VK_LAYER_LUNARG_core_validation + // VK_GOOGLE_THREADING_LAYER better to be the very first one + std::vector& layers = *layerPtr; + uint32_t uniqueObjIdx = -1; + uint32_t threadingIdx = -1; + uint32_t size = layers.size(); + for (uint32_t idx = 0; idx < size; ++idx) { + if (!strcmp(layers[idx], kUniqueObjectLayer)) uniqueObjIdx = idx; + if (!strcmp(layers[idx], kGoogleThreadingLayer)) threadingIdx = idx; + } + if (uniqueObjIdx != -1) { + char* tmp = layers[uniqueObjIdx]; + layers[uniqueObjIdx] = layers[size - 1]; + layers[size - 1] = tmp; + } + + if (threadingIdx != -1) { + char* tmp = layers[threadingIdx]; + layers[threadingIdx] = layers[0]; + layers[0] = tmp; + } +} + +bool LayerAndExtensions::InitExtNames(const std::vector& prop, + std::vector* names) { + names->clear(); + for (auto& ext : prop) { + for (uint32_t i = 0; i < ext.count; ++i) { + // skip the one already inside + bool duplicate = false; + for (uint32_t j = 0; j < names->size(); ++j) { + if (!strcmp(ext.prop[i].extensionName, (*names)[j])) { + duplicate = true; + break; + } + } + if (duplicate) continue; + // save this unique one + names->push_back(ext.prop[i].extensionName); + LOGI("Ext name: %s", ext.prop[i].extensionName); + } + } + return true; +} + +bool LayerAndExtensions::InitInstExts(void) { + ExtInfo extInfo{0, nullptr}; + CALL_VK( + vkEnumerateInstanceExtensionProperties(nullptr, &extInfo.count, nullptr)); + if (extInfo.count) { + extInfo.prop = new VkExtensionProperties[extInfo.count]; + assert(extInfo.prop); + CALL_VK(vkEnumerateInstanceExtensionProperties(nullptr, &extInfo.count, + extInfo.prop)); + instExtProp_.push_back(extInfo); + } + + for (int i = 0; i < instLayerCount_; i++) { + extInfo.count = 0; + CALL_VK(vkEnumerateInstanceExtensionProperties(instLayerProp_[i].layerName, + &extInfo.count, nullptr)); + if (extInfo.count == 0) continue; + extInfo.prop = new VkExtensionProperties[extInfo.count]; + CALL_VK(vkEnumerateInstanceExtensionProperties( + instLayerProp_[i].layerName, &extInfo.count, extInfo.prop)); + instExtProp_.push_back(extInfo); + } + return InitExtNames(instExtProp_, &instExts_); +} + +char** LayerAndExtensions::InstLayerNames(void) { + if (instLayers_.size()) { + return static_cast(instLayers_.data()); + } + return nullptr; +} +uint32_t LayerAndExtensions::InstLayerCount(void) { + LOGI("InstLayerCount = %d", static_cast(instLayers_.size())); + return static_cast(instLayers_.size()); +} +char** LayerAndExtensions::InstExtNames(void) { + if (instExts_.size()) { + return static_cast(instExts_.data()); + } + return nullptr; +} +uint32_t LayerAndExtensions::InstExtCount(void) { + LOGI("InstExtCount: %d", static_cast(instExts_.size())); + return static_cast(instExts_.size()); +} + +bool LayerAndExtensions::IsInstExtSupported(const char* extName) { + for (auto name : instExts_) { + if (!strcmp(name, extName)) { + return true; + } + } + return false; +} + +bool LayerAndExtensions::AddInstanceExt(const char* extName) { + if (!extName) return false; + + // enable all available extensions, plus the one asked + if (!IsInstExtSupported(extName)) { +#ifdef ENABLE_NON_ENUMERATED_EXT + instExts.push_back(static_cast(extName)); + instExtCount++; + return true; +#else + return false; +#endif + } + return true; +} +bool LayerAndExtensions::IsInstLayerSupported(const char* layerName) { + InstLayerNames(); + for (auto name : instLayers_) { + if (!strcmp(name, layerName)) return true; + } + return false; +} + +LayerAndExtensions::LayerAndExtensions(void) { + instance_ = VK_NULL_HANDLE; + vkCallbackHandle_ = VK_NULL_HANDLE; + CALL_VK(vkEnumerateInstanceLayerProperties(&instLayerCount_, nullptr)); + if (instLayerCount_) { + instLayerProp_ = new VkLayerProperties[instLayerCount_]; + assert(instLayerProp_); + CALL_VK( + vkEnumerateInstanceLayerProperties(&instLayerCount_, instLayerProp_)); + } + for (uint32_t i = 0; i < instLayerCount_; i++) { + instLayers_.push_back(instLayerProp_[i].layerName); + LOGI("InstLayer name: %s", instLayerProp_[i].layerName); + } + CheckLayerLoadingSequence(&instLayers_); + + InitInstExts(); +} + +LayerAndExtensions::~LayerAndExtensions() { + if (instLayerProp_) { + delete[] instLayerProp_; + } + for (auto ext : instExtProp_) { + delete[] ext.prop; + } + if (vkCallbackHandle_) { + vkDestroyDebugReportCallbackEXT(instance_, vkCallbackHandle_, nullptr); + } +} + +void LayerAndExtensions::InitDevLayersAndExt(VkPhysicalDevice physicalDevice) { + physicalDev_ = physicalDevice; + if (physicalDev_ == VK_NULL_HANDLE) return; + + // get all supported layers props + devLayerCount_ = 0; + CALL_VK( + vkEnumerateDeviceLayerProperties(physicalDev_, &devLayerCount_, nullptr)); + if (devLayerCount_) { + devLayerProp_ = new VkLayerProperties[devLayerCount_]; + assert(devLayerProp_); + CALL_VK(vkEnumerateDeviceLayerProperties(physicalDev_, &devLayerCount_, + devLayerProp_)); + } + +#ifdef LOADER_DEVICE_LAYER_REPORT_BUG_WA + // validation layer for device only report out for one layer, + // but it seems we could ask for all layers that asked for instance + // so we just add them all in brutally + // assume all device layers are also implemented for device layers + if (devLayerCount_ == 1) { + LOGI("Only Reported One layer for device"); + if (devLayerProp_) delete[] devLayerProp_; + devLayerProp_ = + (instLayerCount_ ? (new VkLayerProperties[instLayerCount_]) : nullptr); + memcpy(devLayerProp_, instLayerProp_, + instLayerCount_ * sizeof(VkLayerProperties)); + devLayerCount_ = instLayerCount_; + } +#endif + + for (int i = 0; i < devLayerCount_; i++) { + LOGI("deviceLayerName: %s", devLayerProp_[i].layerName); + devLayers_.push_back(devLayerProp_[i].layerName); + } + CheckLayerLoadingSequence(&devLayers_); + + // get all supported ext props + ExtInfo ext{0, nullptr}; + CALL_VK(vkEnumerateDeviceExtensionProperties(physicalDev_, nullptr, + &ext.count, nullptr)); + if (ext.count) { + ext.prop = new VkExtensionProperties[ext.count]; + assert(ext.prop); + CALL_VK(vkEnumerateDeviceExtensionProperties(physicalDev_, nullptr, + &ext.count, ext.prop)); + devExtProp_.push_back(ext); + } + for (int i = 0; i < devLayerCount_; i++) { + ext.count = 0; + CALL_VK(vkEnumerateDeviceExtensionProperties( + physicalDev_, devLayerProp_[i].layerName, &ext.count, nullptr)); + if (ext.count) { + ext.prop = new VkExtensionProperties[ext.count]; + assert(ext.prop); + CALL_VK(vkEnumerateDeviceExtensionProperties( + physicalDev_, devLayerProp_[i].layerName, &ext.count, ext.prop)); + devExtProp_.push_back(ext); + } + } + + InitExtNames(devExtProp_, &devExts_); +} + +char** LayerAndExtensions::DevLayerNames(void) { + assert(physicalDev_ != VK_NULL_HANDLE); + if (devLayers_.size()) return devLayers_.data(); + + return nullptr; +} +uint32_t LayerAndExtensions::DevLayerCount(void) { + assert(physicalDev_ != VK_NULL_HANDLE); + return devLayers_.size(); +} +char** LayerAndExtensions::DevExtNames(void) { + assert(physicalDev_ != VK_NULL_HANDLE); + if (devExts_.size()) return devExts_.data(); + return nullptr; +} +uint32_t LayerAndExtensions::DevExtCount(void) { + assert(physicalDev_ != VK_NULL_HANDLE); + return devExts_.size(); +} + +const char* LayerAndExtensions::GetDbgExtName(void) { return kDbgExtName; } +bool LayerAndExtensions::HookDbgReportExt(VkInstance instance) { + instance_ = instance; + if (!IsInstExtSupported(GetDbgExtName())) { + return false; + } + if (!vkCreateDebugReportCallbackEXT) { + vkCreateDebugReportCallbackEXT = + (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr( + instance, "vkCreateDebugReportCallbackEXT"); + vkDestroyDebugReportCallbackEXT = + (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr( + instance, "vkDestroyDebugReportCallbackEXT"); + vkDebugReportMessageEXT = + (PFN_vkDebugReportMessageEXT)vkGetInstanceProcAddr( + instance, "vkDebugReportMessageEXT"); + } + + VkDebugReportCallbackCreateInfoEXT dbgInfo = { + .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT, + .pNext = nullptr, + .flags = VK_DEBUG_REPORT_WARNING_BIT_EXT | + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT | + VK_DEBUG_REPORT_ERROR_BIT_EXT, + .pfnCallback = vkDebugReportCallbackEX_impl, + .pUserData = this, // we provide the debug object as context + }; + CALL_VK(vkCreateDebugReportCallbackEXT(instance, &dbgInfo, nullptr, + &vkCallbackHandle_)); + return true; +} diff --git a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp new file mode 100644 index 000000000..997ed2844 --- /dev/null +++ b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp @@ -0,0 +1,93 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// 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. +#ifndef __VALLAYER_HPP__ +#define __VALLAYER_HPP__ +#include +#include +#include +#include + +// Some loader only report one layer for device layers, enable this to +// workaround it: it will copy all instance layers into device layers +// and NOT enumerating device layers +//#define LOADER_DEVICE_LAYER_REPORT_BUG_WA + +// If extension is not enumerated, it should not be enabled in general; +// If you know an extension is on the device, but loader does not report it, +// it could be forced in by enabling +// the following compile flag and call AddInstanceExt(). +// #define ENABLE_NON_ENUMERATED_EXT 1 + +// A Helper class to manage validation layers and extensions +// Supposed usage: +// 1) validation layers: app should enable them with +// InstanceLayerCount() +// InstanceLayerNames() +// 2) Extension layers: app should check for supportability +// and then enable in app code ( not in this class ) +// 3) DbgExtension: once instance is created, just call +// HookDbgReportExt +class LayerAndExtensions { + public: + LayerAndExtensions(void); + ~LayerAndExtensions(); + + uint32_t InstLayerCount(void); + char** InstLayerNames(void); + uint32_t InstExtCount(void); + char** InstExtNames(void); + bool IsInstExtSupported(const char* extName); + bool IsInstLayerSupported(const char* layerName); + + const char* GetDbgExtName(void); + bool AddInstanceExt(const char* extName); + bool HookDbgReportExt(VkInstance instance); + + void InitDevLayersAndExt(VkPhysicalDevice physicalDevice); + char** DevLayerNames(void); + uint32_t DevLayerCount(void); + char** DevExtNames(void); + uint32_t DevExtCount(void); + + private: + // internal helper data structure + struct ExtInfo { + uint32_t count; + VkExtensionProperties* prop; + }; + + VkInstance instance_; + VkDebugReportCallbackEXT vkCallbackHandle_; + VkPhysicalDevice physicalDev_; + + std::vector instLayers_; + std::vector instExts_; + std::vector devLayers_; + std::vector devExts_; + + VkLayerProperties* instLayerProp_{nullptr}; + uint32_t instLayerCount_{0}; + std::vector instExtProp_; + + VkLayerProperties* devLayerProp_{nullptr}; + uint32_t devLayerCount_{0}; + std::vector devExtProp_; + + bool InitInstExts(void); + bool InitExtNames(const std::vector& props, + std::vector* names); + void CheckLayerLoadingSequence(std::vector* layers); +}; + +#endif // __VALLAYER_HPP__ diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp index 991455979..20ac5b0b2 100644 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -16,10 +16,11 @@ #include #include #include +#include "TutorialValLayer.hpp" #include "vulkan_wrapper.h" // Android log function wrappers -static const char* kTAG = "Vulkan-Tutorial01"; +static const char* kTAG = "Vulkan-Tutorial02"; #define LOGI(...) \ ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) #define LOGW(...) \ @@ -79,36 +80,31 @@ bool initialize(android_app* app) { .apiVersion = VK_MAKE_VERSION(1, 0, 0), .applicationVersion = VK_MAKE_VERSION(1, 0, 0), .engineVersion = VK_MAKE_VERSION(1, 0, 0), - .pApplicationName = "tutorial01_load_vulkan", + .pApplicationName = "tutorial02_prebuilt_layers", .pEngineName = "tutorial", }; - // prepare necessary extensions: Vulkan on Android need these to function - std::vector instanceExt, deviceExt; - instanceExt.push_back("VK_KHR_surface"); - instanceExt.push_back("VK_KHR_android_surface"); - deviceExt.push_back("VK_KHR_swapchain"); + // prepare debug and layer objects + LayerAndExtensions layerAndExt; + layerAndExt.AddInstanceExt(layerAndExt.GetDbgExtName()); - // Create the Vulkan instance + // Create Vulkan instance, requesting all enabled layers / extensions + // available on the system VkInstanceCreateInfo instanceCreateInfo{ .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, .pNext = nullptr, .pApplicationInfo = &appInfo, - .enabledExtensionCount = static_cast(instanceExt.size()), - .ppEnabledExtensionNames = instanceExt.data(), - .enabledLayerCount = 0, - .ppEnabledLayerNames = nullptr, + .enabledExtensionCount = layerAndExt.InstExtCount(), + .ppEnabledExtensionNames = + static_cast(layerAndExt.InstExtNames()), + .enabledLayerCount = layerAndExt.InstLayerCount(), + .ppEnabledLayerNames = + static_cast(layerAndExt.InstLayerNames()), }; CALL_VK(vkCreateInstance(&instanceCreateInfo, nullptr, &tutorialInstance)); - // if we create a surface, we need the surface extension - VkAndroidSurfaceCreateInfoKHR createInfo{ - .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, - .pNext = nullptr, - .flags = 0, - .window = app->window}; - CALL_VK(vkCreateAndroidSurfaceKHR(tutorialInstance, &createInfo, nullptr, - &tutorialSurface)); + // Create debug callback obj and connect to vulkan instance + layerAndExt.HookDbgReportExt(tutorialInstance); // Find one GPU to use: // On Android, every GPU device is equal -- supporting @@ -120,6 +116,9 @@ bool initialize(android_app* app) { CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, tmpGpus)); tutorialGpu = tmpGpus[0]; // Pick up the first GPU Device + // Enumerate available device validation layers & extensions + layerAndExt.InitDevLayersAndExt(tutorialGpu); + // check for vulkan info on this GPU device VkPhysicalDeviceProperties gpuProperties; vkGetPhysicalDeviceProperties(tutorialGpu, &gpuProperties); @@ -131,6 +130,14 @@ bool initialize(android_app* app) { VK_VERSION_MINOR(gpuProperties.apiVersion), VK_VERSION_PATCH(gpuProperties.apiVersion)); + VkAndroidSurfaceCreateInfoKHR createInfo{ + .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, + .pNext = nullptr, + .flags = 0, + .window = app->window}; + CALL_VK(vkCreateAndroidSurfaceKHR(tutorialInstance, &createInfo, nullptr, + &tutorialSurface)); + VkSurfaceCapabilitiesKHR surfaceCapabilities; vkGetPhysicalDeviceSurfaceCapabilitiesKHR(tutorialGpu, tutorialSurface, &surfaceCapabilities); @@ -178,7 +185,9 @@ bool initialize(android_app* app) { .flags = 0, .queueCount = 1, .queueFamilyIndex = queueFamilyIndex, - .pQueuePriorities = priorities, + // Send nullptr for queue priority so debug extension could + // catch the bug and call back app's debug function + .pQueuePriorities = nullptr, // priorities, }; VkDeviceCreateInfo deviceCreateInfo{ @@ -186,17 +195,19 @@ bool initialize(android_app* app) { .pNext = nullptr, .queueCreateInfoCount = 1, .pQueueCreateInfos = &queueCreateInfo, - .enabledLayerCount = 0, - .ppEnabledLayerNames = nullptr, - .enabledExtensionCount = static_cast(deviceExt.size()), - .ppEnabledExtensionNames = deviceExt.data(), + .enabledLayerCount = layerAndExt.DevLayerCount(), + .ppEnabledLayerNames = + static_cast(layerAndExt.DevLayerNames()), + .enabledExtensionCount = layerAndExt.DevExtCount(), + .ppEnabledExtensionNames = + static_cast(layerAndExt.DevExtNames()), .pEnabledFeatures = nullptr, }; CALL_VK( vkCreateDevice(tutorialGpu, &deviceCreateInfo, nullptr, &tutorialDevice)); initialized_ = true; - return 0; + return true; } void terminate(void) { diff --git a/examples/android/android-simple/app/src/main/res/values/strings.xml b/examples/android/android-simple/app/src/main/res/values/strings.xml index f4df1ad46..c899fe132 100755 --- a/examples/android/android-simple/app/src/main/res/values/strings.xml +++ b/examples/android/android-simple/app/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - Tutorial 01 + Kompute Android Example diff --git a/examples/android/android-simple/build.gradle b/examples/android/android-simple/build.gradle index 97047034f..123abac4a 100644 --- a/examples/android/android-simple/build.gradle +++ b/examples/android/android-simple/build.gradle @@ -6,7 +6,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:3.5.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties old mode 100755 new mode 100644 index cf89bf4f5..14819fe99 --- a/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties +++ b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Sep 29 20:22:44 BST 2020 -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 +#Mon Jan 13 14:51:34 PST 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/examples/android/android-simple/gradlew b/examples/android/android-simple/gradlew index cccdd3d51..9d82f7891 100755 --- a/examples/android/android-simple/gradlew +++ b/examples/android/android-simple/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash ############################################################################## ## @@ -6,6 +6,42 @@ ## ############################################################################## +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" @@ -24,46 +60,6 @@ cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -89,7 +85,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -154,19 +150,11 @@ if $cygwin ; then esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") } -APP_ARGS=$(save "$@") +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - -exec "$JAVACMD" "$@" +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/examples/android/android-simple/gradlew.bat b/examples/android/android-simple/gradlew.bat index e95643d6a..aec99730b 100644 --- a/examples/android/android-simple/gradlew.bat +++ b/examples/android/android-simple/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,9 +46,10 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windows variants +@rem Get command-line arguments, handling Windowz variants if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -59,6 +60,11 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/examples/android/android-simple/settings.gradle b/examples/android/android-simple/settings.gradle index e7b4def49..573abcb32 100644 --- a/examples/android/android-simple/settings.gradle +++ b/examples/android/android-simple/settings.gradle @@ -1 +1,2 @@ include ':app' + From ec2ca803d35af95488f10a58a900ebb04fa65898 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 10:54:04 +0100 Subject: [PATCH 04/34] Adding tests for actual lib --- .../android/android-simple/app/build.gradle | 6 +- .../app/src/main/jni/CMakeLists.txt | 9 +- .../app/src/main/jni/TutorialValLayer.cpp | 3 + .../android-simple/app/src/main/jni/main.cpp | 344 ++++++++++-------- 4 files changed, 201 insertions(+), 161 deletions(-) diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index 82cd7a09e..1f3249a37 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -6,12 +6,12 @@ def ndkDir = properties.getProperty('ndk.dir') def valLayerBinDir = "${ndkDir}/sources/third_party/vulkan/src/build-android/jniLibs" android { - compileSdkVersion 24 + compileSdkVersion 26 defaultConfig { applicationId "com.ethicalml.kompute.examples.android" - minSdkVersion 24 - targetSdkVersion 24 + minSdkVersion 26 + targetSdkVersion 26 versionCode = 1 versionName = "0.0.1" externalNativeBuild { diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt index 7d9e7b19a..6d5da1418 100644 --- a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt @@ -13,20 +13,20 @@ add_library(app-glue STATIC # build vulkan app add_library(kompute_android SHARED - TutorialValLayer.cpp main.cpp ${VK_ANDROID_COMMON_DIR}/vulkan_wrapper.cpp) include_directories( ${VK_ANDROID_COMMON_DIR} - ${VK_ANDROID_INCLUDE_DIR}) + ${VK_ANDROID_INCLUDE_DIR} + ../../../../../../../single_include/) # TODO: Explore: # * -DVK_NO_PROTOTYPES # * -DUSE_DEBUG_EXTENTIONS # * -Wno-unused-variable -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Werror \ - -DVK_USE_PLATFORM_ANDROID_KHR -DVK_NO_PROTOTYPES") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 \ + -DVK_USE_PLATFORM_ANDROID_KHR -DUSE_DEBUG_EXTENTIONS") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") @@ -35,4 +35,5 @@ target_link_libraries(kompute_android kompute app-glue log + "libvulkan.so" android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp index 35902b0fc..c4df29982 100644 --- a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp +++ b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp @@ -12,9 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. #include "TutorialValLayer.hpp" +#include "vulkan/vulkan.h" #include #include + + // Android log function wrappers static const char* kTAG = "Vulkan-Tutorial02"; #define LOGI(...) \ diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp index 20ac5b0b2..37dad5780 100644 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -12,15 +12,24 @@ // See the License for the specific language governing permissions and // limitations under the License. +#undef DEBUG +#define RELEASE 1 + #include #include #include +#include #include -#include "TutorialValLayer.hpp" -#include "vulkan_wrapper.h" +#include +//#include "TutorialValLayer.hpp" +//#include "vulkan_wrapper.h" + +#include "kompute/Kompute.hpp" + + // Android log function wrappers -static const char* kTAG = "Vulkan-Tutorial02"; +static const char* kTAG = "Vulkan-Tutorial01"; #define LOGI(...) \ ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) #define LOGW(...) \ @@ -55,181 +64,208 @@ void handle_cmd(android_app* app, int32_t cmd); // typical Android NativeActivity entry function void android_main(struct android_app* app) { - app->onAppCmd = handle_cmd; + app->onAppCmd = handle_cmd; - int events; - android_poll_source* source; - do { - if (ALooper_pollAll(initialized_ ? 1 : 0, nullptr, &events, - (void**)&source) >= 0) { - if (source != NULL) source->process(app, source); - } - } while (app->destroyRequested == 0); + int events; + android_poll_source* source; + do { + if (ALooper_pollAll(initialized_ ? 1 : 0, nullptr, &events, + (void**)&source) >= 0) { + if (source != NULL) source->process(app, source); + } + } while (app->destroyRequested == 0); } bool initialize(android_app* app) { - // Load Android vulkan and retrieve vulkan API function pointers - if (!InitVulkan()) { - LOGE("Vulkan is unavailable, install vulkan and re-start"); - return false; - } +// // Load Android vulkan and retrieve vulkan API function pointers +// if (!InitVulkan()) { +// LOGE("Vulkan is unavailable, install vulkan and re-start"); +// return false; +// } - VkApplicationInfo appInfo = { - .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, - .pNext = nullptr, - .apiVersion = VK_MAKE_VERSION(1, 0, 0), - .applicationVersion = VK_MAKE_VERSION(1, 0, 0), - .engineVersion = VK_MAKE_VERSION(1, 0, 0), - .pApplicationName = "tutorial02_prebuilt_layers", - .pEngineName = "tutorial", - }; + LOGI("Starting"); + sleep(1); + VkApplicationInfo appInfo = { + .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, + .pNext = nullptr, + .apiVersion = VK_MAKE_VERSION(1, 0, 0), + .applicationVersion = VK_MAKE_VERSION(1, 0, 0), + .engineVersion = VK_MAKE_VERSION(1, 0, 0), + .pApplicationName = "tutorial01_load_vulkan", + .pEngineName = "tutorial", + }; + LOGI("Created"); + sleep(1); - // prepare debug and layer objects - LayerAndExtensions layerAndExt; - layerAndExt.AddInstanceExt(layerAndExt.GetDbgExtName()); + // prepare necessary extensions: Vulkan on Android need these to function + std::vector instanceExt, deviceExt; + instanceExt.push_back("VK_KHR_surface"); + instanceExt.push_back("VK_KHR_android_surface"); + deviceExt.push_back("VK_KHR_swapchain"); - // Create Vulkan instance, requesting all enabled layers / extensions - // available on the system - VkInstanceCreateInfo instanceCreateInfo{ - .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, - .pNext = nullptr, - .pApplicationInfo = &appInfo, - .enabledExtensionCount = layerAndExt.InstExtCount(), - .ppEnabledExtensionNames = - static_cast(layerAndExt.InstExtNames()), - .enabledLayerCount = layerAndExt.InstLayerCount(), - .ppEnabledLayerNames = - static_cast(layerAndExt.InstLayerNames()), - }; - CALL_VK(vkCreateInstance(&instanceCreateInfo, nullptr, &tutorialInstance)); + LOGI("Creating instance"); + sleep(1); + // Create the Vulkan instance + VkInstanceCreateInfo instanceCreateInfo{ + .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, + .pNext = nullptr, + .pApplicationInfo = &appInfo, + .enabledExtensionCount = static_cast(instanceExt.size()), + .ppEnabledExtensionNames = instanceExt.data(), + .enabledLayerCount = 0, + .ppEnabledLayerNames = nullptr, + }; + CALL_VK(vkCreateInstance(&instanceCreateInfo, nullptr, &tutorialInstance)); - // Create debug callback obj and connect to vulkan instance - layerAndExt.HookDbgReportExt(tutorialInstance); + LOGI("Creating createinfo"); + sleep(1); + // if we create a surface, we need the surface extension + VkAndroidSurfaceCreateInfoKHR createInfo{ + .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, + .pNext = nullptr, + .flags = 0, + .window = app->window}; + CALL_VK(vkCreateAndroidSurfaceKHR(tutorialInstance, &createInfo, nullptr, + &tutorialSurface)); - // Find one GPU to use: - // On Android, every GPU device is equal -- supporting - // graphics/compute/present - // for this sample, we use the very first GPU device found on the system - uint32_t gpuCount = 0; - CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, nullptr)); - VkPhysicalDevice tmpGpus[gpuCount]; - CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, tmpGpus)); - tutorialGpu = tmpGpus[0]; // Pick up the first GPU Device + // Find one GPU to use: + // On Android, every GPU device is equal -- supporting + // graphics/compute/present + // for this sample, we use the very first GPU device found on the system + uint32_t gpuCount = 0; + CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, nullptr)); + VkPhysicalDevice tmpGpus[gpuCount]; + CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, tmpGpus)); + tutorialGpu = tmpGpus[0]; // Pick up the first GPU Device - // Enumerate available device validation layers & extensions - layerAndExt.InitDevLayersAndExt(tutorialGpu); + // check for vulkan info on this GPU device + VkPhysicalDeviceProperties gpuProperties; + vkGetPhysicalDeviceProperties(tutorialGpu, &gpuProperties); + LOGI("Vulkan Physical Device Name: %s", gpuProperties.deviceName); + LOGI("Vulkan Physical Device Info: apiVersion: %x \n\t driverVersion: %x", + gpuProperties.apiVersion, gpuProperties.driverVersion); + LOGI("API Version Supported: %d.%d.%d", + VK_VERSION_MAJOR(gpuProperties.apiVersion), + VK_VERSION_MINOR(gpuProperties.apiVersion), + VK_VERSION_PATCH(gpuProperties.apiVersion)); - // check for vulkan info on this GPU device - VkPhysicalDeviceProperties gpuProperties; - vkGetPhysicalDeviceProperties(tutorialGpu, &gpuProperties); - LOGI("Vulkan Physical Device Name: %s", gpuProperties.deviceName); - LOGI("Vulkan Physical Device Info: apiVersion: %x \n\t driverVersion: %x", - gpuProperties.apiVersion, gpuProperties.driverVersion); - LOGI("API Version Supported: %d.%d.%d", - VK_VERSION_MAJOR(gpuProperties.apiVersion), - VK_VERSION_MINOR(gpuProperties.apiVersion), - VK_VERSION_PATCH(gpuProperties.apiVersion)); + VkSurfaceCapabilitiesKHR surfaceCapabilities; + vkGetPhysicalDeviceSurfaceCapabilitiesKHR(tutorialGpu, tutorialSurface, + &surfaceCapabilities); - VkAndroidSurfaceCreateInfoKHR createInfo{ - .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, - .pNext = nullptr, - .flags = 0, - .window = app->window}; - CALL_VK(vkCreateAndroidSurfaceKHR(tutorialInstance, &createInfo, nullptr, - &tutorialSurface)); + LOGI("Vulkan Surface Capabilities:\n"); + LOGI("\timage count: %u - %u\n", surfaceCapabilities.minImageCount, + surfaceCapabilities.maxImageCount); + LOGI("\tarray layers: %u\n", surfaceCapabilities.maxImageArrayLayers); + LOGI("\timage size (now): %dx%d\n", surfaceCapabilities.currentExtent.width, + surfaceCapabilities.currentExtent.height); + LOGI("\timage size (extent): %dx%d - %dx%d\n", + surfaceCapabilities.minImageExtent.width, + surfaceCapabilities.minImageExtent.height, + surfaceCapabilities.maxImageExtent.width, + surfaceCapabilities.maxImageExtent.height); + LOGI("\tusage: %x\n", surfaceCapabilities.supportedUsageFlags); + LOGI("\tcurrent transform: %u\n", surfaceCapabilities.currentTransform); + LOGI("\tallowed transforms: %x\n", surfaceCapabilities.supportedTransforms); + LOGI("\tcomposite alpha flags: %u\n", surfaceCapabilities.currentTransform); - VkSurfaceCapabilitiesKHR surfaceCapabilities; - vkGetPhysicalDeviceSurfaceCapabilitiesKHR(tutorialGpu, tutorialSurface, - &surfaceCapabilities); + // Find a GFX queue family + uint32_t queueFamilyCount; + vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, nullptr); + assert(queueFamilyCount); + std::vector queueFamilyProperties(queueFamilyCount); + vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, + queueFamilyProperties.data()); - LOGI("Vulkan Surface Capabilities:\n"); - LOGI("\timage count: %u - %u\n", surfaceCapabilities.minImageCount, - surfaceCapabilities.maxImageCount); - LOGI("\tarray layers: %u\n", surfaceCapabilities.maxImageArrayLayers); - LOGI("\timage size (now): %dx%d\n", surfaceCapabilities.currentExtent.width, - surfaceCapabilities.currentExtent.height); - LOGI("\timage size (extent): %dx%d - %dx%d\n", - surfaceCapabilities.minImageExtent.width, - surfaceCapabilities.minImageExtent.height, - surfaceCapabilities.maxImageExtent.width, - surfaceCapabilities.maxImageExtent.height); - LOGI("\tusage: %x\n", surfaceCapabilities.supportedUsageFlags); - LOGI("\tcurrent transform: %u\n", surfaceCapabilities.currentTransform); - LOGI("\tallowed transforms: %x\n", surfaceCapabilities.supportedTransforms); - LOGI("\tcomposite alpha flags: %u\n", surfaceCapabilities.currentTransform); - - // Find a GFX queue family - uint32_t queueFamilyCount; - vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, nullptr); - assert(queueFamilyCount); - std::vector queueFamilyProperties(queueFamilyCount); - vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, - queueFamilyProperties.data()); - - uint32_t queueFamilyIndex; - for (queueFamilyIndex=0; queueFamilyIndex < queueFamilyCount; - queueFamilyIndex++) { - if (queueFamilyProperties[queueFamilyIndex].queueFlags & VK_QUEUE_GRAPHICS_BIT) { - break; + uint32_t queueFamilyIndex; + for (queueFamilyIndex=0; queueFamilyIndex < queueFamilyCount; + queueFamilyIndex++) { + if (queueFamilyProperties[queueFamilyIndex].queueFlags & VK_QUEUE_GRAPHICS_BIT) { + break; + } } - } - assert(queueFamilyIndex < queueFamilyCount); + assert(queueFamilyIndex < queueFamilyCount); - // Create a logical device from GPU we picked - float priorities[] = { - 1.0f, - }; - VkDeviceQueueCreateInfo queueCreateInfo{ - .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, - .pNext = nullptr, - .flags = 0, - .queueCount = 1, - .queueFamilyIndex = queueFamilyIndex, - // Send nullptr for queue priority so debug extension could - // catch the bug and call back app's debug function - .pQueuePriorities = nullptr, // priorities, - }; + // Create a logical device from GPU we picked + float priorities[] = { + 1.0f, + }; + VkDeviceQueueCreateInfo queueCreateInfo{ + .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, + .pNext = nullptr, + .flags = 0, + .queueCount = 1, + .queueFamilyIndex = queueFamilyIndex, + .pQueuePriorities = priorities, + }; - VkDeviceCreateInfo deviceCreateInfo{ - .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, - .pNext = nullptr, - .queueCreateInfoCount = 1, - .pQueueCreateInfos = &queueCreateInfo, - .enabledLayerCount = layerAndExt.DevLayerCount(), - .ppEnabledLayerNames = - static_cast(layerAndExt.DevLayerNames()), - .enabledExtensionCount = layerAndExt.DevExtCount(), - .ppEnabledExtensionNames = - static_cast(layerAndExt.DevExtNames()), - .pEnabledFeatures = nullptr, - }; + VkDeviceCreateInfo deviceCreateInfo{ + .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, + .pNext = nullptr, + .queueCreateInfoCount = 1, + .pQueueCreateInfos = &queueCreateInfo, + .enabledLayerCount = 0, + .ppEnabledLayerNames = nullptr, + .enabledExtensionCount = static_cast(deviceExt.size()), + .ppEnabledExtensionNames = deviceExt.data(), + .pEnabledFeatures = nullptr, + }; - CALL_VK( - vkCreateDevice(tutorialGpu, &deviceCreateInfo, nullptr, &tutorialDevice)); - initialized_ = true; - return true; + CALL_VK( + vkCreateDevice(tutorialGpu, &deviceCreateInfo, nullptr, &tutorialDevice)); + + VkInstance tutorialInstance; + VkPhysicalDevice tutorialGpu; + VkDevice tutorialDevice; + + std::shared_ptr tutorialInstanceHpp = std::make_shared(tutorialInstance); + std::shared_ptr tutorialGpuHpp = std::make_shared(tutorialGpu); + std::shared_ptr tutorialDeviceHpp = std::make_shared(tutorialDevice); +// +// kp::Manager mgr(tutorialInstanceHpp, tutorialGpuHpp, tutorialDeviceHpp, 0); + + LOGI("BEFORE RUNNING"); + +// kp::Manager mgr; + +// auto tensorA = mgr.buildTensor({0,1,2}); +// auto tensorB = mgr.buildTensor({0,1,2}); +// auto tensorC = mgr.buildTensor({0,0,0}); + +// mgr.evalOpDefault>({tensorA, tensorB, tensorC}); +// mgr.evalOpDefault({tensorC}); +// +// LOGI("HERE IS THE INFORMATION:"); +// +// for(const float & i : tensorC->data()) { +// LOGI("%u ", i); +// } + + initialized_ = true; + + return 0; } void terminate(void) { - vkDestroySurfaceKHR(tutorialInstance, tutorialSurface, nullptr); - vkDestroyDevice(tutorialDevice, nullptr); - vkDestroyInstance(tutorialInstance, nullptr); +// vkDestroySurfaceKHR(tutorialInstance, tutorialSurface, nullptr); +// vkDestroyDevice(tutorialDevice, nullptr); +// vkDestroyInstance(tutorialInstance, nullptr); - initialized_ = false; + initialized_ = false; } // Process the next main command. void handle_cmd(android_app* app, int32_t cmd) { - switch (cmd) { - case APP_CMD_INIT_WINDOW: - // The window is being shown, get it ready. - initialize(app); - break; - case APP_CMD_TERM_WINDOW: - // The window is being hidden or closed, clean it up. - terminate(); - break; - default: - LOGI("event not handled: %d", cmd); - } + switch (cmd) { + case APP_CMD_INIT_WINDOW: + // The window is being shown, get it ready. + initialize(app); + break; + case APP_CMD_TERM_WINDOW: + // The window is being hidden or closed, clean it up. + terminate(); + break; + default: + LOGI("event not handled: %d", cmd); + } } From ce07b33c285a8af7edbb8d60123d3a0e79001cf8 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 10:55:53 +0100 Subject: [PATCH 05/34] Adding extra changes to make kompute work with older version of vulkan --- src/Algorithm.cpp | 12 +++--- src/CMakeLists.txt | 83 ++++++++++++++++++++++++++++-------- src/Manager.cpp | 2 +- src/include/kompute/Core.hpp | 17 +++++++- 4 files changed, 89 insertions(+), 25 deletions(-) diff --git a/src/Algorithm.cpp b/src/Algorithm.cpp index 8748b10b6..6dea1c3d6 100644 --- a/src/Algorithm.cpp +++ b/src/Algorithm.cpp @@ -264,17 +264,17 @@ Algorithm::createPipeline(std::vector specializationData) &pipelineCacheInfo, nullptr, this->mPipelineCache.get()); this->mFreePipelineCache = true; - vk::ResultValue pipelineResult = + vk::Pipeline pipelineResult = this->mDevice->createComputePipeline(*this->mPipelineCache, pipelineInfo); this->mFreePipeline = true; - if (pipelineResult.result != vk::Result::eSuccess) { - throw std::runtime_error("Failed to create pipeline result: " + - vk::to_string(pipelineResult.result)); - } + //if (pipelineResult.result != vk::Result::eSuccess) { + // throw std::runtime_error("Failed to create pipeline result: " + + // vk::to_string(pipelineResult.result)); + //} this->mFreePipeline = true; - this->mPipeline = std::make_shared(pipelineResult.value); + this->mPipeline = std::make_shared(pipelineResult); } void diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9b0c88185..570f7b40d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,7 +5,13 @@ if(KOMPUTE_OPT_ENABLE_SPDLOG) find_package(fmt REQUIRED) endif() -find_package(Vulkan REQUIRED) +if(KOMPUTE_OPT_ANDOID_BUILD) + find_library(android android) +endif() + +if(NOT KOMPUTE_OPT_ANDOID_BUILD) + find_package(Vulkan REQUIRED) +endif() if(KOMPUTE_OPT_BUILD_SHADERS) # all shaders are compiled into cpp files @@ -23,8 +29,33 @@ file(GLOB kompute_CPP "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" ) +if(KOMPUTE_OPT_ANDOID_BUILD) + set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) + set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common) + set(VK_ANDROID_PATCH_DIR ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/) + set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) + + include_directories( + ${ANDROID_APP_GLUE_DIR} + ${VK_ANDROID_COMMON_DIR} + ${VK_ANDROID_PATCH_DIR} + ${VK_ANDROID_INCLUDE_DIR}) + + add_library(android_app_glue STATIC + ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) + + #add_library(android_vulkan_wrapper STATIC + # ${VK_ANDROID_COMMON_DIR}/vulkan_wrapper.cpp) +endif() + +if(KOMPUTE_OPT_BUILD_SINGLE_HEADER) + add_library(kompute + ${kompute_CPP}) +endif() + add_library(kompute - ${kompute_CPP}) + ${kompute_CPP} + ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp) target_include_directories( kompute PUBLIC @@ -32,10 +63,17 @@ target_include_directories( $ ) -target_link_libraries( - kompute - Vulkan::Vulkan -) +if(NOT KOMPUTE_OPT_ANDOID_BUILD) + target_link_libraries( + kompute + Vulkan::Vulkan + ) +else() + target_link_libraries( + kompute + "libvulkan.so" + ) +endif() if(KOMPUTE_OPT_ENABLE_SPDLOG) target_link_libraries( @@ -45,6 +83,15 @@ if(KOMPUTE_OPT_ENABLE_SPDLOG) ) endif() +if(KOMPUTE_OPT_ANDOID_BUILD) + target_link_libraries( + kompute + android_app_glue + log + android + ) +endif() + if(KOMPUTE_OPT_BUILD_SHADERS) add_dependencies(kompute build_shaders) @@ -57,18 +104,20 @@ endif() add_library(kompute::kompute ALIAS kompute) -install(TARGETS kompute EXPORT KomputeTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - INCLUDES DESTINATION include) +if(KOMPUTE_OPT_INSTALL) + install(TARGETS kompute EXPORT KomputeTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + INCLUDES DESTINATION include) -install(DIRECTORY include/ DESTINATION include) + install(DIRECTORY include/ DESTINATION include) -install(DIRECTORY ${PROJECT_SOURCE_DIR}/single_include/ - DESTINATION include) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/single_include/ + DESTINATION include) -install(EXPORT KomputeTargets - FILE komputeConfig.cmake - NAMESPACE kompute:: - DESTINATION lib/cmake/kompute) + install(EXPORT KomputeTargets + FILE komputeConfig.cmake + NAMESPACE kompute:: + DESTINATION lib/cmake/kompute) +endif() diff --git a/src/Manager.cpp b/src/Manager.cpp index b46b701a5..40c81b2de 100644 --- a/src/Manager.cpp +++ b/src/Manager.cpp @@ -118,7 +118,7 @@ Manager::createInstance() vk::ApplicationInfo applicationInfo; applicationInfo.pApplicationName = "Vulkan Kompute"; applicationInfo.pEngineName = "VulkanKompute"; - applicationInfo.apiVersion = VK_API_VERSION_1_2; + applicationInfo.apiVersion = VK_API_VERSION_1_1; std::vector applicationExtensions; applicationExtensions.push_back(VK_EXT_DEBUG_REPORT_EXTENSION_NAME); diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 4f1174f3f..078e284c7 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -1,5 +1,20 @@ +#pragma once -#include +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +#include +#include +#endif + +//#define VK_NO_PROTOTYPES 1 +//#undef VK_NO_PROTOTYPES +#undef DEBUG +#ifndef RELEASE +#define RELEASE 1 +#endif +//#define USE_DEBUG_EXTENTIONS +//#include + +//#undef VK_NO_PROTOTYPES #include // SPDLOG_ACTIVE_LEVEL must be defined before spdlog.h import From a320d85573fbfd65d74cedb2e248aa9bbfb57a30 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 10:56:08 +0100 Subject: [PATCH 06/34] Adding ndk patch --- .../kompute_vulkan_wrapper.cpp | 796 ++++++++++++++++++ .../kompute_vulkan_wrapper.hpp | 412 +++++++++ .../kompute_vulkan_wrapper_patch.hpp | 155 ++++ 3 files changed, 1363 insertions(+) create mode 100755 vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp create mode 100755 vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp create mode 100644 vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp diff --git a/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp new file mode 100755 index 000000000..c510a4b16 --- /dev/null +++ b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp @@ -0,0 +1,796 @@ +/* + * 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_vulkan_wrapper.hpp" +#include + +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_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; +PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; +PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; +PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; +PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; +PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; +PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; +PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; +PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; +PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; +PFN_vkCompileDeferredNV vkCompileDeferredNV; +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_ANDROID_KHR +PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; +#endif + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; +PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; +#endif + +#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/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp new file mode 100755 index 000000000..02376bd0f --- /dev/null +++ b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp @@ -0,0 +1,412 @@ +/* + * 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/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp new file mode 100644 index 000000000..e3ee7d4a4 --- /dev/null +++ b/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp @@ -0,0 +1,155 @@ +#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 + +//typedef void *PFN_vkCreateAccelerationStructureNV; +//typedef void *PFN_vkDestroyAccelerationStructureNV; +//typedef void *PFN_vkGetAccelerationStructureMemoryRequirementsNV; +//typedef void *PFN_vkBindAccelerationStructureMemoryNV; +//typedef void *PFN_vkCmdBuildAccelerationStructureNV; +//typedef void *PFN_vkCmdCopyAccelerationStructureNV; +//typedef void *PFN_vkCmdTraceRaysNV; +//typedef void *PFN_vkCreateRayTracingPipelinesNV; +//typedef void *PFN_vkGetRayTracingShaderGroupHandlesNV; +//typedef void *PFN_vkGetAccelerationStructureHandleNV; +//typedef void *PFN_vkCmdWriteAccelerationStructuresPropertiesNV; +//typedef void *PFN_vkCompileDeferredNV; + + +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; + From 20bc15a294989e59e3888a3df8b6555319e2857e Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 10:56:22 +0100 Subject: [PATCH 07/34] Added base cmake --- CMakeLists.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c70a56317..d329a8281 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ -cmake_minimum_required(VERSION 3.17.0) +cmake_minimum_required(VERSION 3.4.1) project(kompute VERSION 0.3.0) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 14) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_VERBOSE_MAKEFILE on) @@ -11,7 +11,9 @@ option(KOMPUTE_OPT_BUILD_TESTS "Enable if you want to build tests" 0) option(KOMPUTE_OPT_BUILD_DOCS "Enable if you want to build documentation" 0) option(KOMPUTE_OPT_BUILD_SHADERS "Enable if you want to re-build all shader files" 0) option(KOMPUTE_OPT_BUILD_SINGLE_HEADER "Enable if you want to build the single header file" 0) +option(KOMPUTE_OPT_INSTALL "Enable if you want to enable installation" 1) option(KOMPUTE_OPT_ENABLE_SPDLOG "Extra compile flags for Kompute, see docs for full list" 0) +option(KOMPUTE_OPT_ANDOID_BUILD "Enable android compilation flags required" 0) set(KOMPUTE_EXTRA_CXX_FLAGS "" CACHE STRING "Extra compile flags for Kompute, see docs for full list") @@ -19,6 +21,11 @@ if(KOMPUTE_OPT_ENABLE_SPDLOG) set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DKOMPUTE_ENABLE_SPDLOG=1") endif() +if(KOMPUTE_OPT_ANDOID_BUILD) + set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DVK_USE_PLATFORM_ANDROID_KHR") +endif() + + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 ${KOMPUTE_EXTRA_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE=1 ${KOMPUTE_EXTRA_CXX_FLAGS}") From 32caa1aa60bc37a1a8cc7df8545aefc01bdaeae7 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 11:59:52 +0100 Subject: [PATCH 08/34] Added base for building kompute --- .../android/android-simple/app/build.gradle | 2 +- single_include/kompute/Kompute.hpp | 18 ++++++++++++++++-- src/CMakeLists.txt | 10 +++++----- src/include/kompute/Core.hpp | 4 ++-- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index 1f3249a37..34bde80dc 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -17,7 +17,7 @@ android { externalNativeBuild { cmake { abiFilters "armeabi-v7a", 'arm64-v8a', 'x86', 'x86_64' - arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static', '-DKOMPUTE_OPT_ANDOID_BUILD=1', '-DKOMPUTE_OPT_INSTALL=0' + arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static', '-DKOMPUTE_OPT_ANDOID_BUILD=1', '-DKOMPUTE_OPT_INSTALL=0', '-DKOMPUTE_OPT_BUILD_SINGLE_HEADER=1' } } } diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index a3afd44bf..5452c7927 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -1,5 +1,20 @@ -#include + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +#include +#include +#endif + +//#define VK_NO_PROTOTYPES 1 +//#undef VK_NO_PROTOTYPES +#undef DEBUG +#ifndef RELEASE +#define RELEASE 1 +#endif +//#define USE_DEBUG_EXTENTIONS +#include + +#undef VK_NO_PROTOTYPES #include // SPDLOG_ACTIVE_LEVEL must be defined before spdlog.h import @@ -820,7 +835,6 @@ class Manager * sequences. * * @param tensors The tensors to be used in the operation recorded - * @param sequenceName The name of the sequence to be retrieved or created * @param TArgs Template parameters that will be used to initialise * Operation to allow for extensible configurations on initialisation */ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 570f7b40d..ac5118263 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -48,15 +48,15 @@ if(KOMPUTE_OPT_ANDOID_BUILD) # ${VK_ANDROID_COMMON_DIR}/vulkan_wrapper.cpp) endif() -if(KOMPUTE_OPT_BUILD_SINGLE_HEADER) +if(KOMPUTE_OPT_ANDOID_BUILD) + add_library(kompute + ${kompute_CPP} + ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp) +else() add_library(kompute ${kompute_CPP}) endif() -add_library(kompute - ${kompute_CPP} - ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp) - target_include_directories( kompute PUBLIC $ diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 078e284c7..8b4d9f120 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -12,9 +12,9 @@ #define RELEASE 1 #endif //#define USE_DEBUG_EXTENTIONS -//#include +#include -//#undef VK_NO_PROTOTYPES +#undef VK_NO_PROTOTYPES #include // SPDLOG_ACTIVE_LEVEL must be defined before spdlog.h import From 4c3b18d56046e8a5a93d263dd55729f0ea253507 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 13:10:40 +0100 Subject: [PATCH 09/34] Added functioning example --- .../app/src/main/jni/CMakeLists.txt | 8 +-- .../android-simple/app/src/main/jni/main.cpp | 49 +++++++++-------- src/CMakeLists.txt | 8 +-- .../kompute_vulkan_wrapper.cpp | 42 ++++++++------- .../kompute_vulkan_wrapper.hpp | 2 + .../kompute_vulkan_wrapper_patch.hpp | 53 ++++++++++++++----- 6 files changed, 100 insertions(+), 62 deletions(-) diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt index 6d5da1418..695a14d6e 100644 --- a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt @@ -13,13 +13,13 @@ add_library(app-glue STATIC # build vulkan app add_library(kompute_android SHARED - main.cpp - ${VK_ANDROID_COMMON_DIR}/vulkan_wrapper.cpp) + main.cpp) include_directories( ${VK_ANDROID_COMMON_DIR} ${VK_ANDROID_INCLUDE_DIR} - ../../../../../../../single_include/) + ../../../../../../../single_include/ + ../../../../../../../vulkan_ndk_patch_include/) # TODO: Explore: # * -DVK_NO_PROTOTYPES @@ -35,5 +35,5 @@ target_link_libraries(kompute_android kompute app-glue log - "libvulkan.so" + android_vulkan_wrapper android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp index 37dad5780..392e49096 100644 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -22,12 +22,10 @@ #include #include //#include "TutorialValLayer.hpp" -//#include "vulkan_wrapper.h" #include "kompute/Kompute.hpp" - // Android log function wrappers static const char* kTAG = "Vulkan-Tutorial01"; #define LOGI(...) \ @@ -78,13 +76,16 @@ void android_main(struct android_app* app) { bool initialize(android_app* app) { // // Load Android vulkan and retrieve vulkan API function pointers -// if (!InitVulkan()) { -// LOGE("Vulkan is unavailable, install vulkan and re-start"); -// return false; -// } + LOGI("Initialising vulkan"); +// sleep(1); + + if (!InitVulkan()) { + LOGE("Vulkan is unavailable, install vulkan and re-start"); + return false; + } LOGI("Starting"); - sleep(1); +// sleep(1); VkApplicationInfo appInfo = { .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, .pNext = nullptr, @@ -95,7 +96,7 @@ bool initialize(android_app* app) { .pEngineName = "tutorial", }; LOGI("Created"); - sleep(1); +// sleep(1); // prepare necessary extensions: Vulkan on Android need these to function std::vector instanceExt, deviceExt; @@ -104,7 +105,7 @@ bool initialize(android_app* app) { deviceExt.push_back("VK_KHR_swapchain"); LOGI("Creating instance"); - sleep(1); +// sleep(1); // Create the Vulkan instance VkInstanceCreateInfo instanceCreateInfo{ .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, @@ -118,7 +119,7 @@ bool initialize(android_app* app) { CALL_VK(vkCreateInstance(&instanceCreateInfo, nullptr, &tutorialInstance)); LOGI("Creating createinfo"); - sleep(1); +// sleep(1); // if we create a surface, we need the surface extension VkAndroidSurfaceCreateInfoKHR createInfo{ .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, @@ -226,20 +227,24 @@ bool initialize(android_app* app) { LOGI("BEFORE RUNNING"); -// kp::Manager mgr; + kp::Manager mgr; -// auto tensorA = mgr.buildTensor({0,1,2}); -// auto tensorB = mgr.buildTensor({0,1,2}); -// auto tensorC = mgr.buildTensor({0,0,0}); + auto tensorA = mgr.buildTensor({0,1,2}); + auto tensorB = mgr.buildTensor({0,1,2}); + auto tensorC = mgr.buildTensor({1,2,3}); -// mgr.evalOpDefault>({tensorA, tensorB, tensorC}); -// mgr.evalOpDefault({tensorC}); -// -// LOGI("HERE IS THE INFORMATION:"); -// -// for(const float & i : tensorC->data()) { -// LOGI("%u ", i); -// } + for(const float & i : tensorC->data()) { + LOGI("%f ", i); + } + + mgr.evalOpDefault>({tensorA, tensorB, tensorC}); + mgr.evalOpDefault({tensorC}); + + LOGI("HERE IS THE INFORMATION:"); + + for(const float & i : tensorC->data()) { + LOGI("%f ", i); + } initialized_ = true; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ac5118263..1392848d7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -44,14 +44,13 @@ if(KOMPUTE_OPT_ANDOID_BUILD) add_library(android_app_glue STATIC ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) - #add_library(android_vulkan_wrapper STATIC - # ${VK_ANDROID_COMMON_DIR}/vulkan_wrapper.cpp) + add_library(android_vulkan_wrapper STATIC + ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp) endif() if(KOMPUTE_OPT_ANDOID_BUILD) add_library(kompute - ${kompute_CPP} - ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp) + ${kompute_CPP}) else() add_library(kompute ${kompute_CPP}) @@ -87,6 +86,7 @@ if(KOMPUTE_OPT_ANDOID_BUILD) target_link_libraries( kompute android_app_glue + android_vulkan_wrapper log android ) diff --git a/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp index c510a4b16..b720ebaaa 100755 --- a/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp +++ b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp @@ -21,6 +21,28 @@ extern "C" { #include "kompute_vulkan_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; @@ -694,17 +716,6 @@ PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; -PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; -PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; -PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; -PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; -PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; -PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; -PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; -PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; -PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; -PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; -PFN_vkCompileDeferredNV vkCompileDeferredNV; PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; @@ -716,15 +727,6 @@ PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; -#ifdef VK_USE_PLATFORM_ANDROID_KHR -PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; -PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; -#endif - #ifdef VK_USE_PLATFORM_FUCHSIA PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; #endif diff --git a/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp index 02376bd0f..042108bba 100755 --- a/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp +++ b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp @@ -409,4 +409,6 @@ extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlib } #endif + #endif // VULKAN_WRAPPER_H + diff --git a/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp index e3ee7d4a4..edf7b8736 100644 --- a/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp +++ b/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp @@ -8,19 +8,48 @@ #define VK_NO_PROTOTYPES 1 #include -//typedef void *PFN_vkCreateAccelerationStructureNV; -//typedef void *PFN_vkDestroyAccelerationStructureNV; -//typedef void *PFN_vkGetAccelerationStructureMemoryRequirementsNV; -//typedef void *PFN_vkBindAccelerationStructureMemoryNV; -//typedef void *PFN_vkCmdBuildAccelerationStructureNV; -//typedef void *PFN_vkCmdCopyAccelerationStructureNV; -//typedef void *PFN_vkCmdTraceRaysNV; -//typedef void *PFN_vkCreateRayTracingPipelinesNV; -//typedef void *PFN_vkGetRayTracingShaderGroupHandlesNV; -//typedef void *PFN_vkGetAccelerationStructureHandleNV; -//typedef void *PFN_vkCmdWriteAccelerationStructuresPropertiesNV; -//typedef void *PFN_vkCompileDeferredNV; +// 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; From 2e9ffd9444f18076987c85c2851d3a2f874fd85f Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 15:25:20 +0100 Subject: [PATCH 10/34] Updated to make debug layers guarded by macro --- .ccls | 1 + CMakeLists.txt | 7 ++++++- src/Manager.cpp | 8 ++++++++ src/include/kompute/Core.hpp | 21 ++++++++++++--------- src/include/kompute/Manager.hpp | 2 ++ 5 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.ccls b/.ccls index 7ce6ab1c0..43ab67d8d 100644 --- a/.ccls +++ b/.ccls @@ -16,5 +16,6 @@ -I/c/Users/axsau/Programming/lib/vcpkg/installed/x64-linux/include/ -I./src/include/ -I./single_include/ +-I./vulkan_ndk_patch_include/ -I./test/compiled_shaders_include/ diff --git a/CMakeLists.txt b/CMakeLists.txt index d329a8281..c374887ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,8 @@ option(KOMPUTE_OPT_BUILD_SINGLE_HEADER "Enable if you want to build the single h option(KOMPUTE_OPT_INSTALL "Enable if you want to enable installation" 1) option(KOMPUTE_OPT_ENABLE_SPDLOG "Extra compile flags for Kompute, see docs for full list" 0) option(KOMPUTE_OPT_ANDOID_BUILD "Enable android compilation flags required" 0) +# TODO: Add on docs +option(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS "Explicitly disable debug layers even on debug" 0) set(KOMPUTE_EXTRA_CXX_FLAGS "" CACHE STRING "Extra compile flags for Kompute, see docs for full list") @@ -25,8 +27,11 @@ if(KOMPUTE_OPT_ANDOID_BUILD) set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DVK_USE_PLATFORM_ANDROID_KHR") endif() +if(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS) + set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1") +endif() -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 ${KOMPUTE_EXTRA_CXX_FLAGS}") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 ${KOMPUTE_EXTRA_CXX_FLAGS} -DUSE_DEBUG_EXTENTIONS") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE=1 ${KOMPUTE_EXTRA_CXX_FLAGS}") # Allow scripts to call main kompute Makefile diff --git a/src/Manager.cpp b/src/Manager.cpp index 40c81b2de..6a7fd3345 100644 --- a/src/Manager.cpp +++ b/src/Manager.cpp @@ -7,6 +7,7 @@ namespace kp { #if DEBUG +#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS static VKAPI_ATTR VkBool32 VKAPI_CALL debugMessageCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, @@ -21,6 +22,7 @@ debugMessageCallback(VkDebugReportFlagsEXT flags, return VK_FALSE; } #endif +#endif Manager::Manager() : Manager(0) @@ -73,11 +75,13 @@ Manager::~Manager() } #if DEBUG +#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS if (this->mDebugReportCallback) { this->mInstance->destroyDebugReportCallbackEXT( this->mDebugReportCallback, nullptr, this->mDebugDispatcher); SPDLOG_DEBUG("Kompute Manager Destroyed Debug Report Callback"); } +#endif #endif if (this->mFreeInstance) { @@ -133,6 +137,7 @@ Manager::createInstance() } #if DEBUG +#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS SPDLOG_DEBUG("Kompute Manager adding debug validation layers"); // We'll identify the layers that are supported std::vector validLayerNames; @@ -160,6 +165,7 @@ Manager::createInstance() (uint32_t)validLayerNames.size(); computeInstanceCreateInfo.ppEnabledLayerNames = validLayerNames.data(); } +#endif #endif this->mInstance = std::make_shared(); @@ -168,6 +174,7 @@ Manager::createInstance() SPDLOG_DEBUG("Kompute Manager Instance Created"); #if DEBUG +#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS SPDLOG_DEBUG("Kompute Manager adding debug callbacks"); if (validLayerNames.size() > 0) { vk::DebugReportFlagsEXT debugFlags = @@ -184,6 +191,7 @@ Manager::createInstance() debugCreateInfo, nullptr, this->mDebugDispatcher); } #endif +#endif } void diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 8b4d9f120..47e98b5a6 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -1,20 +1,23 @@ #pragma once -#if defined(VK_USE_PLATFORM_ANDROID_KHR) -#include -#include -#endif - //#define VK_NO_PROTOTYPES 1 //#undef VK_NO_PROTOTYPES -#undef DEBUG -#ifndef RELEASE -#define RELEASE 1 -#endif +//#undef DEBUG +//#ifndef RELEASE +//#define RELEASE 1 +//#endif //#define USE_DEBUG_EXTENTIONS + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +#include +#include #include +// VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp #undef VK_NO_PROTOTYPES +#define DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 +#endif + #include // SPDLOG_ACTIVE_LEVEL must be defined before spdlog.h import diff --git a/src/include/kompute/Manager.hpp b/src/include/kompute/Manager.hpp index e3e522791..e2c7832fd 100644 --- a/src/include/kompute/Manager.hpp +++ b/src/include/kompute/Manager.hpp @@ -154,8 +154,10 @@ class Manager mManagedSequences; #if DEBUG +#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS vk::DebugReportCallbackEXT mDebugReportCallback; vk::DispatchLoaderDynamic mDebugDispatcher; +#endif #endif // Create functions From c774040e52a37eaa43ebe2336c86725ec5497344 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 15:26:01 +0100 Subject: [PATCH 11/34] Updated godot example to use static lib --- .../godot_logistic_regression/gdnative_shared/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/godot_logistic_regression/gdnative_shared/CMakeLists.txt b/examples/godot_logistic_regression/gdnative_shared/CMakeLists.txt index 651c923ed..6091f8603 100644 --- a/examples/godot_logistic_regression/gdnative_shared/CMakeLists.txt +++ b/examples/godot_logistic_regression/gdnative_shared/CMakeLists.txt @@ -15,7 +15,7 @@ find_package(kompute REQUIRED) find_package(Vulkan REQUIRED) add_library(kompute_godot - SHARED + STATIC src/KomputeModelML.cpp src/KomputeGdNative.cpp) From 02f4f34f9c9ef0a4c551aae0dcc98553e4507096 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 15:26:11 +0100 Subject: [PATCH 12/34] Updated signle include --- single_include/kompute/Kompute.hpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index 5452c7927..6ee47169c 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -1,20 +1,23 @@ -#if defined(VK_USE_PLATFORM_ANDROID_KHR) -#include -#include -#endif - //#define VK_NO_PROTOTYPES 1 //#undef VK_NO_PROTOTYPES -#undef DEBUG -#ifndef RELEASE -#define RELEASE 1 -#endif +//#undef DEBUG +//#ifndef RELEASE +//#define RELEASE 1 +//#endif //#define USE_DEBUG_EXTENTIONS + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +#include +#include #include +// VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp #undef VK_NO_PROTOTYPES +#define DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 +#endif + #include // SPDLOG_ACTIVE_LEVEL must be defined before spdlog.h import @@ -888,8 +891,10 @@ class Manager mManagedSequences; #if DEBUG +#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS vk::DebugReportCallbackEXT mDebugReportCallback; vk::DispatchLoaderDynamic mDebugDispatcher; +#endif #endif // Create functions From b584a0ebfc784dc4c9db6780712316380713390c Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 15:26:55 +0100 Subject: [PATCH 13/34] Updated to working example --- examples/android/android-simple/app/build.gradle | 7 ++++++- .../android-simple/app/src/main/jni/CMakeLists.txt | 2 +- .../android/android-simple/app/src/main/jni/main.cpp | 10 ---------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index 34bde80dc..8d2abc372 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -17,7 +17,12 @@ android { externalNativeBuild { cmake { abiFilters "armeabi-v7a", 'arm64-v8a', 'x86', 'x86_64' - arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static', '-DKOMPUTE_OPT_ANDOID_BUILD=1', '-DKOMPUTE_OPT_INSTALL=0', '-DKOMPUTE_OPT_BUILD_SINGLE_HEADER=1' + arguments '-DANDROID_TOOLCHAIN=clang', + '-DANDROID_STL=c++_static', + '-DKOMPUTE_OPT_ANDOID_BUILD=1', + '-DKOMPUTE_OPT_INSTALL=0', + '-DKOMPUTE_OPT_BUILD_SINGLE_HEADER=1', + '-DKOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS=1' } } } diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt index 695a14d6e..9e4c2c1fb 100644 --- a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt @@ -26,7 +26,7 @@ include_directories( # * -DUSE_DEBUG_EXTENTIONS # * -Wno-unused-variable set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 \ - -DVK_USE_PLATFORM_ANDROID_KHR -DUSE_DEBUG_EXTENTIONS") + -DVK_USE_PLATFORM_ANDROID_KHR=1 -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp index 392e49096..08ef28842 100644 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -215,16 +215,6 @@ bool initialize(android_app* app) { CALL_VK( vkCreateDevice(tutorialGpu, &deviceCreateInfo, nullptr, &tutorialDevice)); - VkInstance tutorialInstance; - VkPhysicalDevice tutorialGpu; - VkDevice tutorialDevice; - - std::shared_ptr tutorialInstanceHpp = std::make_shared(tutorialInstance); - std::shared_ptr tutorialGpuHpp = std::make_shared(tutorialGpu); - std::shared_ptr tutorialDeviceHpp = std::make_shared(tutorialDevice); -// -// kp::Manager mgr(tutorialInstanceHpp, tutorialGpuHpp, tutorialDeviceHpp, 0); - LOGI("BEFORE RUNNING"); kp::Manager mgr; From 1b63f58b7db273202a1a42232c1d572b8e0d88d7 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 15:45:39 +0100 Subject: [PATCH 14/34] Cleaned example file --- .../android-simple/app/src/main/jni/main.cpp | 152 +----------------- 1 file changed, 4 insertions(+), 148 deletions(-) diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp index 08ef28842..0fda97d82 100644 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -21,7 +21,6 @@ #include #include #include -//#include "TutorialValLayer.hpp" #include "kompute/Kompute.hpp" @@ -44,12 +43,6 @@ static const char* kTAG = "Vulkan-Tutorial01"; assert(false); \ } -// Global variables -VkInstance tutorialInstance; -VkPhysicalDevice tutorialGpu; -VkDevice tutorialDevice; -VkSurfaceKHR tutorialSurface; - // We will call this function the window is opened. // This is where we will initialise everything bool initialized_ = false; @@ -75,147 +68,14 @@ void android_main(struct android_app* app) { } bool initialize(android_app* app) { -// // Load Android vulkan and retrieve vulkan API function pointers - LOGI("Initialising vulkan"); -// sleep(1); + LOGI("Initialising vulkan"); if (!InitVulkan()) { LOGE("Vulkan is unavailable, install vulkan and re-start"); return false; } - LOGI("Starting"); -// sleep(1); - VkApplicationInfo appInfo = { - .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, - .pNext = nullptr, - .apiVersion = VK_MAKE_VERSION(1, 0, 0), - .applicationVersion = VK_MAKE_VERSION(1, 0, 0), - .engineVersion = VK_MAKE_VERSION(1, 0, 0), - .pApplicationName = "tutorial01_load_vulkan", - .pEngineName = "tutorial", - }; - LOGI("Created"); -// sleep(1); - - // prepare necessary extensions: Vulkan on Android need these to function - std::vector instanceExt, deviceExt; - instanceExt.push_back("VK_KHR_surface"); - instanceExt.push_back("VK_KHR_android_surface"); - deviceExt.push_back("VK_KHR_swapchain"); - - LOGI("Creating instance"); -// sleep(1); - // Create the Vulkan instance - VkInstanceCreateInfo instanceCreateInfo{ - .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, - .pNext = nullptr, - .pApplicationInfo = &appInfo, - .enabledExtensionCount = static_cast(instanceExt.size()), - .ppEnabledExtensionNames = instanceExt.data(), - .enabledLayerCount = 0, - .ppEnabledLayerNames = nullptr, - }; - CALL_VK(vkCreateInstance(&instanceCreateInfo, nullptr, &tutorialInstance)); - - LOGI("Creating createinfo"); -// sleep(1); - // if we create a surface, we need the surface extension - VkAndroidSurfaceCreateInfoKHR createInfo{ - .sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, - .pNext = nullptr, - .flags = 0, - .window = app->window}; - CALL_VK(vkCreateAndroidSurfaceKHR(tutorialInstance, &createInfo, nullptr, - &tutorialSurface)); - - // Find one GPU to use: - // On Android, every GPU device is equal -- supporting - // graphics/compute/present - // for this sample, we use the very first GPU device found on the system - uint32_t gpuCount = 0; - CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, nullptr)); - VkPhysicalDevice tmpGpus[gpuCount]; - CALL_VK(vkEnumeratePhysicalDevices(tutorialInstance, &gpuCount, tmpGpus)); - tutorialGpu = tmpGpus[0]; // Pick up the first GPU Device - - // check for vulkan info on this GPU device - VkPhysicalDeviceProperties gpuProperties; - vkGetPhysicalDeviceProperties(tutorialGpu, &gpuProperties); - LOGI("Vulkan Physical Device Name: %s", gpuProperties.deviceName); - LOGI("Vulkan Physical Device Info: apiVersion: %x \n\t driverVersion: %x", - gpuProperties.apiVersion, gpuProperties.driverVersion); - LOGI("API Version Supported: %d.%d.%d", - VK_VERSION_MAJOR(gpuProperties.apiVersion), - VK_VERSION_MINOR(gpuProperties.apiVersion), - VK_VERSION_PATCH(gpuProperties.apiVersion)); - - VkSurfaceCapabilitiesKHR surfaceCapabilities; - vkGetPhysicalDeviceSurfaceCapabilitiesKHR(tutorialGpu, tutorialSurface, - &surfaceCapabilities); - - LOGI("Vulkan Surface Capabilities:\n"); - LOGI("\timage count: %u - %u\n", surfaceCapabilities.minImageCount, - surfaceCapabilities.maxImageCount); - LOGI("\tarray layers: %u\n", surfaceCapabilities.maxImageArrayLayers); - LOGI("\timage size (now): %dx%d\n", surfaceCapabilities.currentExtent.width, - surfaceCapabilities.currentExtent.height); - LOGI("\timage size (extent): %dx%d - %dx%d\n", - surfaceCapabilities.minImageExtent.width, - surfaceCapabilities.minImageExtent.height, - surfaceCapabilities.maxImageExtent.width, - surfaceCapabilities.maxImageExtent.height); - LOGI("\tusage: %x\n", surfaceCapabilities.supportedUsageFlags); - LOGI("\tcurrent transform: %u\n", surfaceCapabilities.currentTransform); - LOGI("\tallowed transforms: %x\n", surfaceCapabilities.supportedTransforms); - LOGI("\tcomposite alpha flags: %u\n", surfaceCapabilities.currentTransform); - - // Find a GFX queue family - uint32_t queueFamilyCount; - vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, nullptr); - assert(queueFamilyCount); - std::vector queueFamilyProperties(queueFamilyCount); - vkGetPhysicalDeviceQueueFamilyProperties(tutorialGpu, &queueFamilyCount, - queueFamilyProperties.data()); - - uint32_t queueFamilyIndex; - for (queueFamilyIndex=0; queueFamilyIndex < queueFamilyCount; - queueFamilyIndex++) { - if (queueFamilyProperties[queueFamilyIndex].queueFlags & VK_QUEUE_GRAPHICS_BIT) { - break; - } - } - assert(queueFamilyIndex < queueFamilyCount); - - // Create a logical device from GPU we picked - float priorities[] = { - 1.0f, - }; - VkDeviceQueueCreateInfo queueCreateInfo{ - .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, - .pNext = nullptr, - .flags = 0, - .queueCount = 1, - .queueFamilyIndex = queueFamilyIndex, - .pQueuePriorities = priorities, - }; - - VkDeviceCreateInfo deviceCreateInfo{ - .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, - .pNext = nullptr, - .queueCreateInfoCount = 1, - .pQueueCreateInfos = &queueCreateInfo, - .enabledLayerCount = 0, - .ppEnabledLayerNames = nullptr, - .enabledExtensionCount = static_cast(deviceExt.size()), - .ppEnabledExtensionNames = deviceExt.data(), - .pEnabledFeatures = nullptr, - }; - - CALL_VK( - vkCreateDevice(tutorialGpu, &deviceCreateInfo, nullptr, &tutorialDevice)); - - LOGI("BEFORE RUNNING"); + LOGI("Creating manager"); kp::Manager mgr; @@ -223,6 +83,7 @@ bool initialize(android_app* app) { auto tensorB = mgr.buildTensor({0,1,2}); auto tensorC = mgr.buildTensor({1,2,3}); + LOGI("Result before:"); for(const float & i : tensorC->data()) { LOGI("%f ", i); } @@ -230,8 +91,7 @@ bool initialize(android_app* app) { mgr.evalOpDefault>({tensorA, tensorB, tensorC}); mgr.evalOpDefault({tensorC}); - LOGI("HERE IS THE INFORMATION:"); - + LOGI("Result after:"); for(const float & i : tensorC->data()) { LOGI("%f ", i); } @@ -242,10 +102,6 @@ bool initialize(android_app* app) { } void terminate(void) { -// vkDestroySurfaceKHR(tutorialInstance, tutorialSurface, nullptr); -// vkDestroyDevice(tutorialDevice, nullptr); -// vkDestroyInstance(tutorialInstance, nullptr); - initialized_ = false; } From 9c487feb3be3b6f4a999c5e031cf093b94a39f2e Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 16:11:46 +0100 Subject: [PATCH 15/34] Updated src to point to renamed ndk wrapper include --- .ccls | 2 +- .../app/src/main/jni/TutorialValLayer.cpp | 364 ------------------ .../app/src/main/jni/TutorialValLayer.hpp | 93 ----- src/CMakeLists.txt | 18 +- src/include/kompute/Core.hpp | 2 +- 5 files changed, 8 insertions(+), 471 deletions(-) delete mode 100644 examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp delete mode 100644 examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp diff --git a/.ccls b/.ccls index 43ab67d8d..f37e98609 100644 --- a/.ccls +++ b/.ccls @@ -16,6 +16,6 @@ -I/c/Users/axsau/Programming/lib/vcpkg/installed/x64-linux/include/ -I./src/include/ -I./single_include/ --I./vulkan_ndk_patch_include/ +-I./vk_ndk_wrapper_include/ -I./test/compiled_shaders_include/ diff --git a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp deleted file mode 100644 index c4df29982..000000000 --- a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.cpp +++ /dev/null @@ -1,364 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// 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. -#include "TutorialValLayer.hpp" -#include "vulkan/vulkan.h" -#include -#include - - - -// Android log function wrappers -static const char* kTAG = "Vulkan-Tutorial02"; -#define LOGI(...) \ - ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) -#define LOGW(...) \ - ((void)__android_log_print(ANDROID_LOG_WARN, kTAG, __VA_ARGS__)) -#define LOGE(...) \ - ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) - -// Vulkan call wrapper -#define CALL_VK(func) \ - if (VK_SUCCESS != (func)) { \ - __android_log_print(ANDROID_LOG_ERROR, "Tutorial ", \ - "Vulkan error. File[%s], line[%d]", __FILE__, \ - __LINE__); \ - assert(false); \ - } - -/* - * Validation Layer names at this time (info purpose) - static const char* kValLayerNames[] = { - "VK_LAYER_GOOGLE_threading", - "VK_LAYER_LUNARG_device_limits", - "VK_LAYER_LUNARG_core_validation", - "VK_LAYER_LUNARG_image", - "VK_LAYER_LUNARG_object_tracker", - "VK_LAYER_LUNARG_parameter_validation", - "VK_LAYER_LUNARG_swapchain", - "VK_LAYER_GOOGLE_unique_objects", - }; -*/ -static const char* kUniqueObjectLayer = "VK_LAYER_GOOGLE_unique_objects"; -static const char* kGoogleThreadingLayer = "VK_LAYER_GOOGLE_threading"; - -// Debug Extension names in use. -// assumed usage: -// 1) app calls GetDbgExtName() -// 2) app calls IsExtSupported() to make sure it is supported -// 3) app tucks dbg extension name into InstanceCreateInfo to create instance -// 4) app calls CreateDbgExtCallback() to hook up debug print message -static const char* kDbgExtName = "VK_EXT_debug_report"; - -// Simple Dbg Callback function to be used by Vk engine -static VkBool32 VKAPI_PTR vkDebugReportCallbackEX_impl( - VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, - uint64_t object, size_t location, int32_t messageCode, - const char* pLayerPrefix, const char* pMessage, void* pUserData) { - if (flags & VK_DEBUG_REPORT_INFORMATION_BIT_EXT) { - __android_log_print(ANDROID_LOG_INFO, "Vulkan-Debug-Message: ", "%s -- %s", - pLayerPrefix, pMessage); - } - if (flags & VK_DEBUG_REPORT_WARNING_BIT_EXT) { - __android_log_print(ANDROID_LOG_WARN, "Vulkan-Debug-Message: ", "%s -- %s", - pLayerPrefix, pMessage); - } - if (flags & VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT) { - __android_log_print(ANDROID_LOG_WARN, "Vulkan-Debug-Message-(Perf): ", - "%s -- %s", pLayerPrefix, pMessage); - } - if (flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) { - __android_log_print(ANDROID_LOG_ERROR, "Vulkan-Debug-Message: ", "%s -- %s", - pLayerPrefix, pMessage); - } - if (flags & VK_DEBUG_REPORT_DEBUG_BIT_EXT) { - __android_log_print(ANDROID_LOG_DEBUG, "Vulkan-Debug-Message: ", "%s -- %s", - pLayerPrefix, pMessage); - } - - return VK_FALSE; -} -// Reinforce the layer name sequence to meet load sequence -// requirement if there is any -void LayerAndExtensions::CheckLayerLoadingSequence( - std::vector* layerPtr) { - // VK_LAYER_GOOGLE_unique_objects need to be after - // VK_LAYER_LUNARG_core_validation - // VK_GOOGLE_THREADING_LAYER better to be the very first one - std::vector& layers = *layerPtr; - uint32_t uniqueObjIdx = -1; - uint32_t threadingIdx = -1; - uint32_t size = layers.size(); - for (uint32_t idx = 0; idx < size; ++idx) { - if (!strcmp(layers[idx], kUniqueObjectLayer)) uniqueObjIdx = idx; - if (!strcmp(layers[idx], kGoogleThreadingLayer)) threadingIdx = idx; - } - if (uniqueObjIdx != -1) { - char* tmp = layers[uniqueObjIdx]; - layers[uniqueObjIdx] = layers[size - 1]; - layers[size - 1] = tmp; - } - - if (threadingIdx != -1) { - char* tmp = layers[threadingIdx]; - layers[threadingIdx] = layers[0]; - layers[0] = tmp; - } -} - -bool LayerAndExtensions::InitExtNames(const std::vector& prop, - std::vector* names) { - names->clear(); - for (auto& ext : prop) { - for (uint32_t i = 0; i < ext.count; ++i) { - // skip the one already inside - bool duplicate = false; - for (uint32_t j = 0; j < names->size(); ++j) { - if (!strcmp(ext.prop[i].extensionName, (*names)[j])) { - duplicate = true; - break; - } - } - if (duplicate) continue; - // save this unique one - names->push_back(ext.prop[i].extensionName); - LOGI("Ext name: %s", ext.prop[i].extensionName); - } - } - return true; -} - -bool LayerAndExtensions::InitInstExts(void) { - ExtInfo extInfo{0, nullptr}; - CALL_VK( - vkEnumerateInstanceExtensionProperties(nullptr, &extInfo.count, nullptr)); - if (extInfo.count) { - extInfo.prop = new VkExtensionProperties[extInfo.count]; - assert(extInfo.prop); - CALL_VK(vkEnumerateInstanceExtensionProperties(nullptr, &extInfo.count, - extInfo.prop)); - instExtProp_.push_back(extInfo); - } - - for (int i = 0; i < instLayerCount_; i++) { - extInfo.count = 0; - CALL_VK(vkEnumerateInstanceExtensionProperties(instLayerProp_[i].layerName, - &extInfo.count, nullptr)); - if (extInfo.count == 0) continue; - extInfo.prop = new VkExtensionProperties[extInfo.count]; - CALL_VK(vkEnumerateInstanceExtensionProperties( - instLayerProp_[i].layerName, &extInfo.count, extInfo.prop)); - instExtProp_.push_back(extInfo); - } - return InitExtNames(instExtProp_, &instExts_); -} - -char** LayerAndExtensions::InstLayerNames(void) { - if (instLayers_.size()) { - return static_cast(instLayers_.data()); - } - return nullptr; -} -uint32_t LayerAndExtensions::InstLayerCount(void) { - LOGI("InstLayerCount = %d", static_cast(instLayers_.size())); - return static_cast(instLayers_.size()); -} -char** LayerAndExtensions::InstExtNames(void) { - if (instExts_.size()) { - return static_cast(instExts_.data()); - } - return nullptr; -} -uint32_t LayerAndExtensions::InstExtCount(void) { - LOGI("InstExtCount: %d", static_cast(instExts_.size())); - return static_cast(instExts_.size()); -} - -bool LayerAndExtensions::IsInstExtSupported(const char* extName) { - for (auto name : instExts_) { - if (!strcmp(name, extName)) { - return true; - } - } - return false; -} - -bool LayerAndExtensions::AddInstanceExt(const char* extName) { - if (!extName) return false; - - // enable all available extensions, plus the one asked - if (!IsInstExtSupported(extName)) { -#ifdef ENABLE_NON_ENUMERATED_EXT - instExts.push_back(static_cast(extName)); - instExtCount++; - return true; -#else - return false; -#endif - } - return true; -} -bool LayerAndExtensions::IsInstLayerSupported(const char* layerName) { - InstLayerNames(); - for (auto name : instLayers_) { - if (!strcmp(name, layerName)) return true; - } - return false; -} - -LayerAndExtensions::LayerAndExtensions(void) { - instance_ = VK_NULL_HANDLE; - vkCallbackHandle_ = VK_NULL_HANDLE; - CALL_VK(vkEnumerateInstanceLayerProperties(&instLayerCount_, nullptr)); - if (instLayerCount_) { - instLayerProp_ = new VkLayerProperties[instLayerCount_]; - assert(instLayerProp_); - CALL_VK( - vkEnumerateInstanceLayerProperties(&instLayerCount_, instLayerProp_)); - } - for (uint32_t i = 0; i < instLayerCount_; i++) { - instLayers_.push_back(instLayerProp_[i].layerName); - LOGI("InstLayer name: %s", instLayerProp_[i].layerName); - } - CheckLayerLoadingSequence(&instLayers_); - - InitInstExts(); -} - -LayerAndExtensions::~LayerAndExtensions() { - if (instLayerProp_) { - delete[] instLayerProp_; - } - for (auto ext : instExtProp_) { - delete[] ext.prop; - } - if (vkCallbackHandle_) { - vkDestroyDebugReportCallbackEXT(instance_, vkCallbackHandle_, nullptr); - } -} - -void LayerAndExtensions::InitDevLayersAndExt(VkPhysicalDevice physicalDevice) { - physicalDev_ = physicalDevice; - if (physicalDev_ == VK_NULL_HANDLE) return; - - // get all supported layers props - devLayerCount_ = 0; - CALL_VK( - vkEnumerateDeviceLayerProperties(physicalDev_, &devLayerCount_, nullptr)); - if (devLayerCount_) { - devLayerProp_ = new VkLayerProperties[devLayerCount_]; - assert(devLayerProp_); - CALL_VK(vkEnumerateDeviceLayerProperties(physicalDev_, &devLayerCount_, - devLayerProp_)); - } - -#ifdef LOADER_DEVICE_LAYER_REPORT_BUG_WA - // validation layer for device only report out for one layer, - // but it seems we could ask for all layers that asked for instance - // so we just add them all in brutally - // assume all device layers are also implemented for device layers - if (devLayerCount_ == 1) { - LOGI("Only Reported One layer for device"); - if (devLayerProp_) delete[] devLayerProp_; - devLayerProp_ = - (instLayerCount_ ? (new VkLayerProperties[instLayerCount_]) : nullptr); - memcpy(devLayerProp_, instLayerProp_, - instLayerCount_ * sizeof(VkLayerProperties)); - devLayerCount_ = instLayerCount_; - } -#endif - - for (int i = 0; i < devLayerCount_; i++) { - LOGI("deviceLayerName: %s", devLayerProp_[i].layerName); - devLayers_.push_back(devLayerProp_[i].layerName); - } - CheckLayerLoadingSequence(&devLayers_); - - // get all supported ext props - ExtInfo ext{0, nullptr}; - CALL_VK(vkEnumerateDeviceExtensionProperties(physicalDev_, nullptr, - &ext.count, nullptr)); - if (ext.count) { - ext.prop = new VkExtensionProperties[ext.count]; - assert(ext.prop); - CALL_VK(vkEnumerateDeviceExtensionProperties(physicalDev_, nullptr, - &ext.count, ext.prop)); - devExtProp_.push_back(ext); - } - for (int i = 0; i < devLayerCount_; i++) { - ext.count = 0; - CALL_VK(vkEnumerateDeviceExtensionProperties( - physicalDev_, devLayerProp_[i].layerName, &ext.count, nullptr)); - if (ext.count) { - ext.prop = new VkExtensionProperties[ext.count]; - assert(ext.prop); - CALL_VK(vkEnumerateDeviceExtensionProperties( - physicalDev_, devLayerProp_[i].layerName, &ext.count, ext.prop)); - devExtProp_.push_back(ext); - } - } - - InitExtNames(devExtProp_, &devExts_); -} - -char** LayerAndExtensions::DevLayerNames(void) { - assert(physicalDev_ != VK_NULL_HANDLE); - if (devLayers_.size()) return devLayers_.data(); - - return nullptr; -} -uint32_t LayerAndExtensions::DevLayerCount(void) { - assert(physicalDev_ != VK_NULL_HANDLE); - return devLayers_.size(); -} -char** LayerAndExtensions::DevExtNames(void) { - assert(physicalDev_ != VK_NULL_HANDLE); - if (devExts_.size()) return devExts_.data(); - return nullptr; -} -uint32_t LayerAndExtensions::DevExtCount(void) { - assert(physicalDev_ != VK_NULL_HANDLE); - return devExts_.size(); -} - -const char* LayerAndExtensions::GetDbgExtName(void) { return kDbgExtName; } -bool LayerAndExtensions::HookDbgReportExt(VkInstance instance) { - instance_ = instance; - if (!IsInstExtSupported(GetDbgExtName())) { - return false; - } - if (!vkCreateDebugReportCallbackEXT) { - vkCreateDebugReportCallbackEXT = - (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr( - instance, "vkCreateDebugReportCallbackEXT"); - vkDestroyDebugReportCallbackEXT = - (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr( - instance, "vkDestroyDebugReportCallbackEXT"); - vkDebugReportMessageEXT = - (PFN_vkDebugReportMessageEXT)vkGetInstanceProcAddr( - instance, "vkDebugReportMessageEXT"); - } - - VkDebugReportCallbackCreateInfoEXT dbgInfo = { - .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT, - .pNext = nullptr, - .flags = VK_DEBUG_REPORT_WARNING_BIT_EXT | - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT | - VK_DEBUG_REPORT_ERROR_BIT_EXT, - .pfnCallback = vkDebugReportCallbackEX_impl, - .pUserData = this, // we provide the debug object as context - }; - CALL_VK(vkCreateDebugReportCallbackEXT(instance, &dbgInfo, nullptr, - &vkCallbackHandle_)); - return true; -} diff --git a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp b/examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp deleted file mode 100644 index 997ed2844..000000000 --- a/examples/android/android-simple/app/src/main/jni/TutorialValLayer.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// 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. -#ifndef __VALLAYER_HPP__ -#define __VALLAYER_HPP__ -#include -#include -#include -#include - -// Some loader only report one layer for device layers, enable this to -// workaround it: it will copy all instance layers into device layers -// and NOT enumerating device layers -//#define LOADER_DEVICE_LAYER_REPORT_BUG_WA - -// If extension is not enumerated, it should not be enabled in general; -// If you know an extension is on the device, but loader does not report it, -// it could be forced in by enabling -// the following compile flag and call AddInstanceExt(). -// #define ENABLE_NON_ENUMERATED_EXT 1 - -// A Helper class to manage validation layers and extensions -// Supposed usage: -// 1) validation layers: app should enable them with -// InstanceLayerCount() -// InstanceLayerNames() -// 2) Extension layers: app should check for supportability -// and then enable in app code ( not in this class ) -// 3) DbgExtension: once instance is created, just call -// HookDbgReportExt -class LayerAndExtensions { - public: - LayerAndExtensions(void); - ~LayerAndExtensions(); - - uint32_t InstLayerCount(void); - char** InstLayerNames(void); - uint32_t InstExtCount(void); - char** InstExtNames(void); - bool IsInstExtSupported(const char* extName); - bool IsInstLayerSupported(const char* layerName); - - const char* GetDbgExtName(void); - bool AddInstanceExt(const char* extName); - bool HookDbgReportExt(VkInstance instance); - - void InitDevLayersAndExt(VkPhysicalDevice physicalDevice); - char** DevLayerNames(void); - uint32_t DevLayerCount(void); - char** DevExtNames(void); - uint32_t DevExtCount(void); - - private: - // internal helper data structure - struct ExtInfo { - uint32_t count; - VkExtensionProperties* prop; - }; - - VkInstance instance_; - VkDebugReportCallbackEXT vkCallbackHandle_; - VkPhysicalDevice physicalDev_; - - std::vector instLayers_; - std::vector instExts_; - std::vector devLayers_; - std::vector devExts_; - - VkLayerProperties* instLayerProp_{nullptr}; - uint32_t instLayerCount_{0}; - std::vector instExtProp_; - - VkLayerProperties* devLayerProp_{nullptr}; - uint32_t devLayerCount_{0}; - std::vector devExtProp_; - - bool InitInstExts(void); - bool InitExtNames(const std::vector& props, - std::vector* names); - void CheckLayerLoadingSequence(std::vector* layers); -}; - -#endif // __VALLAYER_HPP__ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1392848d7..a1d2fd24b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,4 @@ - if(KOMPUTE_OPT_ENABLE_SPDLOG) find_package(spdlog REQUIRED) find_package(fmt REQUIRED) @@ -32,7 +31,7 @@ file(GLOB kompute_CPP if(KOMPUTE_OPT_ANDOID_BUILD) set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common) - set(VK_ANDROID_PATCH_DIR ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/) + 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( @@ -44,17 +43,12 @@ if(KOMPUTE_OPT_ANDOID_BUILD) add_library(android_app_glue STATIC ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) - add_library(android_vulkan_wrapper STATIC - ${PROJECT_SOURCE_DIR}/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp) + add_library(kompute_vk_ndk_wrapper STATIC + ${PROJECT_SOURCE_DIR}/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp) endif() -if(KOMPUTE_OPT_ANDOID_BUILD) - add_library(kompute - ${kompute_CPP}) -else() - add_library(kompute - ${kompute_CPP}) -endif() +add_library(kompute + ${kompute_CPP}) target_include_directories( kompute PUBLIC @@ -86,7 +80,7 @@ if(KOMPUTE_OPT_ANDOID_BUILD) target_link_libraries( kompute android_app_glue - android_vulkan_wrapper + kompute_vk_ndk_wrapper log android ) diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 47e98b5a6..3b4d1129c 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -11,7 +11,7 @@ #ifdef VK_USE_PLATFORM_ANDROID_KHR #include #include -#include +#include // VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp #undef VK_NO_PROTOTYPES From aa8a138d9488bce629034f50b1f66c36bf1a2521 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 16:11:56 +0100 Subject: [PATCH 16/34] Updated vulkan ndk patch include --- .../kompute_vulkan_wrapper.cpp | 798 ------------------ .../kompute_vulkan_wrapper.hpp | 414 --------- .../kompute_vulkan_wrapper_patch.hpp | 184 ---- 3 files changed, 1396 deletions(-) delete mode 100755 vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp delete mode 100755 vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp delete mode 100644 vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp diff --git a/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.cpp deleted file mode 100755 index b720ebaaa..000000000 --- a/vulkan_ndk_patch_include/kompute_vulkan_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_vulkan_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/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper.hpp deleted file mode 100755 index 042108bba..000000000 --- a/vulkan_ndk_patch_include/kompute_vulkan_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/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp b/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp deleted file mode 100644 index edf7b8736..000000000 --- a/vulkan_ndk_patch_include/kompute_vulkan_wrapper_patch.hpp +++ /dev/null @@ -1,184 +0,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; - From 0d3cb7787f5028c0abcad1500acbba003921e997 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 16:12:17 +0100 Subject: [PATCH 17/34] Updated android example to reduce number of files --- .../android-simple/app/src/main/jni/CMakeLists.txt | 8 ++------ examples/android/android-simple/app/src/main/jni/main.cpp | 8 -------- single_include/kompute/Kompute.hpp | 2 +- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt index 9e4c2c1fb..8c3ea439f 100644 --- a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/jni/CMakeLists.txt @@ -19,12 +19,8 @@ include_directories( ${VK_ANDROID_COMMON_DIR} ${VK_ANDROID_INCLUDE_DIR} ../../../../../../../single_include/ - ../../../../../../../vulkan_ndk_patch_include/) + ../../../../../../../vk_ndk_wrapper_include/) -# TODO: Explore: -# * -DVK_NO_PROTOTYPES -# * -DUSE_DEBUG_EXTENTIONS -# * -Wno-unused-variable set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 \ -DVK_USE_PLATFORM_ANDROID_KHR=1 -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1") @@ -35,5 +31,5 @@ target_link_libraries(kompute_android kompute app-glue log - android_vulkan_wrapper + kompute_vk_ndk_wrapper android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp index 0fda97d82..3946ce5e2 100644 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ b/examples/android/android-simple/app/src/main/jni/main.cpp @@ -34,14 +34,6 @@ static const char* kTAG = "Vulkan-Tutorial01"; #define LOGE(...) \ ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) -// Vulkan call wrapper -#define CALL_VK(func) \ - if (VK_SUCCESS != (func)) { \ - __android_log_print(ANDROID_LOG_ERROR, "Tutorial ", \ - "Vulkan error. File[%s], line[%d]", __FILE__, \ - __LINE__); \ - assert(false); \ - } // We will call this function the window is opened. // This is where we will initialise everything diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index 6ee47169c..ec04fde88 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -11,7 +11,7 @@ #ifdef VK_USE_PLATFORM_ANDROID_KHR #include #include -#include +#include // VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp #undef VK_NO_PROTOTYPES From ba70a4c6669cad4c728870ab2a0cae4c1136eaa7 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 16:12:29 +0100 Subject: [PATCH 18/34] Removed old folder ndk wrapper --- .../kompute_vk_ndk_wrapper.cpp | 798 ++++++++++++++++++ .../kompute_vk_ndk_wrapper.hpp | 414 +++++++++ .../kompute_vk_ndk_wrapper_patch.hpp | 184 ++++ 3 files changed, 1396 insertions(+) create mode 100755 vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp create mode 100755 vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.hpp create mode 100644 vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp diff --git a/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp new file mode 100755 index 000000000..e5a71e5dd --- /dev/null +++ b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp @@ -0,0 +1,798 @@ +/* + * 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 new file mode 100755 index 000000000..b387bade3 --- /dev/null +++ b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.hpp @@ -0,0 +1,414 @@ +/* + * 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 new file mode 100644 index 000000000..edf7b8736 --- /dev/null +++ b/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper_patch.hpp @@ -0,0 +1,184 @@ +#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; + From a73f82e1910172aedc706228c28ef0b4b3afa5f0 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 18:27:39 +0100 Subject: [PATCH 19/34] Updated example to not use native activity anymore --- .../android/android-simple/app/build.gradle | 51 ++++++-- .../app/src/main/AndroidManifest.xml | 46 ++++--- .../app/src/main/{jni => cpp}/CMakeLists.txt | 12 +- .../app/src/main/cpp/KomputeJniNative.cpp | 111 +++++++++++++++++ .../kompute/examples/android/KomputeJni.kt | 68 +++++++++++ .../android-simple/app/src/main/jni/main.cpp | 114 ------------------ .../main/res/layout/activity_hello_jni.xml | 20 +++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../app/src/main/res/values-w820dp/dimens.xml | 6 + .../app/src/main/res/values/colors.xml | 6 + .../app/src/main/res/values/dimens.xml | 5 + .../app/src/main/res/values/strings.xml | 3 +- .../app/src/main/res/values/styles.xml | 11 ++ examples/android/android-simple/build.gradle | 7 +- .../android/android-simple/gradle.properties | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- single_include/kompute/Kompute.hpp | 4 +- src/CMakeLists.txt | 10 +- src/include/kompute/Core.hpp | 4 +- 23 files changed, 321 insertions(+), 163 deletions(-) rename examples/android/android-simple/app/src/main/{jni => cpp}/CMakeLists.txt (81%) create mode 100644 examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp create mode 100755 examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt delete mode 100644 examples/android/android-simple/app/src/main/jni/main.cpp create mode 100644 examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml create mode 100644 examples/android/android-simple/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 examples/android/android-simple/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 examples/android/android-simple/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 examples/android/android-simple/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 examples/android/android-simple/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 examples/android/android-simple/app/src/main/res/values-w820dp/dimens.xml create mode 100755 examples/android/android-simple/app/src/main/res/values/colors.xml create mode 100755 examples/android/android-simple/app/src/main/res/values/dimens.xml create mode 100755 examples/android/android-simple/app/src/main/res/values/styles.xml diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index 8d2abc372..0ecee901b 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) @@ -6,12 +8,13 @@ def ndkDir = properties.getProperty('ndk.dir') def valLayerBinDir = "${ndkDir}/sources/third_party/vulkan/src/build-android/jniLibs" android { - compileSdkVersion 26 + compileSdkVersion 29 + ndkVersion '21.2.6472646' defaultConfig { applicationId "com.ethicalml.kompute.examples.android" minSdkVersion 26 - targetSdkVersion 26 + targetSdkVersion 29 versionCode = 1 versionName = "0.0.1" externalNativeBuild { @@ -26,29 +29,57 @@ android { } } } + + buildFeatures { + viewBinding true + } + buildTypes { + release { + minifyEnabled = false + proguardFiles getDefaultProguardFile('proguard-android.txt'), + 'proguard-rules.pro' + } + } externalNativeBuild { cmake { - path 'src/main/jni/CMakeLists.txt' + path 'src/main/cpp/CMakeLists.txt' } } sourceSets { main { jniLibs { - // Must have ndk-r12 or better which including layer binaries - srcDirs = ["${valLayerBinDir}"] + // Must have ndk-r12 or better which including layer binaries + srcDirs = ["${valLayerBinDir}"] } } } - buildTypes { - release { - minifyEnabled = false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + flavorDimensions 'cpuArch' + productFlavors { + arm8 { + dimension 'cpuArch' + ndk { + abiFilters 'arm64-v8a', 'armeabi-v7a' + } } - } + x86_64 { + dimension 'cpuArch' + ndk { + abiFilters 'x86_64', 'x86' + } + } + universal { + dimension 'cpuArch' + // include all default ABIs. with NDK-r16, it is: + // armeabi-v7a, arm64-v8a, x86, x86_64 + } + } } dependencies { + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation fileTree(dir: 'libs', include: ['*.jar']) } diff --git a/examples/android/android-simple/app/src/main/AndroidManifest.xml b/examples/android/android-simple/app/src/main/AndroidManifest.xml index c15080377..58826d222 100755 --- a/examples/android/android-simple/app/src/main/AndroidManifest.xml +++ b/examples/android/android-simple/app/src/main/AndroidManifest.xml @@ -5,23 +5,35 @@ android:versionCode="1" android:versionName="1.0"> - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt b/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt similarity index 81% rename from examples/android/android-simple/app/src/main/jni/CMakeLists.txt rename to examples/android/android-simple/app/src/main/cpp/CMakeLists.txt index 8c3ea439f..0b3948088 100644 --- a/examples/android/android-simple/app/src/main/jni/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt @@ -6,14 +6,14 @@ set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common) set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) -# build native_app_glue as a static lib -include_directories(${ANDROID_APP_GLUE_DIR}) -add_library(app-glue STATIC - ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) +## build native_app_glue as a static lib +#include_directories(${ANDROID_APP_GLUE_DIR}) +#add_library(app-glue STATIC +# ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) # build vulkan app add_library(kompute_android SHARED - main.cpp) + KomputeJniNative.cpp) include_directories( ${VK_ANDROID_COMMON_DIR} @@ -29,7 +29,7 @@ set(CMAKE_SHARED_LINKER_FLAGS target_link_libraries(kompute_android kompute - app-glue +# app-glue log kompute_vk_ndk_wrapper 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 new file mode 100644 index 000000000..85a780fb3 --- /dev/null +++ b/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp @@ -0,0 +1,111 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// 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. + +//#undef DEBUG +//#define RELEASE 1 + +#include +//#include +//#include +//#include +//#include +//#include + +#include +#include + +//#include "kompute/Kompute.hpp" + + +// Functions interacting with Android native activity +void android_main(struct android_app* state); +void terminate(void); +void handle_cmd(android_app* app, int32_t cmd); + + +// Android log function wrappers +static const char* kTAG = "Vulkan-Tutorial01"; +#define LOGI(...) \ + ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) +#define LOGW(...) \ + ((void)__android_log_print(ANDROID_LOG_WARN, kTAG, __VA_ARGS__)) +#define LOGE(...) \ + ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) + + +JNIEXPORT jstring JNICALL +Java_com_ethicalml_kompute_examples_android_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { +#if defined(__arm__) + #if defined(__ARM_ARCH_7A__) + #if defined(__ARM_NEON__) + #if defined(__ARM_PCS_VFP) + #define ABI "armeabi-v7a/NEON (hard-float)" + #else + #define ABI "armeabi-v7a/NEON" + #endif + #else + #if defined(__ARM_PCS_VFP) + #define ABI "armeabi-v7a (hard-float)" + #else + #define ABI "armeabi-v7a" + #endif + #endif + #else + #define ABI "armeabi" + #endif +#elif defined(__i386__) +#define ABI "x86" +#elif defined(__x86_64__) +#define ABI "x86_64" +#elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */ +#define ABI "mips64" +#elif defined(__mips__) +#define ABI "mips" +#elif defined(__aarch64__) +#define ABI "arm64-v8a" +#else +#define ABI "unknown" +#endif + + + LOGI("Initialising vulkan"); +// if (!InitVulkan()) { +// LOGE("Vulkan is unavailable, install vulkan and re-start"); +// return false; +// } +// +// LOGI("Creating manager"); +// +// kp::Manager mgr; +// +// auto tensorA = mgr.buildTensor({0,1,2}); +// auto tensorB = mgr.buildTensor({0,1,2}); +// auto tensorC = mgr.buildTensor({1,2,3}); +// +// LOGI("Result before:"); +// for(const float & i : tensorC->data()) { +// LOGI("%f ", i); +// } +// +// mgr.evalOpDefault>({tensorA, tensorB, tensorC}); +// mgr.evalOpDefault({tensorC}); +// +// LOGI("Result after:"); +// for(const float & i : tensorC->data()) { +// LOGI("%f ", i); +// } + + return (*env).NewStringUTF("Hello from JNI ! Compiled with ABI "); +} + diff --git a/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt b/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt new file mode 100755 index 000000000..d3b1261aa --- /dev/null +++ b/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2016 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. + */ +package com.ethicalml.kompute.examples.android + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.ethicalml.kompute.examples.android.databinding.ActivityHelloJniBinding + +class KomputeJni : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + /* + * Retrieve our TextView and set its content. + * the text is retrieved by calling a native + * function. + */ + val binding = ActivityHelloJniBinding.inflate(layoutInflater) + setContentView(binding.root) + binding.helloTextview.text = stringFromJNI() + } + + /* + * A native method that is implemented by the + * 'hello-jni' native library, which is packaged + * with this application. + */ + external fun stringFromJNI(): String? + + /* + * This is another native method declaration that is *not* + * implemented by 'hello-jni'. This is simply to show that + * you can declare as many native methods in your Java code + * as you want, their implementation is searched in the + * currently loaded native libraries only the first time + * you call them. + * + * Trying to call this function will result in a + * java.lang.UnsatisfiedLinkError exception ! + */ + external fun unimplementedStringFromJNI(): String? + + companion object { + /* + * this is used to load the 'hello-jni' library on application + * startup. The library has already been unpacked into + * /data/data/com.example.hellojni/lib/libhello-jni.so + * at the installation time by the package manager. + */ + init { + System.loadLibrary("kompute_android") + } + } +} + diff --git a/examples/android/android-simple/app/src/main/jni/main.cpp b/examples/android/android-simple/app/src/main/jni/main.cpp deleted file mode 100644 index 3946ce5e2..000000000 --- a/examples/android/android-simple/app/src/main/jni/main.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// 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. - -#undef DEBUG -#define RELEASE 1 - -#include -#include -#include -#include -#include -#include - -#include "kompute/Kompute.hpp" - - -// Android log function wrappers -static const char* kTAG = "Vulkan-Tutorial01"; -#define LOGI(...) \ - ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) -#define LOGW(...) \ - ((void)__android_log_print(ANDROID_LOG_WARN, kTAG, __VA_ARGS__)) -#define LOGE(...) \ - ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) - - -// We will call this function the window is opened. -// This is where we will initialise everything -bool initialized_ = false; -bool initialize(android_app* app); - -// Functions interacting with Android native activity -void android_main(struct android_app* state); -void terminate(void); -void handle_cmd(android_app* app, int32_t cmd); - -// typical Android NativeActivity entry function -void android_main(struct android_app* app) { - app->onAppCmd = handle_cmd; - - int events; - android_poll_source* source; - do { - if (ALooper_pollAll(initialized_ ? 1 : 0, nullptr, &events, - (void**)&source) >= 0) { - if (source != NULL) source->process(app, source); - } - } while (app->destroyRequested == 0); -} - -bool initialize(android_app* app) { - - LOGI("Initialising vulkan"); - if (!InitVulkan()) { - LOGE("Vulkan is unavailable, install vulkan and re-start"); - return false; - } - - LOGI("Creating manager"); - - kp::Manager mgr; - - auto tensorA = mgr.buildTensor({0,1,2}); - auto tensorB = mgr.buildTensor({0,1,2}); - auto tensorC = mgr.buildTensor({1,2,3}); - - LOGI("Result before:"); - for(const float & i : tensorC->data()) { - LOGI("%f ", i); - } - - mgr.evalOpDefault>({tensorA, tensorB, tensorC}); - mgr.evalOpDefault({tensorC}); - - LOGI("Result after:"); - for(const float & i : tensorC->data()) { - LOGI("%f ", i); - } - - initialized_ = true; - - return 0; -} - -void terminate(void) { - initialized_ = false; -} - -// Process the next main command. -void handle_cmd(android_app* app, int32_t cmd) { - switch (cmd) { - case APP_CMD_INIT_WINDOW: - // The window is being shown, get it ready. - initialize(app); - break; - case APP_CMD_TERM_WINDOW: - // The window is being hidden or closed, clean it up. - terminate(); - break; - default: - LOGI("event not handled: %d", cmd); - } -} diff --git a/examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml b/examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml new file mode 100644 index 000000000..18840726a --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/examples/android/android-simple/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/android/android-simple/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cde69bcccec65160d92116f20ffce4fce0b5245c GIT binary patch literal 3418 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 literal 0 HcmV?d00001 diff --git a/examples/android/android-simple/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/examples/android/android-simple/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa42f0e7b91d006d22352c9ff2f134e504e3c1d GIT binary patch literal 4842 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 literal 0 HcmV?d00001 diff --git a/examples/android/android-simple/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/android/android-simple/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..324e72cdd7480cb983fa1bcc7ce686e51ef87fe7 GIT binary patch literal 7718 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 literal 0 HcmV?d00001 diff --git a/examples/android/android-simple/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/examples/android/android-simple/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..aee44e138434630332d88b1680f33c4b24c70ab3 GIT binary patch literal 10486 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 + + 64dp + diff --git a/examples/android/android-simple/app/src/main/res/values/colors.xml b/examples/android/android-simple/app/src/main/res/values/colors.xml new file mode 100755 index 000000000..3ab3e9cbc --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/examples/android/android-simple/app/src/main/res/values/dimens.xml b/examples/android/android-simple/app/src/main/res/values/dimens.xml new file mode 100755 index 000000000..47c822467 --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/values/dimens.xml @@ -0,0 +1,5 @@ + + + 16dp + 16dp + diff --git a/examples/android/android-simple/app/src/main/res/values/strings.xml b/examples/android/android-simple/app/src/main/res/values/strings.xml index c899fe132..8ac01a86b 100755 --- a/examples/android/android-simple/app/src/main/res/values/strings.xml +++ b/examples/android/android-simple/app/src/main/res/values/strings.xml @@ -1,4 +1,3 @@ - - Kompute Android Example + KomputeJni diff --git a/examples/android/android-simple/app/src/main/res/values/styles.xml b/examples/android/android-simple/app/src/main/res/values/styles.xml new file mode 100755 index 000000000..5885930df --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/examples/android/android-simple/build.gradle b/examples/android/android-simple/build.gradle index 123abac4a..c4c40217e 100644 --- a/examples/android/android-simple/build.gradle +++ b/examples/android/android-simple/build.gradle @@ -1,14 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.3.72' + repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + classpath 'com.android.tools.build:gradle:4.0.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/examples/android/android-simple/gradle.properties b/examples/android/android-simple/gradle.properties index 1d3591c8a..7fa14279e 100644 --- a/examples/android/android-simple/gradle.properties +++ b/examples/android/android-simple/gradle.properties @@ -11,8 +11,10 @@ # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true \ No newline at end of file +# org.gradle.parallel=true +android.useAndroidX=true \ No newline at end of file diff --git a/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties b/examples/android/android-simple/gradle/wrapper/gradle-wrapper.properties index 14819fe99..12582e2e7 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-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index ec04fde88..3d8f327ba 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -9,8 +9,8 @@ //#define USE_DEBUG_EXTENTIONS #ifdef VK_USE_PLATFORM_ANDROID_KHR -#include -#include +//#include +//#include #include // VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a1d2fd24b..02c792cf8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,19 +29,19 @@ file(GLOB kompute_CPP ) if(KOMPUTE_OPT_ANDOID_BUILD) - set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) + #set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) 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( - ${ANDROID_APP_GLUE_DIR} + #${ANDROID_APP_GLUE_DIR} ${VK_ANDROID_COMMON_DIR} ${VK_ANDROID_PATCH_DIR} ${VK_ANDROID_INCLUDE_DIR}) - add_library(android_app_glue STATIC - ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) + #add_library(android_app_glue STATIC + # ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) add_library(kompute_vk_ndk_wrapper STATIC ${PROJECT_SOURCE_DIR}/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp) @@ -79,7 +79,7 @@ endif() if(KOMPUTE_OPT_ANDOID_BUILD) target_link_libraries( kompute - android_app_glue + #android_app_glue kompute_vk_ndk_wrapper log android diff --git a/src/include/kompute/Core.hpp b/src/include/kompute/Core.hpp index 3b4d1129c..3bdab7411 100644 --- a/src/include/kompute/Core.hpp +++ b/src/include/kompute/Core.hpp @@ -9,8 +9,8 @@ //#define USE_DEBUG_EXTENTIONS #ifdef VK_USE_PLATFORM_ANDROID_KHR -#include -#include +//#include +//#include #include // VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp From 652e010895bd7ee43449582c217280c36d2459c3 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sat, 3 Oct 2020 19:27:54 +0100 Subject: [PATCH 20/34] Fully functional JNI UI based app --- .../android/android-simple/app/build.gradle | 28 ++--- .../app/src/main/AndroidManifest.xml | 4 +- .../app/src/main/cpp/CMakeLists.txt | 10 +- .../{KomputeJniNative.cpp => kompute-jni.cpp} | 112 +++++++++--------- .../android => komputejni}/KomputeJni.kt | 10 +- ...hello_jni.xml => activity_kompute_jni.xml} | 12 +- 6 files changed, 89 insertions(+), 87 deletions(-) rename examples/android/android-simple/app/src/main/cpp/{KomputeJniNative.cpp => kompute-jni.cpp} (50%) rename examples/android/android-simple/app/src/main/java/com/ethicalml/{kompute/examples/android => komputejni}/KomputeJni.kt (84%) rename examples/android/android-simple/app/src/main/res/layout/{activity_hello_jni.xml => activity_kompute_jni.xml} (60%) diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index 0ecee901b..8529509b2 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -2,17 +2,17 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' -Properties properties = new Properties() -properties.load(project.rootProject.file('local.properties').newDataInputStream()) -def ndkDir = properties.getProperty('ndk.dir') -def valLayerBinDir = "${ndkDir}/sources/third_party/vulkan/src/build-android/jniLibs" +//Properties properties = new Properties() +//properties.load(project.rootProject.file('local.properties').newDataInputStream()) +//def ndkDir = properties.getProperty('ndk.dir') +//def valLayerBinDir = "${ndkDir}/sources/third_party/vulkan/src/build-android/jniLibs" android { compileSdkVersion 29 ndkVersion '21.2.6472646' defaultConfig { - applicationId "com.ethicalml.kompute.examples.android" + applicationId "com.ethicalml.kompute" minSdkVersion 26 targetSdkVersion 29 versionCode = 1 @@ -46,14 +46,14 @@ android { } } - sourceSets { - main { - jniLibs { - // Must have ndk-r12 or better which including layer binaries - srcDirs = ["${valLayerBinDir}"] - } - } - } +// sourceSets { +// main { +// jniLibs { +// // Must have ndk-r12 or better which including layer binaries +// srcDirs = ["${valLayerBinDir}"] +// } +// } +// } flavorDimensions 'cpuArch' productFlavors { @@ -81,5 +81,5 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation fileTree(dir: 'libs', include: ['*.jar']) +// implementation fileTree(dir: 'libs', include: ['*.jar']) } diff --git a/examples/android/android-simple/app/src/main/AndroidManifest.xml b/examples/android/android-simple/app/src/main/AndroidManifest.xml index 58826d222..ea3001a09 100755 --- a/examples/android/android-simple/app/src/main/AndroidManifest.xml +++ b/examples/android/android-simple/app/src/main/AndroidManifest.xml @@ -1,9 +1,7 @@ + package="com.ethicalml.komputejni"> 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 0b3948088..3ba634942 100644 --- a/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt @@ -12,8 +12,8 @@ set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include # ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) # build vulkan app -add_library(kompute_android SHARED - KomputeJniNative.cpp) +add_library(kompute-jni SHARED + kompute-jni.cpp) include_directories( ${VK_ANDROID_COMMON_DIR} @@ -24,10 +24,10 @@ include_directories( set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 \ -DVK_USE_PLATFORM_ANDROID_KHR=1 -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1") -set(CMAKE_SHARED_LINKER_FLAGS - "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") +#set(CMAKE_SHARED_LINKER_FLAGS +# "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") -target_link_libraries(kompute_android +target_link_libraries(kompute-jni kompute # app-glue log diff --git a/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp b/examples/android/android-simple/app/src/main/cpp/kompute-jni.cpp similarity index 50% rename from examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp rename to examples/android/android-simple/app/src/main/cpp/kompute-jni.cpp index 85a780fb3..d8a6e2368 100644 --- a/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp +++ b/examples/android/android-simple/app/src/main/cpp/kompute-jni.cpp @@ -12,30 +12,30 @@ // See the License for the specific language governing permissions and // limitations under the License. -//#undef DEBUG -//#define RELEASE 1 +#undef DEBUG +#define RELEASE 1 #include //#include //#include //#include //#include -//#include +#include #include #include -//#include "kompute/Kompute.hpp" +#include "kompute/Kompute.hpp" // Functions interacting with Android native activity -void android_main(struct android_app* state); -void terminate(void); -void handle_cmd(android_app* app, int32_t cmd); +//void android_main(struct android_app* state); +//void terminate(void); +//void handle_cmd(android_app* app, int32_t cmd); // Android log function wrappers -static const char* kTAG = "Vulkan-Tutorial01"; +static const char* kTAG = "KomputeJni"; #define LOGI(...) \ ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__)) #define LOGW(...) \ @@ -43,27 +43,27 @@ static const char* kTAG = "Vulkan-Tutorial01"; #define LOGE(...) \ ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) - +extern "C" { JNIEXPORT jstring JNICALL -Java_com_ethicalml_kompute_examples_android_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { +Java_com_ethicalml_komputejni_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { #if defined(__arm__) - #if defined(__ARM_ARCH_7A__) - #if defined(__ARM_NEON__) - #if defined(__ARM_PCS_VFP) - #define ABI "armeabi-v7a/NEON (hard-float)" - #else - #define ABI "armeabi-v7a/NEON" - #endif - #else - #if defined(__ARM_PCS_VFP) - #define ABI "armeabi-v7a (hard-float)" - #else - #define ABI "armeabi-v7a" - #endif - #endif - #else - #define ABI "armeabi" - #endif +#if defined(__ARM_ARCH_7A__) +#if defined(__ARM_NEON__) +#if defined(__ARM_PCS_VFP) +#define ABI "armeabi-v7a/NEON (hard-float)" +#else +#define ABI "armeabi-v7a/NEON" +#endif +#else +#if defined(__ARM_PCS_VFP) +#define ABI "armeabi-v7a (hard-float)" +#else +#define ABI "armeabi-v7a" +#endif +#endif +#else +#define ABI "armeabi" +#endif #elif defined(__i386__) #define ABI "x86" #elif defined(__x86_64__) @@ -80,32 +80,36 @@ Java_com_ethicalml_kompute_examples_android_KomputeJni_stringFromJNI(JNIEnv *env LOGI("Initialising vulkan"); -// if (!InitVulkan()) { -// LOGE("Vulkan is unavailable, install vulkan and re-start"); -// return false; -// } -// -// LOGI("Creating manager"); -// -// kp::Manager mgr; -// -// auto tensorA = mgr.buildTensor({0,1,2}); -// auto tensorB = mgr.buildTensor({0,1,2}); -// auto tensorC = mgr.buildTensor({1,2,3}); -// -// LOGI("Result before:"); -// for(const float & i : tensorC->data()) { -// LOGI("%f ", i); -// } -// -// mgr.evalOpDefault>({tensorA, tensorB, tensorC}); -// mgr.evalOpDefault({tensorC}); -// -// LOGI("Result after:"); -// for(const float & i : tensorC->data()) { -// LOGI("%f ", i); -// } + // TODO: This optionally to be initialized from Kompute + if(!InitVulkan()) { + sleep(1); + if (!InitVulkan()) { + LOGE("Vulkan is unavailable, install vulkan and re-start"); + return (*env).NewStringUTF("ERROR"); + } + } - return (*env).NewStringUTF("Hello from JNI ! Compiled with ABI "); + LOGI("Creating manager"); + + kp::Manager mgr; + + auto tensorA = mgr.buildTensor({0,1,2}); + auto tensorB = mgr.buildTensor({0,1,2}); + auto tensorC = mgr.buildTensor({1,2,3}); + + LOGI("Result before:"); + for(const float & i : tensorC->data()) { + LOGI("%f ", i); + } + + mgr.evalOpDefault>({tensorA, tensorB, tensorC}); + mgr.evalOpDefault({tensorC}); + + LOGI("Result after:"); + for(const float & i : tensorC->data()) { + LOGI("%f ", i); + } + + return (*env).NewStringUTF("SUCCESS"); +} } - diff --git a/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt b/examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt similarity index 84% rename from examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt rename to examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt index d3b1261aa..8c7c9996e 100755 --- a/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/examples/android/KomputeJni.kt +++ b/examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ethicalml.kompute.examples.android +package com.ethicalml.komputejni import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import com.ethicalml.kompute.examples.android.databinding.ActivityHelloJniBinding +import com.ethicalml.komputejni.databinding.ActivityKomputeJniBinding class KomputeJni : AppCompatActivity() { @@ -28,9 +28,9 @@ class KomputeJni : AppCompatActivity() { * the text is retrieved by calling a native * function. */ - val binding = ActivityHelloJniBinding.inflate(layoutInflater) + val binding = ActivityKomputeJniBinding.inflate(layoutInflater) setContentView(binding.root) - binding.helloTextview.text = stringFromJNI() + binding.komputeJniTextview.text = stringFromJNI() } /* @@ -61,7 +61,7 @@ class KomputeJni : AppCompatActivity() { * at the installation time by the package manager. */ init { - System.loadLibrary("kompute_android") + System.loadLibrary("kompute-jni") } } } diff --git a/examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml b/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml similarity index 60% rename from examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml rename to examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml index 18840726a..8196c4b61 100644 --- a/examples/android/android-simple/app/src/main/res/layout/activity_hello_jni.xml +++ b/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml @@ -2,19 +2,19 @@ + app:layout_constraintBottom_toBottomOf="@+id/activity_kompute_jni" + app:layout_constraintLeft_toLeftOf="@+id/activity_kompute_jni" + app:layout_constraintRight_toRightOf="@+id/activity_kompute_jni" + app:layout_constraintTop_toTopOf="@+id/activity_kompute_jni" /> From a1e25fc792bb4b57cd42cabccd1bc252f3a773f8 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sun, 4 Oct 2020 08:07:17 +0100 Subject: [PATCH 21/34] Initial addition of input blocks --- .../android/android-simple/app/build.gradle | 15 --- .../app/src/main/AndroidManifest.xml | 18 +-- .../app/src/main/assets/kompute.jpg | Bin 0 -> 26029 bytes .../app/src/main/assets/komputer-2.gif | Bin 0 -> 1278648 bytes .../app/src/main/cpp/CMakeLists.txt | 14 +-- .../{kompute-jni.cpp => KomputeJniNative.cpp} | 66 ++++------- .../java/com/ethicalml/kompute/KomputeJni.kt | 52 +++++++++ .../com/ethicalml/komputejni/KomputeJni.kt | 68 ----------- .../main/res/layout/activity_kompute_jni.xml | 109 ++++++++++++++++-- .../res/mipmap-anydpi-v26/kompute_icon.xml | 5 + .../main/res/mipmap-xhdpi/kompute_icon.png | Bin 0 -> 10584 bytes .../mipmap-xhdpi/kompute_icon_foreground.png | Bin 0 -> 10567 bytes .../res/values/kompute_icon_background.xml | 4 + 13 files changed, 181 insertions(+), 170 deletions(-) create mode 100755 examples/android/android-simple/app/src/main/assets/kompute.jpg create mode 100644 examples/android/android-simple/app/src/main/assets/komputer-2.gif rename examples/android/android-simple/app/src/main/cpp/{kompute-jni.cpp => KomputeJniNative.cpp} (60%) create mode 100755 examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt delete mode 100755 examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt create mode 100755 examples/android/android-simple/app/src/main/res/mipmap-anydpi-v26/kompute_icon.xml create mode 100755 examples/android/android-simple/app/src/main/res/mipmap-xhdpi/kompute_icon.png create mode 100755 examples/android/android-simple/app/src/main/res/mipmap-xhdpi/kompute_icon_foreground.png create mode 100755 examples/android/android-simple/app/src/main/res/values/kompute_icon_background.xml diff --git a/examples/android/android-simple/app/build.gradle b/examples/android/android-simple/app/build.gradle index 8529509b2..877e1046e 100644 --- a/examples/android/android-simple/app/build.gradle +++ b/examples/android/android-simple/app/build.gradle @@ -2,11 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' -//Properties properties = new Properties() -//properties.load(project.rootProject.file('local.properties').newDataInputStream()) -//def ndkDir = properties.getProperty('ndk.dir') -//def valLayerBinDir = "${ndkDir}/sources/third_party/vulkan/src/build-android/jniLibs" - android { compileSdkVersion 29 ndkVersion '21.2.6472646' @@ -46,15 +41,6 @@ android { } } -// sourceSets { -// main { -// jniLibs { -// // Must have ndk-r12 or better which including layer binaries -// srcDirs = ["${valLayerBinDir}"] -// } -// } -// } - flavorDimensions 'cpuArch' productFlavors { arm8 { @@ -81,5 +67,4 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -// implementation fileTree(dir: 'libs', include: ['*.jar']) } diff --git a/examples/android/android-simple/app/src/main/AndroidManifest.xml b/examples/android/android-simple/app/src/main/AndroidManifest.xml index ea3001a09..4965abb44 100755 --- a/examples/android/android-simple/app/src/main/AndroidManifest.xml +++ b/examples/android/android-simple/app/src/main/AndroidManifest.xml @@ -1,24 +1,8 @@ + package="com.ethicalml.kompute"> - - - - - - - - - - - - - - - - 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
    4v}7jy-u41^@s9FaYw$ge1X) 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%0D{ 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
  1. 7*&%aH?qpH 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 z zkH0@EZn=+p=sPe>)9IJ+A?ZQyAiMm-@IE0v7~7!>mNW(_^qA0TgL_i=&FNZSmf=Y& z-Ubh=Kj2uM39N#2=H+}IJnnYzB%#osn*@IFj9aqw80$x;_Cp<*Aq`#lJlRDYLBK3U z)MhzdINvSNlP$S@i7_Nx1 z<-GS6|1O&8SEPl3X?(kfyG&DlR=W6MB}E35-l`I%L!r2tz-Z{p1H^D&dY23DhE|q8 zDi2?cssUv<*w>bYv)X4{)Eyc=Ra&Uk$~CoOeO?kDRacYyl6wBuD}(U&L6}(%JCmO` zQi@~cs1C3%AsrZT^EdQJtD8D3G{9>W!#w26Y5MFD)B}Y}3EwRG@E}9y%%>ztvrOH0 zk{-20F?i|V9A3SwX9m_g}nZ3w&xYdX=-03R%f)C>%%)r*Xkn$G&XD=VFHK;bHO4j zDzI2OkdkabD8H@n6n@u_i5UG7X~kuDqp-PenQyA#+5=^$f8Ia?iSMpfJrKbZhq}RC zf=Pb8^@Mm|ebya?{!XT8Yv#7E#!4%rYz@9fmGh|SGtqEEFjux7()iT}u=t&o>D4mqIDpafS(Xtznl~Bn+OPS%u>0h~IjmF2inRnbSO0TK@@+@}J?pEiYqK3Brt_Zxzq?xhSf(|+ zvbw3bBF6p0O6gf#HkEF>AK}0>9-lrl!Y4}gaq8ka`}tykTAO?did_Mk^srhLPi=a| zj;qn0Wx%n;7gqfB;dsQd8|C1K(;BpT`Loi<=00DMRx}oL=?igY^>m|9w8Jcg&)~?$ z;*pQ$3NGk^6HLl-8HKaD#OZ?#vpiD%@@FP^wFuLBWKDr@ZVe=oT(KZBj;+b88l6V$ zpzTk&v0twJ!`YKq6{Bb>Vw#Zl39mPK$A74YrGX&5B^zap}D2x-TDnsjx@AF~^O?Vsh4%Kib&HX{lHA~QWX zKV^^Ha=Vi&olnJc*q)a^CH1&Sf|hmzF@D{kNv;uDt@x_8CQ$3OBUPID`04p;7kVTC z9?iBUHD(Z~>Is(pMF>4m=2mIgd1Sh>edjU)rdhqioYg*!1fTtf1&5b{B}KF-3x@jH z|H6@jcF#4%!#v9)+-_NJCFgS4r zkHsj#wRQ4E4Q{7cvi7+1cW}R#emDbaHirdk4AdIj92WorVK?NlX`k^F`Ehhp*%XKS zm}*hR`n~WMj-QW~E$)z0N9Krz77)7=4>@yF&hJ^}KyQ)Y&=(fZ@wb|4e-|q)jf+S< zz=XOv&%d5ZyR#7I+v0)oZL<;(x-0q&ZZKtKD-hKqDHxSSh-W&tD6AKRjTt#_(fgYv z3o0nw{SzQ0$Z9^XLD1>+q&7>Sj-wpBXz~sE@T!2HX*=*vacQ!UA=4bJUA4aXbm9or zLJjnmSGClADB;)b%^U0i2l*6{qh8ot!3Q3EHmfb4#FLi_h^B z`#ei;JjYmliH7!389$uhxqG!szsNAzO1vG{9p?NQiN5>f zGu;T-^N~BS61B|6(}Ezw5i}Gq_w})Ff?|*DfqyX zWjgyn$Aym3KbGq^LODaFojJ~U{qNutr5crtE*suIrHQsU2`he^K?Pq0x+glXBN55y zHiJURo}1X&a^<&EWah8QX)EzXR2oNiit&TjO(I8*f}qz{0UlNlVe_X-R(v#mIRY&2 zmx&-|!O}m+UiTdMXNIH=PlLKb&3~6`c)HfzqylK+fS|YHi-!Y2WvX^cf*rq$8gLUy zH;y~Zu+MTwtmSS4J8nBxqAG?OreBiH9mYzRu49Jw`^|fo7r1ynw3?R(sjUX=GkjdJ z7q>hpM=AGjPy3(|bS{ZZRV|p8?(;WE7CCOu)#pbkBE##8b8mWXj(OuJ4C)`AW{10O zGAX=Qd%L#Ab+fXK$QLy$Y+(;@oAGPkr3!m@<9k=?@JE$Dc-}{|Dz9R16kgY)B0pEw z!kyOjG&(z}stA0_UAnv}dzZdr{vlJ>wrBOw!;kZ!On0io*&WRI-aa&#{Goi#W_puz>0B&+@|AfurCq-rf=qogvEHHoFRE`(p5aM?UyNYMtCA`jvYgpx z$Zw8;d`&h z(bM+f_-yw6@6QBjg-~nFF-pye=S)-YNWp!Z3VGE~6&CZUJ?+)~sNYo&MK`0E+ugU4 zbi`%j=s?u2nZmvZ7!OhRnie-*U(l;uV|iVT@=&|WaPK}r1$;=fjrqNQ2S)B)5zY}@ z+zf8v`Ms$KA5Q%kVZOL=9XwB7Ae`W%EE{6lbREdhTl2Pnhj`t18rze^_t(cBs0f|X zyGI_TP2Fl{p=WUqhQHP4XQ;2d%@(IaU@4-An_LPEkHm|`sfWE`5zrTKw~i$XP4Ii; zs-Vq2P|g%sNfuMh#CVq}{uJ}f2g}I{rLyDby-;{6qU^`_FaYOC7wYM!uN=sp@>|GB zYQ$F9JEqn;X=~&T{J^hX?*UmHN$x`n+#4$qD;pcIA4IK0*i~R8`mi)Bg)%YT>$?Y& ze;Q?~m5ggjqXXeh-J-79C>Hs`N}wrdz7*+^IL_r12^-}IJA85LL%o{7DrHzvj(SOH z40sPNFsjS06`NOmw}H>zQ9ppvjUu{~5zl+q@Oimh|euekf+$Ow@b-E9 zq8@Z^1S46sRAq(Wdyj=yU{9akcVC8OsKB$^lXLS8nC?G~y6--}QeesPtbVqD9sDeZ z58mb%kI28{R(;K4h}na~ZTgIvxsCeBPCDxDpCRQs({qjCb~Ma#cG}SPp;%&aX4_yiIM+j^|xr!so|xQK>yrlrM3+ zrXdq8ba=O)DxzD7G4h?vnN5ka4wP;*TN#wSl=O(dt%REMslG}!xj(Fatbo!lgOMXM zWTgVsQJ{QOf+=8)-2&Aw`3oyYY~9b>Tk)MJBZyvVbS*`ni!uhSluzXp2q;zDC~yf` zfrhM$QQz7>r8)XZ%6LeuYh z`yI;29Y*(G;54AMGRfsBbA>Jr95b>{=`!<+Rba&i(BfbD;(fIxRCUj4Gm;ytf62o& zQ&IpR`;HhX`&C^DeJwP|zrsF*_O{z|so7G%72L)Vds8*GeJpizPeALsaFCoD%nYQO z;S^H%~>JRlx^tG6jadkpWurZQPpe@VruSH>l?a!sMEAmfhB}goch0{2&Igk;cc-C zlMV&PABH@P(n6IrtAv%s`$-RsmvM3aLw3eS%o!7v8GrWGi*Isce8SUnLko9hmJ67Q z`x^UoNhO2cB8=iq9xT=DzZ*7=>aMB5@;P6i44_9x1vO8rccR>lldCoJvyq?LTE!}P zK4l~{wlN$cI_sFa3mU$PaKd1qyW4tRRQGn@78{JzIHfe4U$o}K+hk}KNFt(Y-gTrJlRvoH0rqwQF#7Yk1jLb-%TZ3Rt(MyQoOpZYH6c>V zfP;qJB)buof|a|KGOo`h5a#kZdkl3suu;e%-Nk_gps37&n2g{TryTb8$CyjS z?N|v;g4ajP^9%ccbjM?YIm8OwH{ z{6`H}dQuR4@wA>>YcRH{;mP{RQ0_t9rU3=x(RB6cOU7m+tpWOO`|jkgazEO_|OebMt(AO3Hv@8FEM3u_QccatvKVT__Zm?hHLRNPvdC{$<78Zn1(FsTU=$iEt+4ck(J}2?|F2*ggB$qY7kmm zjjN3PE~<;L=6+S$Ra31cjs}jI`nkD3LitXL>gE!*6j^=LEp>q{A0^+bOa$e3jqRHJ zw;r^vS(5+}fz z{czDJ4!)5(Y%<$>0}QBj&odW$`S|F;O?`i?8Ng41e1s8kwK{qEjA#~ zukMfP-q(}F6oO&NMQ71;9{Q(WYvdkjZm6$12XiP_vVa-O&ZGY$3~v@PZtXWjMoxJ} z(aGu=3AfS#&jqBZXFwv;9{rR^VordmWH%L$qBwjby4f1?*NjneFNd-2<<_cn=-xle z7K7QL-}XBv17@-;X-+MW?S{0ra5PyHb@0rARN2AO;KB2061$-zEc1lPCuTn21ZJC? zQ#u*OrS++jdtGHBjHAx#L-+dO=doRw6YHm+uPH{>LD6&6%Om`>gr9-uz#f##NdMQrZ6ef2s?lUQy7GB1`XYuISyDS*=exXY)e0j^Ug2{Q|B;B&dPnC(LS+%#ljiO zQjo;MAj$J>QKRZJXIiW!@;0&Vf(Z;FBLhI!Z*1mke#yVKb7g#}=5$zg`>;a#vJiRs z{N`ot<4b0~%X-brwZ4lyQ^XG^j@7-B)EWfS8){$Q6Ji^d`OM8a?kxVJ>Z1}4rm4`` zpp~auBJ|EKbav%=jCL( z*)5$kT5>9}QCYXrxOi}!)#xk|o6ezDY_&4CYm^5pNjSu~22LPi9QI8>=Hz3`gMZ)dG|Q)MiT7aAF)DJN=nqxhT^z5BzY4@f-N0#yJ*N3lT(=>M4iH))k*v_xM?ei3=} zX{6UMi#_a^4~3)=ZO)YVU4xq9y{xaI{Q4xLOdGKCN>?zo)E`I;e2o$<2Cyg$lb(V( zruY%~sJ?zO9@;R|Pi-_rW&Qd@my#DIE=j@OZbXOp&MA`d8py3x=|evd0lns zpKZ~f{P$dXjG#*mla+j5z;rJ6D7EN~If_*1LV zGzC|7qEZbnm|m=r7fK_7deVIGywySOn>hzxPI#%l*JO}k!n!JSM0fk>Ou7p?9$zX< z!(?1)S(Ns=+(Ocy$RZUo}WuJ+1tY!`5z;tK=D7^#>8|zDEg%0IGHUi+3GECj{T{1x(SsQ@P#Uo$F`{dOzKjgl&1Z z9*5m|nbqg;=k==?+oBm4XBwsDav3VQudWFlm1(aCce|lTa#gKD@!U3xG2E?QD>Avx6E{99%=yC5T$RX6%te^c_0P&c;RwQdZofSGvD!t* zf3NTyN{fCq6%--H4plbGHtDOC5pD@@y(ft&a6breV=K?#CT-<9<0 zuy5-O?jmdGY}X#?xbH&}Z9vn4!GKx1FM&vtQ>qFc)6Tl!f5SOGCSJ1kDXlK|`|DH} z?I!{+Tj9+|j-sisY58j!jYvSO4;F;m2+?m<&TY36S$i;d<40wUDo2Q&T7*bFF2r>7 z=M2PWbcBsC$xKWw3!?H4NyO(>|9nx;GKb8@R{oa{J%YlTZgHUqcxvmWx zU(W!4{-PCO_>AO-Nu*dYa7C~pW^IaxVBU%W_BXkq&x0$obP*pMg0+TDVv*OQs31(J;`r=7+OT?C(&bNM=g*V{V15IE z=5HfYO(%k1aXT3;JN;nMtccvR9YZM!wfGj3BJ%uo)T&=xF^XIyA%*%*{8y$rB(+(a zXDJ5*$&&lI0;-fO2(W`jnHk%kNlrfy05}a{dk<6iChG~2+EvnB3vocqbz~=*5fy=xte(UH^!vZ`Q!K(fd%ui?8g&nWT{8-h3eh0H1uQZ*GWZvPfPTB_h!0Es@f*t>9RwWR(K0H zX^##Gn&TSfW*mVrY)v2#>UK`4&nS2J-ylA|U~(z?y%x{2)QD~L8_;F48`WJxJeV2a zjE-7SB)Zj5YT@3i`|>g%|INB)#B_+E=ugg_x-aC!=+A0qWD1DhZ;B|LEdt|f3Ogd1 z&_7q+5eT3A2uo@o zl+s?i-HTfpN*E8t%SeTLWI1xbS609yFnr8@7T2UJwWa(9m*MU^O&s?T`Wgfz;%Npy z7iP>d>W)#lF-%vceAJ$o@TADmQ#CB&_{yB(K-~_S~!>fdE_%ReB=ASKv zKUewVcQdJDKCfq#?c47A?)IPj{>!N%xwOomr(3G%^A%sIi{ve-A~;iNXG#?I z(e?4RHR4PHQ))sE`4TjWBQVK{_kK1xMXfPzW0rFfVkkb>c>F z*mJHApNcO~#ZEz9_nuMPm-chC(*Y0W-><))zSrGnay#a~_a84Qh~1x@LcIRt;;ZQY z(f%js%Wb``ji1%p1L84faaQWv@0QvJIOakVA>xul4x=p8a|z<%ZU~a22z0`U9+2u% z-?LVRvb7M;<9tDY!ajH^fc|UI2={@ttIF&vBKebns{1RLN>*)v}vX2IGrv0w72POl9(E5#xa{mA)zIoBz(9JV|I+7ZZHB-2;d-z!{ zRjH+mc83D8qP0o$8pj3MJiWf$rv+oc4x^pVGjB)l2*%zYSDT_BUy0raZQTFQsDVPd zCXPne1sB&v{1#*LP|J=1So*yJiMji)Vl*GDy>tE{R7&kwS|KTPx!&6S21_pE8Vz7s z$p9i23T#}(Dfj-OjnkmgM}QgaTz^a409?SQF3jbL*HI8XOz=j5BLGyd3 zCKv+15pgV~nxC6{&%{CdUp4l_df)&S9-{H}0rB&^MjHF8A=m0oai}beOop9|v%Zt9 zp1_VI$k-9M)d@U!Em;7IKoZ!wal8;L7g8H3L13%b!sV%T+x@qki38k7zdA*ctx=5_JJUbuu_n7UrLv0lVZ zZ@h@+J#GRER_}h=NF)SH+cFX)0fqn62*!Y7vo-O{dbCIoo2%A>*)wl32Cq78LS&yb zfKB2i$o$kw8|_Fc9Zg0;Q?1@MG57OLj)b@U1jJ8a)K|-mB z_jrHTwzl}Ob^%`diga2UacodxrB&)V0w9UUUwd&xU0eteGs$rLn?{`$R5b}z;)c>k zV(487H2R3!p#XHlFj)-iQQwegSLH}sP}&5LmzM4}W2x+V5;Am^yT%Wgi7*JUqsypc z(x?MT=x8zO?V9MNH6}`ocX1OKx%<9)pvtW#%df`Z7}}`8k`Z(qO0T~0JbTo~&Mz0#Jf_ppCJj)B&KJeENo^&i8B+B1=G*mag4r(06QpQ zW+I7%HRK7S(p>{+iNJSb^bZVyiU8Er3^{rZ$Ndz$#%Po#!$@8u`8!-}kLIa@Izj2! z=xE#Y#Bp+X$0!B^g*-I-hxLp`YMrH;L9NYL(rB1YN9cxzXd{HI2dfa z<<#_xIzcab5OX{rq65|9#)uBVsTA2^?bwS!;0MGKpMm`uNVsWV<&GInfpPjcvc?m! zZH^W3rMmuI;#bTj9e5PY;>3{g$W^n3Fw0HcscG!hNL)LSwt>Kq4rO*Cz(|pCk3p~a z=a?1D$QJDiy(~=j1NEs^%&(TsSL$bz9iT-E{hOZCh@j3H7z47)RA_2iQt-d85`2uO z7PK4K-LQ$>iE)Rt|Kx%Q$NKY)7V}9m6MqBe<3|_&84nJZC;mQJ#ABD0FiY2ozybrkpI|6wT*Ni@2_gy7?Aj~eM&ry>a%2p$t&+Ke zpf`22Iiug@<;~`0Pj7W~7Vh+SFx$l`(tc@tXKO-W)YtN-8x(Dr_xs#yzsus})#Ev3 z==^>0mLmZ?Dp@qzK$xL|imZ@@5ZY+%<1;1(BIo`*u@99b6!45Bk)}+)HBVIIHS$~S zlgUwd_P82+atYle#rNUpZ@SfghO0jhKTx2};(|uy&n8$y?|s*LzhiE^VoS)g9dvzH zpFaJpaO?nMT6DaS>Z(`s&6LUa))!h(d4gew;?0D{_i2*sZ>$6eGWPBd37LQ1dgv0#9 z)%htDbLrE$Kqzi&D{jf z)9m5mhmM5Nfz;8tE+<+!I=Uk0S`rbU#?E&?v`@*&fHpXGkknUIK3E=XPrn`Pg)Q`c z9~!>>XGzm!;ZLVMZi7g_h`M6=@GHz%Q!tLLktTEEN!n@Yi*zcpRww2y6X7-5dtTGc zIRf5C^zlX0Uk@HF+D&l;ncHVtj9U}LhkC?w*2RmQnWS_nU~ANJ1Rwhz)kzDo5485_ z)~Yu?_SZwdR@wMlqf!@L;Mw+HBzk`cemqUH`>WP>DGoYY>!FDz3g-6GIJz&SyU#uB zS^O?KW0(HXVJh+JUF)Y0?ZB-Wf>!hIcuwQ>rzq#A$oH}fp!kq?uUk`brDM!@oNrt? z4_8?n3U0QrZ>A6ds(*CWGU|VaR4(~^_t2vHzf0-Snjgv2ljE+lUBnV4IY0>?sWRye z{ou$X(i>fAe@9^?L0RipQSU?b1^OFKR=Q3Pc6tG4TDsg1A0XCz(a;A@X=Hov)~063 zFJ||xJdOfw-&jJ~*ugu-)y7^g>K=L}*6ijI=G47CduaQTKe(k~ce-}Blh{3Nj1hQO zUe9#Gs+_&AEYwP!@B(i?7Lkk!f?iH}@=-YCDeK`jH1}>mzcSzCTmSe}W=nW!*h0xm zgx6Ly*df^1R#lC#lun2cH093OO$D}bGam@N1m0|4_DWx;Vkc)IQ}Id>=12wRQ>;#y znmoeWAXS0bTu7*TpObs5J;Ctcq4N!;G=`tpG*aGwM}p9L3n-jo?RR+1vE*8ujAwPB zU4E-Khv_~6y7i@U?>xt>riXB^ZAH|X5VQV~uHndP-M`8NM9Og}v)EG_CUAbYy8nHY zY;QKj8~W1g)40JceCg8+`okxGy#N^yP6%2kFi?}ZryIVf6@E0y5(vIw*1ukX2_}d{ z7=`z+(q`NoH7zBxTWQg^|KmwG@qz~0IH%e9q$vibF8aiTzn}Uu%x4Nk(QW-2>eaU1 zvUq79I^62q^;P zIRK2ATN4nRUtGl(1_^?KakYtrfnvV_64skAdVG_cpa9uPkP$y-*-t&q%uFEk?|Pp$ z?IoTb=MfCGb{+qG9xf8p6c}EKQ+D`-UJ&ASs`DO+Q~IYT2$;9yqI3~XlwpV}V`~pf zZdL0%bltmBK1ma~)%kCodVvkk3I6x;!?oSe{|aatnRt4Odm8@Z6yN4*+m2rjJbjc( zZ%Xqm7)ow;`zd1Oc&09%0G#lcX_Vhia6RIVrJ5W5XtGDF$UaMeZM~S@sVLln*g7=m zrsGaR>Vgb%+B*q&-_2=gio{s*x6cDulbsk>>8|+4LIjv*9J4-%9W}-58X~jb`7a+c zwI-f1a9<_D45>%EFB$ILT9`+Y%CB$vXRhVPo82zEe>>+ili9mi`H16A@WenjKp*no z3&(*gSUBO}q%7g%6ly#qJ(aXK5_7U&H+?=gWlvX|oF+3WCV`_)qFPz&dtwZYUNlLl zIk+$QH8)aUNpoAW&@`p|s}cIJbGQ>3sDOJJpuo%N`S<*(8BQDq;-?Scr?5TAJ?~xL z7`zMRdLvHvk3-Xo<)KW^stPX#&6u!RqA4QEB##bVkE(=zh>~{xpo0=m*JfH#G=syo z@6O5g{ev-v8Jp)RBDu$=Q%R$r@xV5h4%B62)?Vo@PtJj-i-8=icS6FpK65BziNfGc zNP=AYTHLD97)m(A8!2R<9{6L4ZY-qj$gp>r9V6c@8In347mDRmP}M$v(mDT zz^X@R?f&?~OJEYQdLg}VpVetD=kwniUVyLH-J?71R1A)!)Ylgd(bmxHZ(FN_UM)*b zZo((rgQwWtPqGpl%C9~pKwFIiS_BZwN&1RSkCr|s?uR}0PW=z;2X&V1)_%j4lsofHaPGh>f=6-_$7LPzcn z>hGww%?T78usDRKV0Km%d4J6WE(^kMy@aq6xOt~Btp#lTxt{O4nKgm&fS#Dy* z_0TiV@oc0~9memDkV%142XLAdQmGGk@Ww+{WW9~ksZ1iVzS)~PDc&)U#@H8qjOA&k z?79nDH*H>cJpy1_;SwvaX>|ySsY>-LZNVS=6FNae$3!-EcYWo}{&gzGt6{peyWm7< zf=7ypc%?6;cp%oz;p7KHvv}4n1D+0KBQ-~#FvP0P48yd8QQ1mAN zU=)nW=@(C0t3iark3`E|z@Dn??&#vl^BhsK5;<4?CHw z>xdTpcr7i=NP#Co`K0M}U~oW3!&Q zY#v9D;wZO`dplVNL)V!ismy=rSZ$B(TR!UhwZ}mSB-eE>iFwq@TFO8tw(Aa(8`g44 zBPq^c%iucyBE{Je1a`^?;M3&_F8@oLq(_Mw+(A`@fb_YF8U8Ca~ z(5Lx2E*!mQtna7^1?2sd2$4PE@@vs3){da5_kn1{!f#m5!O070?2oNyFAZ~|h5>+_ z-H}+qsN3$U&2Hw;Mw#M{bxSN+72i$rbW4-P@F5{`7(qKFf5&on?{c(wN92}YeH9cN z(9)J04^{m+Zms?1Og$3=)PPznwdF9#te|vzRyHdzF>rWh9Uk$-T$2XN?oLt&|88O% zmL9=o>r>Ag#g|!SZfUZpvSf9S^~lEIDsk~*K1_J$Eb%TG76fGrM1}NGKd44&(<|*@ z$>1!kq0ZUvjdAM{F3T_1!h65FJ-0}q{p$5N#}VOI(mYz{EiI?;sh+IQW+wJRFf9!Rmpr9a%`e0Vlv<|LFOm>{1)#7rnNvjqj_>uyIU21Z}2C+Ox ze6J)10yw{lfO!t0sS?MGlFw?q2e>Rolm}`Zv>Pe9w~)_`_!V1ra{5OFQa8CQvbZ?$83Dhcq?(l$CiPO=d@v^Km@Azssq5XKD_6+itpn0 zW7c1TLu!c!(ZJeTHEkpZL=`XBn8gyvt*@Ub0Rmi?`}x`KXUfrj%3KS8W~Q+A;~nFa z)saRteC6ahzGc*9+*Kk*Du&_;gV}XRL2<70v6N`JT!%bC$pC{1{N!s%hmC$IkFkj= zYfxVQj<(DbHe+|{`2=ebXW3_CEk5pk`Trdw3+vvtaEjfQAh8`_p949pU9#TM6x8hI zqa4gJ`OVR=G7s1O1DITvxi(!swxXbQScz9Z4cH*6&L*%LZ_1X+P;a;!y3S0Mj+fTD z+xt6K7tEK@N4(C;fgV2}m6P>Es=n=KQ$8YptYqT<3=fq9$&4pSFh6}0O<*;n0<1a~ z_-wF;Mggkxc@~w_s)8v-PY*2%z>C$|bah59wMI|)6?63?stmkVtZwZwNzJ4Q$>*c-t>-vhi++ zV2Qpmcb4%7T&+G)C9c-XSBTOdzrLEfO(1h!F13#&dBWxnA z<2g2A|ChQmjZQnzhy`twkG$Hu{T9xeaZ6Or21`EbMB2*8{<#XHV5dzd z6C;ADVa|!%kN6YsFOw^q?a((h+i#>}OR9*A%24cmB=XB07-O8@}# z0RVMnq>5APK!PcKM2}T&3cbR5&zxAa7&BK{h+mC+<=(A{nm!D)OtH*9S$N)TLMS2s z1AEGU+3L+#S3XuguZO;z#V5A-)IiqY1yxj3`F-RN*DdDX&r^V?rYA<}dN>vWh{jdF z0)TnSy1Tw)d;rxnkwi_%LJMiN4}A2mn=Np>4yUJ5(n$%y3nLy--854QNd@ry%3P}` z0M#-!kjF0rc~6ym(cJ0uIY^UhZMpcOt>{mNs50g~9SGbpU-UVIOly9*_)SZhS`*i=K`+xs*z55ByAye20yBRe1+SHQTWSB7T127k`%u2eRq$Az5|^?-%(Z%(rPI> zLs+lhFnu}HHY~tuU7X=Sx^1{e=8okOXNpVYxyGOVEYw-Q=eM!_$^IU5)Se8hd^7vE z{dZr!Pf!@T;B4OZ$URw^@1|v>wj*8v`i8f*HZvmI2l!6(^{)8%>2nq~`JxeIz{P)* ziN`J^!9miWYk(Y{<@8$HFJM{%aTr%jkLZK>Iz!IiK{P;2h-VvoeQ?)*EM(pTw_6Y) z$Sz;ses==>BtTtPiq3OIS0aF}QbVgb!Fp$HU;qu^l-D-?fB*(1yvkK6+Bb&`4seN1 zGO9u#B58dnEccC+nH$&KC6c~+(QZObIjIPb7|Ewr*tgdlKLn!ge|CiD>U_H~b*uROL7u*XJ3qr91Ky0Y%dJ{i6 zy_RqmLI{i!>UR|?M;uOJrGy~Tt6NeRTY}D8w6qn})d)!o3++k}+7T?jUTPSL*8aI+ zm*>JP2S6M>Kq7pA!sam#?eupl_sDr{IFu#JO}k|+5&8%WE%Eub?8H&RF|^8NVc2kJ z!p>w^O-$>q+;q?5t5L8wX1CGQ!2Fk~Ys_8AWyk{%49UjE(2KI6M)GkCS=qLVkEps^heM*tXi!;5PqmJNfgKGJ3!poD?9!(+?bspK#;{#*Ti z!PvVgx}%IaL9^ z3s-GSg@SH{a^!%5(x9RY{xVcR=O9mMkM4SAA&b+j%IdBikQ*227+22;Kuuq$VAECj zGCwmrp=`r>_MHB1m$WC0|KzmScX4#Q7NfF+8K?GoS@LUT^U@k}1;YBoRNLb{(X{+% z0$N!eB2SDH+HpajY8h(`8jbG-^dpTeAaF@ubjG^*>kYAUAqyo4#R-TctTBs*RmoTk zTEw{Ph&&JeM}Tsul2nD*obZ#W;%((T&I)pq4-$4sQOe#q(_OVFHmrnzwf3jyoQ$Y=@TCCquJ? z102A-U6q0}LXRA@wSB?Y4r(6DK?2Jw4ea}v?X=c5y@O-iEu;=btN-Qhd7+QBZgy1D zAOCAHklCK67{$KeN%j8jR=BR0WPfRd(!M0P!ZgZRGJcDM{Y7NWaOQ-K3AzfSvypsz zrSxFpz4a3NazQjVKk&`#7Vo6e1^fN}sy{WtzuFVNgfiZuf_CZqYjz8(E@eKXhQ?Gg zut^ahcG=uH?_v=LPP&Y-64kCSr#1X~8GKyX7`}l@WJ&Eu)+x_5!4}cLfVv$r87A8_Jov zZ}E5AqbvLF)?w(uDEd7_iSD-j>NU&;I~s9BDvJ@gF6-%@QRfPBuqZF=nDyv@KOhjsHCZon|?bCF1d^xlxCl6h{(RnD! z>;v?MTVt_^Z@Gy56(2$lKPZGr(-xPn8EjD90>q*f2S@D|e#$6u z%HndfT=A#wwL%p8*>d>Ym*pS+BD?(gZ+mYAiwTm&@XEPwffLIioFD*8{+j1KBP@{F z*pYdox=(DoP^kXy`eDgxt-VtH9#{-e2f#HSBmD&)3*v{PBx;)WKX8v@O9M6E+8tLj zPuD?Qp{!Fn;~6UWOj!&&pW$ez2+7_x-y2q0R_O0hx>;8@m`wBs@gNWK5@(d0w2f^r zb7hTHM4i`OyhocU+L8-(n5#c-eqa=We(Mj&4Xuw}dMPBZ71!$UDP0MlasF{x1GJ(G z;#m05Uf%FVV|FXZm2wqHp`n#cU-jYKwo|B4(pfY_>9A`$;BB?|E_wYPOB{qAWXIjd zsL=N>qF}pPvdrhEirCRfuYxaf~M)e+3*wK0~#I~-r!d>;*w7K8#Wd(i(HtmW?K)_!Rqq#;8I!{rNFY3uu=k@7y)W zs8upHT^uC9)gdc-Ew2>(u~Mi_T!*&m=J~rAdwwRzQ|5nVWB#6*AdXS*Yuen~E<4@I zY#d4!-R%P|1&88jTAH zsan{6;SAOOwv1k21~ARs_m3v$I8`4V#p@0i`x-(co3Ep?`&JZzA+n8hgKXDyXk-TGhF_=jl(=TRQo-X;nwTXyw1C{!5?B-j-araL zR#-QfcfK&2D3El1e<86xe~xE1t<-W47Bf)&Nc5gCwq z{z}AQi!Xpbm!Au+<){Dn!iQ3LUAH#tk(`O`;I`xmbmD`^s|#j7ZZUDuG98$$#h~Dt zpQbII<0Bpo#eXIKX(X$LU|mFO-Mbvtpk=d>}=Q;#*k?~$}$ z^(&PwoNL7%8lm*~@5jeVTdiPh+e;*`-WIRk1=3xK0|UCI9_Qr}sa+_Ew&SO!l%d=b z`k*nprjaT3x8%t=C|2jf^A*27LkODt4kOYp>#sC?v27zR#OO=AaK)Vrw*8^xPup6v zOb9LU7m(Xu+t7d_CVJm4>ZEU@@ecuDh%LPHDK+AYGfPg+Nzhxg*>#N+^N-)s(VpK) zJWaC-3?eR5Ij$+QvF%SrHXOz$2{TXd@VG{b?xV(k~kWvj6t-tbX1bYJhi)&N#AABH{)2o$*#PN z`WPB1riLf2U)*%x5KX)g)I2B8{j}zdpw^sSb$8AD7#Zpwo{VOMCMi9Ve$Z^Bu>L1% z$Rt?%;O_EU8T*4$d)@6PXh;a#kFhZ$>+4_JM-uF=58k~#0jjS!m26_N9X$66H`K>N>R;0vhX8pJ@ItHxqq! zdX23nTCq(1Jko~Ev5z&xYK9?i=H3Ep^#2T5fD$6g%eOgazRa09XXZTf-21x(^I+Y1O~d(n z&pAbn7lku8MAI8gyMsYEgCYNR`MRRfVXdg%kZqCpOJA9Ez8o;tX?QZy@WRx-Eim>E z%hwbuTO_*jMBT1JE){>Od9muw(-TaTLEK+HR@RO~tf_gCm$#M3q&q zXILDvw$W#G{O?9}J>okU_kE}-nOSX_3A9ESsWMD(nxnqT6tkLZ_YI6*9T~V=e&?6? zeKj3pmdY?9LwLb|U)oVN_+>$7w~t9}O!?sb4O`r1L6@p6j*$S3 zUh3@yhHuUHP{6VTMF7OoFzaC(;W*XX{}_i(GzLr@%R-k33^culrg3T~!nLVgbzbsY z`Ll|uZ0Y8TNYAu}E^v>-IiF_yfT3dsOO$PVka8Iil2{#CYP zpx1d|9at_Od$OKR_(iDD^2I*z%DJ{VMmU&Zk@f;)qL4PkziK`-z`NdGq zJ`iyV-fW2;cJGVGkd$9Ui?$6(9Zl% zIqUP~iSzrEyGrQK22{8FXKEomL!JR8?HK4Kr*D4~@bb2hKwz}|p#xCvPIOd?&^r`o z#yqKq{13is%ApLt0uN+?!c;X^@vXM>4VjUgXKa-gnoqr^{$1j020cp*KhVB5I2twh#{Zq_mEMO>8kZ`)t0M!1O|EV@ zDTcOXkS{dnuLYXNZ39ds1@wnfBtP!EOiN|`n9A(f=mW<|qvF91h8ZuwyklRMjJ4}D z%&1EtTC(rbxO6m|7l-vE2|ap#&gwozC$ZP2*#e6e1{^d2r@i_ zp#7$F+rXfXvx?5JgDz5(J1>U0z1mq*FQLj!bQfMusVpF+MwOXD#~WK7<~QQ=C}xh2 z#bo7>ka0NhfhI6PlJt6C%89?A3(K0p=_S=n3Out2Z74XFaL{p*1=xO(!_{5)B~~jO!_>?W{^#E(W}9zP^UMxc z*_P}!&^DQE6qxYa$;gw;_3qAwtpoowu@9{1X{Pv5?^w8f!p}+B3+~RjE)%ca)_G%7 z!KDs#(EO&F@zq?Vrhk|GM&Z(n?p#^wh^L$Jcj*AQ)XG>0v7kx?}jU``aS2oR-UKp1Lox@_U&xCIdJpmnuL=A~~ z`ek=oS^^MCLuz8Jaz2(iL-D;GOK83fg=B{Ba0=(iV2MhPpEBS+8~w>}OiF=~f+}u@ zdAV^^s@+kJ%4gVnR?G2o{Z`7X9hh+wS4!c>)4|GzjIC0&qZGbiaX1!<*Iq{u_0Fl? z8P$(B%F3sSHW}WT62bb{Zqb*@sCPY2PcZS`)+k}rATw_iba%-Lm>qn_mY^pv?w6%f zpHZkK=*!h{M1B&S({qzt6H3BP7k;_I_6wWn+CK?@jx6IX!rVg z?9`T}N&a#bUaT!tPb4EI*Ll}XYJh{SOWTBhd z$e-r){5f2-3bL;^blN``X_i64NoF^--f0&7GSyPZk>mM0Ofz3jPOI>}cAQuI7ma!Q ze5B=qbw~RdZN6uUo9o;cA-X7f*=-X!q~D~@%qyPK#Arb+^)JS`6Kt<5r&Intb1=QJ zG7CyD%nRZzl{+SUdz@&82CY} zAg9CNt~vT(AG*N0bx`psEY}+7;cVLvc^?qEny_+iwm&V_oIIS`mI^ z$Ws2pjDjFeswy;>riy)`YvAku25_f$Cb}~oj+OJkeCL=CH(zELa|;GlyRc7MHkRN$ zR|yauG23Ny>sg#4j4%&bj3~F7&8=! zVNi+rk7NV8&yIBW45;;~%QxB@o(t|hMJQI2bIG`+e!OeaXQDgpDM%=iM+Ge5%F&pZ zt_gJ*^nO)_Zx1t4gnPU?R!yV}AOq^)8TA!ZjSs3q%0e1s`Y?p1K%zdg$N(aeuqCG9>J3Wc+#+0q7xs` z^M<2$^&kT`Tam@Hu z_Gy5&orpfrI+<&gz5W)BlmLNEV=qw-4d!L@d?~x`gAERYlop5AtkYat9F|2D&l8{g zMG4xv2+4c%EjsKHdaIFWbA0xhp}u)?5GMqjJ-CVU;Vk+FkiwBuIKm_mko4e@j0(8_ z8`wtl(tMCk+KKptLgDh;S1G4&6GG;0bKiWZkb!cNMm}Q z#xww2$~6*1HxNvsN!Se8YZ_r}v#?A!i*^*Ps39qx%52;dvJXaF*eA#$%BzQ!+lGS~ z$CDm)!d$FnTzxl>RG`y6&7KN*Zskfs9)oaInVBrsBlwN86?LsNwI8xwL;dhz@JbVH zjpKtrby0&fp%h=F{BJ_)|H(K}-=hLhqPJ)i0`=L8s}wrBAG8nVXtmQI1JMlOM%;pF zoD(zOEPrr!gTF^SAl3#kKJ{fxpdwCh`g-+(DYKcl7r|}Q2-T$`mFD2n^y7TkRB{Ss zvl;E_OTDh2H&NQd8-vnjbsrrhav=-|F1?XUvx*0EC+$a3w^5UecXI5I{$=pZER5_AGpYu9KW-}oaR%){)` zdMf=$>29`3M{%S&EyRi+j%|g{Hhq2$mPn>Hk?NR8=`MWNphQAazb+a4>f(4ID5s8laYfZ6V#zAO^sswOYNOY+$$!AqXFRtT3weSJ@ zKyu_Ar22~&w>6iCBLMcpQg&VNVBKU&>yaWk-0GjdV$Ijw-Nsisw_6L-9HMxejv zO`yM&lg7ZdR%$C(c`Hxj@p!r3`1vqWTZQzk7(YAr^risYQD*2Et<5)au6h3w{KVC~ z2*;&3*HlKSrzRrhK{+&;e_%q9B9IbHrNFHF7eJ_3eQPdp;^mnCD-uXWL&ODvf6mg2 zQF$coJwPv1YAn1(ot#A%_}1x%+IlBaZyTk%je~EOP-?a5)$2duE7 zOf^6G&MD0S&~aEi4N_f3SV;epFP~MVbFy3p$de_>XHix!Us`rJSW1IP2mlhhHnYex zc}wtQc?Rc%gG3TsAe-p=mwO2$Lyx~aG+A>8g;pGE7MO07UZ<_#OX$PskUY-HzWsz;Lnm?}*URsWxo$WRLK+ynV)gz*6eUy?b=fC@Yb0UU%pr@24R2NFT}=iYpN`2EcHB0b`p!~*rN z2WB(!B=kJi9ogj|RY6@<7C)rr%U`%bp8yM2U2_-bY$X2NebwAU+uR+q1beXzlL3X^ zGAdFT+@tBkk}SgLINURzh9)6Gr8z=Vaj-meI6(=t$RRWp;XcFwD?o(Bnm-@Ne%_n? z{53snQ92?C?OE&qr3JxWAR>QWK(82pv79h4qdQ?p81V|4)Y5&tBeJ+8G8N5vW#M`D z)XQwp(*)$%VG8L+NDR>-lFAGQIPJ+3enaXgrWbw1%l$qa22e`hm#a}K7dBI}6pke1 zGQ7a4XhU=i=E)=+lA?Gs2CXGpz38)p$)#-Xm^(ebVX$y+@X?lfdPL8acjQRL?Sx&;U4xpKiGS?x;V)o%LTC zA!O@K6gULFgqk3p&h*UsJ9fFzBZXwYWUGGjg@u(U3%SkL#S{9)Gm!~Yj#`sdK@7{O zk}SO>Xmd5o{!QWB&a&N#yK<|o*j>!slm}g;Roq|W9tCAT$|-@7h13o*0xOr$bw(gc zu7FpTE4YEHfLUPEsx)7YYwbLvY3_;ichYxgVlkZSyZPQls?uI#GF7g-Z{+w_=hYBl zoTob+%*=0XoP?jgsvygl5BVKuRc5d6!eeb=qk~qrrBDTHp-JQkClCqR+ngS$oX1j? zMoZ3$=jW*N+y_hU;qTs5UqH(cVVO5qnCP&Qf{v>Gm6V*PoDL2|5&~_1t%fuPi(8C` zoLB(s@b(9PAnq(3Pi#6I9XcMfbVzTv3(DlT(IF>Lwfz9mKk{_3`mFvyH)E^b3CjAU z5B`5&-?_(8zZYLFkyq~ShRStq7}$xA4(0r($t$5-p?%wp$y>yudkR82Sy+5(b2;lR zT|%WEO)^$pd`j->Op4E|D#Rt*<00O=*~WN?0gjONn!jfdqE~_=Kn!Yb4|H+x-(ejR z?a|;~2LmNT_pgT(ZHHA0hPBJ&dS(kGf6{lCkiA>$cUh5lu*Fk{$=g;cp8Ax^lDQdlJER65H*=j*S1i6C-(wD9s5QAvQn@8cxk9G=LK0bZ!F$(Lvm`S<{w*iISTqG|@ zhc;NTGxzW_-csi_a2Ghzj(_j-wKu2L%wrmJvGpIcX=IB|F ze!fU|tC_flsIVcYR^8+Skclm%8QrA%hgmuDbpmT9V&z@RpsN!3?v{B$x~M+u-(zMV z)cq)M@b&W7*6Oe*wP#&ijLi+vgDN{u8jZ^KUxZc+Q1z8EzS%K%4PPUPTFP6<;S90v z-)aAlQ`q9;!H;s9M8!#X9y6z7XI_y*aU{Dt82ftDo z9~Dr5i1==|=&(q*YWYdLBTFWi`>=SHrNvR|XwD( zC_J0jGe=9#HFNWM_xkNm+2WscwZe+U&pE!+tkY6wS*2Zf(j*w1tR83lyk0IPs=?_fCsWdfjV@Kvo(e- zI{F8LF#|XC4*G#~{PZ{&!#zlte)nu`LhHTFyqA;hWy{gNghf9ZJB0u1j{t-J)i&0n zkh*Zva^6`o;5}pr>jy<`qo`O#EtY!B5YV_{*(k=1P=|y0DwEoWZ?Di^Ni_7gwgac3 zFEQ-?@r|$Y9lpnPX?nZp`*wcEjFKxMH{s5sX`B{(Swi!n3DmqsdA6^d2pMDDA@vyB z%oDmo1tyE}-#-sB?y2T#gyseIne1N@D}A}9L0R5_V+qaCE`>o1Xeh@nJ>b*3=kPF& z?i_Cu{nb?^mXV~=F)o@-Ce29;fNwiPwMR!7q0bwcJ>H}f;oLizAkGmIOYS=R>sq)d#t%UHpx|YNQ2JXy1ctt-QojX>&h*nxVq={DKo}sag9c(c+Hr*iM0t}-___A7ERW}HH$54*c z5^lM>b6Ix)&$1j7L%jiBLlb2tLem}%b;s|$mz$Hby6u~Q}3$X6dBZA z+(SS7s-1@R`5L-x<4%6)U`75QM8!5KkL#s92?@Q&`-;%US5A=9TP1ETJ(3B??Co5A zQ{^F5GsVC844x!(Cx)+Pm`E`25d=WgqLk)IP!PySyO&DOeC2?7KY5CC24v3mbpXOD zkPF~RMoMWcTGxWI*Tfb#NbDI;T|2=kvhWA8FQ0P1^Zurm6`?brNoxYM^2>zB@Q>Vi z7Ioi|P(O)y=CbG9nxJtPxCuAh`>hn~s~ksh_<6{cE-}xy8QHFIYk6yOZ!?t>hx|g_XDB}WK6bCcc@E&QJ9-QHLIT`0KtH;znJe-O zvpgD?8m{vls~l}pwiBlPnziUgifZ>TahdM`#WH1vxC|;6DJ#OVF7i)*3mW$P2xTy3 zY$*m*DinW$NR+RJP)>hIA6`>$l=cml%n<4b`p70ll9`l%xF(zf65#4$P;|d777_Ht zl7xX*h7({r_-1K*i*OGfYy4tmV89F6rb#GJI%M(8;g~X zDc5vNvRUX}|JV>k;Clc0wKIN&u1iHj+5fBdZZ{l8tA3|BJ?-WhQvJu7X3cH_@h7H5 z((8pc42;k~xU=PF95b9)FcJhULqQ1ZQ}? zElIX=daYt=m?l%_7;(m*iJHm0|F^XEUgxKAV`Rts-#wECMi_?sw^1TvuyRbQUKJ+; zvvwSjkNt0sF*ACx34lrqMW?50ffswH>R}jF$?AA0#>3Dfz++6JW2a)eIv9OWkH|h$ zS;|sp%@f*kd*SuhF@0Hxq6(;-nhiAZur+WxhK6P>?7XelRx3fDjk z<+uj4J^=vXhd08P8ve0+Kce-5)5u5#adR3FL+3GL*}ly=bXa0;FR>|5NprEFqr1M_ zDt`=Cl>JJ@nc}qhd(5te)Si}bYz{{O!9sPX+2-4l4myW3!z#L_GAWq94L`TADYI<0 za-Mp@iQlfyeD%DxmcLYB#2G?Ri+~izmDUp0p=Z;WpIei5KeqJqz2})9Y@hqj-mv|u z*JXEk_;n<$LgAJH-Zn=I8H`rm08o;6Rx;ZgAex!%5(hC5iK3ihCX^2upfvDRc0j{P zNL_FYO4wMM*0kYdEO(8*79)V`J|*{R9~LB^eWo?FzUJ;J)iA4dWi?zYOnZ;_TEZcGdL05RuFize2jm+N-Mw9dG5cu?mMkjfFQW28 zhi+gAr79~D4OQAN%Zg~cR>8!COh926{h()@Ud%@()jDP$%%@B~w1&K|`e!FjU`Swo z&qZpP-^?@aXlIL&A#|+pi$7+H`KI3NBZuYNY}ux^KFNp6h*j5n*X69PVsz#Ao_2$> z$(!#KHa?nkxbw4Mz_yWSq74TA7=Xu-e~UJ7!mrO_xK~&J zO}JKHu`i?sF#wBIQYqaFybJ8|{s*-mgF_W>?WosVS|K5QG|fL^Y09BglvIO1^{YAc zo^8J{AQOb0&SQqjfOt4$)xDg)0pg6&&Wmu$F!Q!?1COhKpWF) zY_~(+Rjc2hpWr{;xrXL)*k@*>S9@(ZQ^t%t+7UPx)tR@2<*1zrKto6B`#r>|OF*{x zoVy!0ESWh0@vh2R%+CqfesW zC_aECT)tN{_&s3}!JmC0qw?>WSgDp=4>UJfFGZcob#>}ZIq@d3t&rD}MdrT1a+jwB zJaDx?5vbqlLOr|FYy0tEm`vO)#h@@SUT@fh%0n*Y8Ts2pY`OQ4+Z$9?UD|OwiqK33 z!rJ+;zn))h&GF4S3ijn8;pxxFlir4$vz~~bwN_K{Q{C4e*e-B|;r-{4-MK&cL#~{J zNQi0BAVxGHm3zXQkgM#wxgF?=^iY_ne~>d=ls1f$8_v||A#$PG$iRHJgo(qKrJk6x zmKZb?peMG#@tVN4`4QDk|GjX{Ax_13I4U0AH-h2A-W>|?QkP)GbAt2+ZKnwh42h+T zEu=oXP@BDnFFkSs`NT{NRrne5ivWf<9_}zZV&lV@RxiOT`x=MQZ;T z5x(qreBKeeZ7zIs4-O6y(MO<(ehU57u=oxN{nH*#^c0eogATzyAss^-i()T>u^>kX z))CUd>2XCwlv^h6isrb-Akg$uK{}Jb3Hgk_lUc-Etv*AI&JR%k88sb{2;lUH{0P(- z6c-?%;*|t)WpP9GX9E~XgNs1bOUc>y2CK#z$5~vT{Nenwpw$u3gOcaIV89;?Z27s) zo5O7l?T_OvZni2d_U~ygby}oJ#Qm<&a;%EoV~G3}8@ZS56TtA)gNN?d9wdM<{%R}! za*6h@RO)50?;oSovxAUpMl7KymSPN^B@K^}@q;)*H1K}9IIQdd7L=0)h$QfcnHCQ) zA$jqnpQ~#((maX;GEAC$@;edzPbS7EOlAqKTEghMHLoKrvlfX4A{?`5-}u z7SMpDH+W7-fE_;S9`sQ2F;OX@Sqb5HS2r6>%Iynt+41zy4ekOLK6azJ-(+tgtM%lm zMc~E5U!Q|-!T9H*_aaO~Ag|%KWk1-8lS~$_(dbLGnhnfm`zK%_rJ-O^qFk}`h9&<3 zExsEhk0)QQ6X%$2HAtYA*i>mKUFwv-FX$e(mZ^prbEjs8)&igx0Ox^$7!Y1+AJyyp zRUL*|ySHp@wx|}PKr-5P^A;MT+3=;$R1+&P{xo+!tk5is5^BMKZdtdrZ20l0*5i)Y zhZ;m4owP2qcSoxUouvrJJqk=Mru7ZLbJ-onw}!6wy(23`5{p%DoZgz>u&<)#;3 z;w-Yt;gRm{Da%FA4vMTX!R9n+##>mL@tl%VjuP3Vhl}!+n#|mtVJc-D3`_#NW3Sl8 zshHtOD-yY&5;*8b2}l`$hyZ{CKs;bm8v{~(vR(|OGo=|fV0%i zC37XrTdm4$q@8VLJ5LFg1)zgU`SMR`rQOj)o-r9}yr95rsL!ZJr2blk>(Wb)S1)ejmb0G4!_kjY zzk8$&8HYj>(lmkegv+=8G3StVWfL3afQ8quKauWZv_o=EBe3y}3xdn=T6{ zlM^VtY^ZhwB;DZT2!h%b&t5TRlZ7hv*1+pklQ$=DZoa(9H%WH~VrG?HKyziHeDL9= z%w_f0Q6EA4R6>(HaL=@6b=j0g=1LXj+T*=uNK-lST-|JS9cYf|$5{d9XMuBYi%e~W zQc|H_P2G$K;c7yw8b<5}K3Yl6$k52nNS*?q+cxtXVvh-Bj+P8Mysi&)zRm!2e ziS;{IZ;3bHZO7;rsf)W#;I-?*WlW;86bj2V)jyq zUlrt}gV?dLb|rD3SzKkupO`(lMTx4; z9M{^%RH5>z)`F?XWFn48R0Kjr_mR1s7L#+yUVjyr^IIba;?W*8_O|e(KElcq9Tr7D zr`zFYGeq0apGm;fNWcUDmo`<#?488Qoscc&M1D9F&)GiM3C1+S223lPid8{o#_3){ zWs<}3oCrkTz<_=l30qEH6B~h)Q>GI4ToYu=jF8Iwra~V6iIDpQ-0gYx&JFGAww&MX zQ6Xc~itDx?O)S*=>-&v}?oV8ZlU}NW?dT8Q;$gqgY>PfG+rC0fF|iS$P#Qs@N)q}CUaE|2 zc1u?}gAWab^+_~T6A8pzbwZ5Bh?`29F8R-OS*c5KWTK6ADy4)*&Ivkj!f-evFn-<5 zS0)QGSL>QO@tS5IRQTN_c9qE^08cc7kd+cO$d@aV)M{xHsXrT9;&s#c<9a{**Z3rxn7_HPQO`iFKCZ zy3*|3XQ3NOeGreFr@6ji+VG$&9wr=8PSphQ&P2}j6=#)r)nMa93xUZ(!}V2y$Y@Du zcLQl@2N62~Ls~95rnLMOCsrO#j4sX5gHxk%b)ym_({NnW?D(%LDHZ12TB?_x8f*$| zYM0h4CuPik1lE+{dT!KZI+hdMaC;TFuOYGQTcURf@D7{dj@mlK3u0=rXVJQGYTBl7*?ZV5rPWCPqtbfo;HO%%x{(gO)}aa1f&0^SZ;|i8 zPY%|ZoLKtyrqG)<@ZH4rV77Ytr|_G+3y3p!{d7jT5L=v51^}c1j2q+ToVFd7^W1_lzi*QY-Xnf25eu`PWmEFU6S|1AyQ)sFXff28jFC=VR( z`|6209-`U!AB%Ka-n~?yaT&l*?Abz~MR<~We7rkeT?9gTXX}|FUe$05)Z|-#JOKa@ zEyDy7N6-mbSCfU}@R0hAYDc+Js_i)K^zh3EqBVMc_)vmKR#;sGpbObIKn0VfX6RpQc) zJAx8Kh{js~@TjDn=}d|0SIiVgy7`+-ibFeQE?rLt*UF}-oQ5SCy_6I~1^cR+K9#a9 zw+({QKcO6;+(*xE8uAx<*(O79gkyh$m)G~^_4n5(_BUtty(6X}1mD7dZ>xP@my;t^ z1opSyem(s6)v0K6%Wi7=YES*szH`LO$Fu7iwL|Zj3Ae{nck1^-+v%8u;7}#_e+o~6 z+VK=Oc)B|$)WRoVB{+RVT7XqMo{uB&BO#3y(Mz5c$Uw97!4CV1D%v*Sg}y=$t#d|i z6;9=l_~caLg&z1?zQB$@NnY`t#1ZY*Pa%yiPCRa&nyoM&K2Vt_H=em*@#)_BFJixD zaOr~F2F$e#7KA>_n}s!z0k;3a?7yEuFvPZ$KnVWKrTDxM0r&d;2{0rsM4fx5o;y-r zI6i>;QeNCRQJy>XU-&*aFKj$}{^8t<^1LDZ5-5R%{CMZr0DJP_BJ}RLZ7Q+Lhs%VU z^GEi?N&T0p!th6_oX+UtK<2CRCtql(uE29*m6SkLDqOfNhezcNt!S7`i-+#hXK>P} zN{)d0FZ9FYCC|bdgzEcW{q6jn*U|5s``bu@>anRX&v>UXyvLuQfUJwC_f;3+{4l$j z<_w%ZA8z*Ymsj8~kJeumNrSa|aDmxlKg5|r-lgnYm@ob^4}FIDejfY%li$sm|9|HI z0SbXO2mg5GU3Djj1Mk*YIupw~ zfzBT{+qeucL5$v*FIiC`@q4oC-_$&45k~-fa*IG^%m*ha#ac^zS*Wzjqxc0v9GTVI z^+phS1x$Tt;0BTzFO~7cZQdKrX5&xeR+epom- zjij*Mk2~(XRlpJxNnx);p192vDn_cytNeOIUBU7ifhij%0eH+y4kq%>KGF;3wTG~$ zS+fFh^-CDAX6BFNJelD6nCr^ZOt9qEmL)aE;45P7newi*u<@PuY?FFL=?FCp(x|LQ zsF`c|Xk1t4-sL>vL7@`monFd7y;pS)$FA&1c!d)W2W!UqP(Q?HMoIW%8qTQ+0IC~A zEAL<>3g_D}y)prZbjU$~;Tf`M0TCP^A|OIe%Q@FTzY}Jp%p}W?1^{n}L-Q@75!XU0 zwL>yYAxf(?`~f{B0O86x)`8p;jL~bIoi%QhpskOYZlE@WyGu2gt$LB30rJ5txF#^Xb6My+^X`msPNLS;@@!YFrB;($F$ zVlcr-_oX~VsoY)i4<(q1l2oNXola@hBL9;3Q6TcEqZT=?^v%qKB~!ITB1vS?@W@3(1A=(1ZS})VmiMXllfO>> zh=qSDvArs!o|j3;MHJH|g#oI;8?>UH%a0EjP$oa}DNL=zZ3DtR=>{~*(K z%!tt`?wzW8E=HhUqCAa=n|M1?{*D&DmWT+qldCc4%#_rf(YgERArYPlYs3B7F^9mi zt26d64O*H5zpB311YqfSO>e9{Z7a0Z+megl;X!CV!-83@d@Na$R_{Cgr22{+^7h)s zq`&XHTXw`yB_86R@E|H7{Lvs;(p1nOQ|Wb>HZcoJiVk0`9{FUamSrhqW$kaGq{QRq z3qA?*t?9IgLQ*egj7;_$Cd^er66>`3{scq*Kf718&NXud0l-aO^=*hxa;dBvCb@cF zKgy!st|S0bQyAn7xGUy40F3V|w+VdNLYAXt9~%A~BRQ*WIyaf7@OnwW z-6A`WxoeEo*jQcCQckMqzJtP1Aku;$tb<*CQqED zd%IGC5*RJ`54Owl_eV()ZToFVp8jWbV0cqLWF&2PBAz^~O0)yeZ&1YE8N0&3{_ zDOR&gZ6sBF)!w2f2k~8U&s{TN4JCzEdeSyxfzhK{9oFb`qS8oriMB^b^5(jqK!L@> zhCEvAfNNOc>(c{;;a|gh?(Vx}Gz35TS&xaDp4y`3% z9Q{JRdV5JUZ#}@Y?(m(9aLRcPP8E>56zh+BNf7#5^sKogZNNV(d>feV@mJ>wfr33l zooI{w)Kl#UTuiTIG?T1p(^`7JsuQZ%0G6?@oB!&v-wohD_xPH%t}|(UD8}&4k2^Dx zeeRF7T-vb0@|)~yl4d88Y$8U7H#csazzc7V&DIpCx}Y5Ia@ygmo%zQ;4gQ||ikuZj zV$GtB&-MUPC^yFT3*XoI8hy)!&Ts;}Uk@glT_Gs5*>e#7F=U9cD>t>aiVpaJWs-7s zr|Bdajsa%zs9z@yp57|?qqeofh`0w-cTx*h+;2Ca<{jgAq1+tK7{@%{T0IkCTl^$`$h)`8?V8RI&+t_XMBjPFj9zc7CRtwb@(~ zzR?0>!~uY0{0JYB&H&Micl_*xZ9*Xg`Jr86b)An9;AqkGV1^+MZJ*`YL~WbD*YgYg ztQ`AAa@UjW5(;7o2&ud?o5f_18(7hk z3HH@WtN?Qk-6@LNoKmZ^EL0CkjEq=Gxzn8XN{~WBep%NK1qJLRTdU8(>)sEQF#G?fBg zg|x5|+l{XJY{}dRJne}zWCQ}*;%8Gl&MoAShoiYkzkrKDS(w`7<2gE>AUqk?!VKm8w&J@^g~3_UFa^ugUdnb z*wesg$+g?>eF>>X)jmw4OY*mW{LE0=ePfaQw`b5V^}DQB%Kr7BWATJeJpRdzyly31 zv_19kNdI5;5K|c_hO<$HV@$ukF5Vr34W?of}AdPa;DzYfw`ABSeEzx1DbV=|}&crrY0TCUC zm442mfMdCV_B;20e|3Y^ddJWTQ{l-_qvD_GX>SMM-3d5HST^0N_%SmXIWRCcR1Z~C zZkVOQG$!BqlAZ(xmcZ!L?(*e@xE#2E$Bp;V*n9s*)tkw7{!^d@N0CR7~)zxPTJ5$R8zT3yp#E#26qx2E$0lQRgQ2 zZolcBf1_xGalhcMY@=y>>a00 zwqbZL6?Tn9whu<$h~}%u_cmIlP(%Cl|0n{V`070g=p8V;*EJ(nH0A*`m>;r}9)xCU*5v&JiP* zo{~inKLC_TOuTpQ;hP0jxJ*=JF^f*Vu9ZOw$wa+-)!OMk()?Ro_mFh1_GZBLSJK;c zorQ&wW>(>pKghN(iKGXeBqalVmsI_o6P+OqtDnl(j!4#b$a4Pl);DGd!jvFa8HOyG zb*D8AAmC0~!I&sEVj#gl1mcW~qIq5R+_;b%#P}?+NoKV#(ot0z@^;#TI8ovbV`kkX znf&O4s)*_MZI?6>EAQ%D7CGLOlOXadK%VhP?!qQc{aPwQu88py@vA0S%-ArYUOBO? zLK$SlxHYPXR;M`G;Qi~FFUKThWD~hPiJ-02O3Rjdk-J@6#XX%U1+QY7<0NVYDr<#- zAwy)d#H1>zFu_>5eGl)X*5tLChU>8mtP@Sb*n9bl-e;YKb$t}{_$D#yldk1yBL8n) zp_A4=Bmy|fFqYRd0rNAK#DyMX1%?N=Zb4sHQtnp>%(_z0yrdXXK8lf1n=E(3QDC5k zNP!mH=taVE6c;cyhiMeSpvKf(DkF1=6iZYA#BhccKL!`avdv28Iro}|olP-*12e}K zro96p%{N7fA#?;?dp<)JN@*8FxE4eu7euBFDnu6~dP#;^uxeL4QsE}~BARytlj~yA zsZMaC=#fS;MVntb1YeWsyt9ATQB6P_Fgy+Ymk(%qvdwIHFA|fxcBOkDq?|Ei*(@b; zL4yM>JTx!x&qx%Q#r3@6SlMu_%f5s8qc!t)bCg z4JESJfczFO4ftx5k)YjhATN~CQMzl)#A_n)cxL}PSyFvM>gAnA9)h8&NebQ%wVkAz zUU$!IKXmd+Flc8dvgFJLte~dJ7^kQlA)_C(Ofe`^kPL8TwKyh{t~HczH(<(=4EL*U z$l$Ofs}tsIO-pCvn%3&9Z#1pPNo*t~^*XBf9V=qo8K87iwX-#=RSXSUx1?D9aNEY( z5U`lem^of_6~^?kG2z*dDb`8R7}>bza;iwe8#LqF#z%-sszW2|Pisv4=3Xq&+cs(B zxH;gfMbAZ?rdH_zXPhss-T6?MZ(GVkO zM6iN=H~_P@Yt9kv$}u*Zs>EhBTSI4lvFD4trl}=*aaqZ6>%~0bjwHDAo3mrC6-IW{ ze#k1OS`^P zTg-P^Xk^CXxBULInX*9Je3VHknWGV8VnWh!M5JeuC6SK>%g%_&(78L$WvBQv@qB7) z)WI$y+;VlJ2vqXH6+`b%z!G^zf^e+iSf_vFO?KxOeP%_g4k@X5VlvJMQCL_}L^pLf zLR~xYu%0h-M0Uy)j8+2di(b?0tg>RT_?D=(S50q}uZi5M1pEz4V|VTI5pU1~JNNes zYf;4G+p0m9m68f_)67^IQN~GF>D8Ii;NVijWE&=Z&B(VdOynI69hRREP~yS8e>+~b zjvuz84`;)|+Y^cfOlbPnE!=KQ>H+nM0J@oJP75Xwq-~+A%h7GC<-_Hk4mAs6W}$+8 zzh1_z=v^XIOJj!7iK+C#$srPiSO3^erbGvI^G^I>d-rjv#v{FId7JE&=wzSdq)**W z11BU4E7XU3tC$d#y!|SQBIINob ztMAFxT-eHg+pE?w>}=h193$H#*jx@5jt({u`m(mI`OoL^iLqBruU>Y|8~P*?tJxZB ztmiBt#|hOBu1WIhJ*MfP;FBm7>Sz&5l4<_pJ7noLCwUboJqJ!JZ1kr2T5g+by;hrOEv7<@)Vx z<0IU?$WiX3CWzWW8;vKii&l}-;cgZVJg_lt%595_{-SDQG7cuq|3;>?)=|&2c?okH z6Iq#$meC&^>A(D13;ot``C$nRRAoP4Ej>*7xYC#g#6EVaXIybt;M>))!kdj;@YQTv z-~Fbf!go%>NqdA`ocu!#C3;!$@nEs|F-d!+>{D7Z<2INStdf%JMZ_F}nK0gU7A!Se zO9?8H#vci6-;`|g{@_)=kN<5%mdPl2g`oZ_$K0kA#fqg_nD!g<+Q_XVx{D2*kc|KB zV&SU<_!3$$mOc6N&Y;hjG=j(ITldoD-4!3((Z{Z<-$+b$6aQf+3ib~h5B8e14_W{9 zR1{GG>fdV5lM>I!PMSR%L%uQEO883^o78+uZ}yjO6E}m{MXAe_hNYdDC;NIQ_kK}q zxr060vuacNDZ=e6Dw?^j)rLSh*8|+eJ9<%hb*^~q76u~9SE=y(Gr>JSMyD~iBazg= zxM+cXbg9`-!lBBNJ~Y#-Csz!Q(xPcC-fVaAcZ#|AB68b~caJ3J%XU%z3WSO#I*EU7gF}MG?9=`oDRQ|}1qrdgEuc4qf(egC7{#BP> z$Bk^bR9oTEY!SFphCQB=ra8@l=;c_OnWutpDYWy7{(x{nt#zl`gLzAWa!;J++0LlIb+(}drDSJBi{ zzYCs*jUDh7JpdX|fae|biE-X<$W<+V%;h+NFsLZtr4U4rf6x*#@>4cu}4v> zXd8QL5PQ#xO;J=^{86J?Rn)G%T8e7v^mzGvKKFTjzdPsr&UIbi3;LhBB0#&l7guwW zSJ0(adq9fvxqcdZ(!;&PM|sqg4qJMaTyZ~s#U)|h6@?=Tj7 zz{{eu(~rvq113sO-gZ;-Dgj&lnN)^c=(_>^l8Ymr_7}$<|H+1ejaPnsSs4H!BpsjM z|Na@sJ>^(DmR6nKI;ngu&o2CmBZpKJ)My;r=(?r`boL*aBb~u9dK+V>u=}I@#xe49^Vm4v&Uqprra;7Hw#9)d zb3g&?`D`S@f*U-3ZqOZQwV9$4>&C);paUkaOQ7ps1l~fa*y50n>k6DP&J7z&Drjw!9#H{bY&h*X23kG;G~yu>Dlr! z#9=EhQjOKM^`V_M|lr~%C zutMKSy1%|F1E2aGWmVkc2bvfTNf{`TI_OHwP)~&2&qN_1aK!;65WF_3qkEcpCC{i! zEif23%4D;zz} zw}=Zpg-sQjMU&2yzl!(o-W?ei{^YyW9t__K=rtr2FbP@V?`J{9M_HC;D~TUQ&+t zdGlN@YNQNkp?2e=+lqMwli{>-V%Yg20MO)VUz1r0R-;+7jpf)XM}{_0`We^bX z0E%Y{!bAHh709Exzc|x~&ZlCcTN6VXUC5T^WAs^sa+6WRA3KH0Zc{51OU8T-Ayp5fJ;z41}h#yhK7y^fYw-s{MCjr042i= z2td}s;Ak)m0qhy(^?|fm*QkM({;t;8KO5`h5(K)`vC0N z5#Z|7R-mEGJR6*;`=`K@SWd3%_^6cimq&#)tv z`m>t?DSO}Nj99$Uq2=|^KH}4#F8j;3taiG8lO4llh`&uc?GtsR%3IP9c#v2F(Pu37 zQTsYG=4WHYiJT}CWB5o*qmiDLmIcZ6GLC$T>X+B>5Jpu&F{En zdE$`jyJ?YVIoJL}tS((27YAAR@T4ZX#fVB%-&MKEBVv@Cfoz}#R}Qv)i3v!yTh47g z@18NR3VPS*Cv{J0Y0^SM{Y?~oU}Wk$?+nhOk1%yo^-a4Sc}b(PzfH~dII**boYrt- zk6&|1jywLz51IG6UH@st>qsB#mQw%`P}>19-ZR&}t?Za|9cL;s^o<2?=eWiYegB#c zTS=Os_g)+yYSTfjCjYh^CTuT9?l*m(aP@QLAZMQ~cl(|m8+DJDuV9P*AxRT|ibIUst}xMlU4AJ88>{QKsUp_O)T zabqCNixBvcE^6HCouswFJY>z~Xu=Eq=>{>fUVVwkfMgiwoIoEjFRy!Ijj^jah()Wv zadJBL3IZJJ;iYcHI_}{kg}2h^a#pQL$pN7%bBzNlMz2_f!k7kNKvOif0umTGt#wZB&SZ3kAUw|C=Dv571LK< z)Hgc$oF@Kq@|yWpnenBx3*SM>a!pcX0o4okRqzSSz z3!BCKso7vtONyQ0pj`IK<<3)PEA4bcp~B0nuvW>nHhpnhbj%qW1( zMXNAAR0kJKTCu_4%S$-5#W+oGRT>kv{;e~B_c*Tyxoj+Ost;L7@M^Bg;THoPI#jTB zb*O$dY}w^cD{agy%#;VaSG~EyTK+)Ks-k>gh-D`@Vds|SjX>>P`+3^$sF9j}$$D3s zx5%Qjx0Vb=pLwsf1iIc(aFP|&`tmnUq0r4n)%l8|I-cyx=*XcbSMmA&HdSzq#lH`eg6X=Kh>An*>?wZREm0=;Nm}d8s#;q6I(;IFO*Xc>)sfqCQk4B9I3Q&R} zg3-jbTrV6e*XgozKOWaTRAE6|u#Bp*u&-)kmK+?@sGg;&?hoCmv2q;xP+(tsf}PH+ zx_?l@BwuQq#w}wfT-*EzLHA-U$@#i^z;0p6e4&eG zQh|pIcqzi4??aPY>5-R$?q+uSW*L|>DRcfkNJK&1^|J*>=)>#Ey`&;+jnC!x8lN5( z^0OzbgO=n0=-SYJU$6Sww=A%LdJ*P22)18@G>tRt56C%y7y~e3eFMu7snk1ORj5n9 zU&|P11_RJ}kq%Ol&Z0w_i*f70IOwA8#kL(dLCZ>t6(q#3K84F@)eDGrQM=_O<*X^X zV6!PqOR)C}^hc(l;({olVlXI0j8}mrmo|D=ffwR|DTvouD5|!k%uHH+f?gNk*uCZmz);O{zC-yd3`$S9%a{Sldz$k3SW8 zKXMTJ<3OvUuC;y0Fq)tbpu6UJk^EI zH=U|dmbm{iX#1z}>%IL$Z2sGp5+799w?!Ja6uxYL*|%ew%SFnP1o)InYhH0wJ@kL# zs4OxPV&>a3H&Y;1yJ)GFbfDGxMTGQ4>y5A4nQtSwzxjsGMyL`xhrKXEY& z{bPCP_t}&=VUtTImv%Q>(-E&VyJ%V3iL^E=_E8Xad%ozmo&6o+=P6hr+unuyg=`+_9s@2_ zW#jvs3T6L|W4+U9t3zRrM*MvS=6q_<zDck_Cv9{*v`iyIZLuUsr_O1#8*E!H=6^JI4-YK$@(jNdQ?g$h#- zyHF6l%xq!LL$#?RGUzgAg~|OPzXR0vKJR&2sv$OaVU~)&N{hV<*I(k-2ZKCbNXfBO z6uSiM<{oQ|MyJL5pV&yGQ!glYd5OJl$HQD}dif4QM4W@XCz>IQ?+zMiaiq{dM#e*k zZ(F^p=J$;QHmVlo7Fo8u6ZS_Rmwq~!H`1K{s7>k+G@faLjOoq0G??u@?Enq0(X480 zE&0tQS*OL%g${$>)ITQ2lpS=yG&G$bJa>b4Zd5FPf%q#Cnv-d(Y4#RupgP zmagu~E+Uu00_=5&;{G%Afb7&CnY@aoV&$Xt>=b3vw75y8j?*B2lrKi^I>vJ1!yI^P z(XuweTS2mp?T0^;>j`>XtOfQpcKSdJdN}1Rdf9X$*_OorV*gjgf`|rvDXX!T?qFN~8_)5h2 zUuVOhh~sNdHrH$a)>rQTH5cfD{2icL32Eu-ho`ncR7IhXHb|GMFq#~i*GARh0s(7o zJ^m%#lQs;%`_Ue8zMJN^C3BYHI!S0V(`{BGjPOQ(ywT1uk-;pQc_fJ|!T+7PmQ$&$ z7GtmOh>i#3z{E+YC2qG4PgNQO$^P(S=d<^=kHLQwYrX#3{imU~hm_{S^n}>U->!y< z7Cd||MO3pfdJb{#fkd%thF+3=Hv+0Y8H(Hr#n(u5$2_lkqJF{n?a2OBW251YQ=%-t zN!w}Y$xXWIrb4?6(8g~dOuP0DCH$3CroR-}>89*vINY$*CAP7rQRc5pSnyou1}P#5~FUTIBY743$^1tg*yppA-_<3m6n+<;XV?mu};RCF3#c@_OO1y>an&ita%` z!+2xU>31E~y82Uwzn49|WHpLuNs6fx5r08u@19<~J1-NT%$hG$Okq{Is4UT|#$|lU z0wF8}C2%P-7tj8DGz|EejYH;K{af6A2?ZT|@WO1ADw8^)oAbs>vu1vM|Mjw-*YW~m zy;ro^FE9N);-FMy^SiB8nWEA;s-F3{08~e^B1h z+Mil-wqrv)Ag+%p<*)WaKlT%EgYJ(LbMmj|VyUzeUArgf_?b5A->^cI^$?1DkZ%X| zErUxLx>~S~U!TH5)2QAKJ2pvx2&3rq*6-QVd?>3)3iuZ$Uu)9^t~nz~M!G|q0JwFLhsQ)Re4W+JfT>=2 z(S&G=f#x%1mI??Z8$Y%jK>OKJ0ITi9n|b~Yy*~T?KtS}@_-Ixc9QsPB{q%xW?$7t7 zk5T{)2g|jc=V7tVuK> z(nUe}0(dxqX;C^08tzc>4L`!3M z1%F|CAQH~4Sr-ojDT)a5H`xZ&*S$3?X9R(+0cIqF!-5Kv0KGLB9k4arWb{QUCaUB(xE#_ro6`0@B9Y5)z8!P&5v&2uQM zaLfj{=3C2)@_S|<4ww0fsO>C`X4%)eWV0WPc7J6we_iV{dSOK_!VCFcU-R$6B$3m-FRdp>mr09IxAQD5lE=Z)VaooE;{+0KI zoaDmkDOl>0ZfX;SSb|Rth2i&m;(g_=&6}Az5(~Hk6!$0|!rByK5nyC#6~R=ggEa92?@hBV(e46kdHleYQWker0bk<-s5pC z8)#?o8{Zf<+C;QJ>u1QjQ-l{jsan(DFoON+9<_8S4d2c5AjRx6)|E$m3_XJH?EM`o zZKgy)3x8)k&oJBS=~gY9nL4mNdQS6_XD^n{+OMW$<^uvC7_IvQ_&p7J4_};wzL)7BL8hkBoC4^2>X6eu$UL(r z;Zm=r$JiDZy`KKq$Y;UD`O6@i{$%|9OliK_H*6gPTsx9#_cq;D>$JB?fwJSAn;fj) zwB=UYjMOL6z5AaO_Q>_i-_jWUp*&r8GO2H(@VUxkK(s|sSzL3p)}AucU`Il?n(z2IFA_@~0z3GSw9 zB(m2z7AHggx&&gkKFz6KtR}&fAqtmU|48>hGqcb*?h>kV73)SZ(2IoNl3wW#WcqJ2 z@vG}3+p8z#HlGpO0sykJMvJ_8)96S`YJln3<5;jjkih*Ig{R)+F>9tqG zqWc;@txr&iC7!!f$$T{#G6Ar}JJ*%3f}jlYv0(H#f&p}#Ojk*+vZ;3tH!Bz+rbXS# zsY&`Khu$ZmoIw*XMZmlw=FX!}SFX~GLi1`c){<`xh_oc>#+5Vp?L+#(1s07qs#{2~ z4oioE90Nbe_|8Sj$BbY&DsHdUA26=a_e8`#9*wr=Y@gF@=k1Ax3?RpqcWDAIG#>T1 zTp??spPH6~qn9mgBRJX2l(AB^h(?ITB}r_+_jN1DUPtfy7fP04(|028vt4k?RH_=| z3^70M8AO^G@Nas)mebCvCB}Gp2TrIEoB69~&|5zkW=%jBg4GE!G;bJMO_qlgGN`$e z)MyUu_jL1mV<20>1)uE?9S^c*betS3y9&x3k#%a^aKmq}L5LY$NRzq#T)MBToRdaFbw#NFn6$CR)^Ew0zZ5Z!vfv&3}${ZVPoteAB-#Ha^-Dzp|9LW)OLp}#dvba!8t)q}n}hQ=ix`-^PB;0! zU7zKlSSQRITRqIdp{@y2^awFA+@mqW&}F4cz9`@q5N2tl)C@Gs&DyBZ%zd4Ah==>{ z4he+0qY|1_fh*R?Si_5<%F;pJ!1o-Yjs1c-`p8LvO6{B}3uy}XPzjKtPI#Ol3qRxP;X&p~OqZ77B~K7R6%8nmjCOk0E96d(IgdHjTWMPnFSg_RyJzhZgT zobbmAiuYQrVBznE3Nv6P<2@RkZjYDN49|kZw{OEzDYGMfm3|Y_U$R|S2&ogot)}mb zU(UFU5Pkjcks()VbxwCD8GeQRHalxNd{S^y@-^yl!A8?<=Km&&g%*qwt4Spbe*PLj zv75a_vWpFv11P#oc>a>Fp`_VM1R1?0`DqJeq&jKQ@=G}*PzHXO^v=rEQTeC2WZ3{v z^D(ltmhZbroo3BLnk+CK|2DGhr5ik;+={lMnv;rU2UE(PIh6i@RtaOzzyvmi$J~2MfvWVwo9c_u-hD-@{fh1Gl1zg{ zFAXnp=j;tcVrm2WVM9#BT|DXz*fLca4dV@JEj!*QQ-w){N_`t4-?Bcc9!i5lB}^d{ zrX6B#L}OEHK1xZ-8-yu%iBygCrcu8>Weoy&c-O6eilFZbD34DDJeHtda~nS*zS0I7?o>XmfOtuB@ZG3a?-<-L3~x-vi~OmNnI;(K=#P>7 zp*pIQAAmH}YCIIFS?G(h>8+Sij%gH0g#OWL;krXPBD{cneOO+trRfs>Cs9DuOWUoM|pr|v^6JM8(;`!EBZP?T2E6YRs11)i_ z2|@9+m1jSI+bNdfiR;DmP^5w(twC%x4o0(Ixd|WRzLvq0+Da*WdW}BF$X7z*kNPE@ zM>C)Bu*9efv@@m;BXe@3Bl>oyuJ}O2dY=eRYY?GV?bkZSCkMoVZQCn26~RZuvAh%r zfCHEeFepznY^NSM=oa6vg~VZLgOb%-k$h|f77OHp<=`O<%n+13Hzz_yu1?#1%3Ej9 z{?9E0<^pM;Of5Vq5dw3(lS!RY*K3vLH)_zgtmK-=B$tMTYd-$=D@bDXQ1a#=xeZuy zm9Rb|U4wl`85=7NYRB=Ini^_v-b#@XeHzJsDyQr(A@|l~&X|^cEEDKAPHUjy)_NQM znJW6O{Pk10xyE&P7LqeaqVI{qdulht)3wUSWk<(5$bBvggr4G>v?BhpuXR*!&kKp6 z*eCe!H-qoa+|~J)suMs@ej!L9L6f)DpJ0xJ1>x@oor>DQKifleRn=kDNHK0|AyswC z(Rko?8_O%w+^Cxfx27t+`t^a+dWZ{?w`pPN7~^{LzpNo0%j@hDr#ei*$=x{dPp9mx zBjUU>dT$3gL}xmr-0P?5Ern0 z)XfSn$pOP8fhUnwUXb8ft;*-2jQ{#9pzUaKHjzPf|Y zWs~L;cmo9mp{A)M5A-$ztN7P+$tyv=$2eapgOjP%Anzwq<(JQC+YoJZysb3*Bd4!$ z(!+C)QGL_%r}qSq`~nxSBl}T4A$~D4G%w(Rt|N}o@cBt!od$=O~CrQ6?2`b37A7e?ueJ3bPSsLK;3d13<7Sw2;RjU8E1SgjTg=TPbdb4)BI1r>5eLd*B-b`oQqc{1QiPn<|AL{!%=WUuy&}I z!05qUOpJ*`^j*kcGh*;RUrp#6nRb+3J3>x`w)SKP%<;VGX`ec$TPs<@5A|!>u9j4a zq}cMeOaKd3N<~7UHrR&L<=qr2Kp+YP?8wru$zIGai-xo$ zBb{yL+dY= zb~(}PiRRYn&AF(DeB5m{ab0c~HzKn#5WJMM+3>nCv)SB5lM^P;mrD~rqoc$aadS}i zLu*7y2Q{53jmo&}vvXUW5u0qQ%=|DDY5^Khc~u{aZqW=bE605#!DU9<>Kkv{ z9WVp%XsqKc(Ne)eST^ofNHxf{+WvUhNoWouF=b38U(5k1u~z35l;^FiygsLEolyxv zLP84p+g(1oyHPs_=e7r2hu%b~Uzc-{V$yIWj2e?kKFZNlsR6MdrB*_Ghgsxj^6bmP ze%QMs#|e>R7g3XJ58f%JPlTt>=3l1PThV+{%vfj3$ey`DjWyAfy}w^6=NBvIwfUHH zyGr}ReR)HjiTSh-Y`i;c?)~AJ+%_5VhMV{*jQEGh^J1YrQ@=mMBE7tv!#j zADU5+x|gwm$yX|HHC-T13dKR47~C!B+(XLal7t6c3oz{4UdeQm9I*;|%|=|GH#$`1 zO4Nc&W*0O#@!;i?4RctUUV=&gToiqQ37f!Xc#D0-$1>1jm5jfw7hm~O8uge|CZp|R zpV$pBRu)rl1N!O4Bw#{`y`(v01K_{Plp-RUo<(wNc^t$i=;Y&L!QLxh96^+NESppFU_|QE(gU586gQ(A|NSjp zkeIv2LjNWI@xr~wKZ^lsjU<{N6;ysCyJObS^<=0pk>9df9P3D8$kU81>j@=oh1#em z3ovm!V&!OiFWyYAA=%L)8@#-nUIKkyLe8oANvSlRSmw2(BOFnd{yBs9=40|oxrvWe z$K3z~c*+;~^n|Vb^1ex~RVMwQ0?R3ePuYhts9lHA_NpSp=J}6bn(g${?*A?@2An!R z&)u2ap1m{fG>H`GBEQsO|6NmY4ji!q2yCi~cMUUp#l7cl?iyv}s9JjTkH#gL_qZqV z=GsQO4mPyc&c)oaBpt^Lb_k)4HcBMEgq+!S5eA&d++#74gwcX+$<)xj=NyfGO8Jr) zo1}&M+e!19tT&c9u+8f2qo#|#EFQc*0x1_dT(IPYpfFxJy`3Ovq!q`F;N>V<$&n`L z&*bH4Y3^uQ?ynm|bY1}1=Du5`QAA`%*zeB27th?>M;<+QKh5uOh?L{ruW;S58L*PG z`y=Ohb0k~teo0P8VzCjp|8?2-$=1-$f%7iEs0h}GZcmNj;XD-P`Tc@C>dCN*Ct-wl zVeVblzACak9!!^Q!W*@L91h=D9Xib&cBAyaN?*9}xfLoX4)d2u^{0rGTQ&^dT^Yk7 zhDdZTtP!F27RSXv)K|a;`G0mcn&+`XCDUO;V%h2msnrQ4n`oOSVyFg_f7Mu%L$x((;WKK{Xme3meTl@kkaz3Z$OEJP7aO6Q#@aW}tCyeA z44W*jJS+MBBaO?4{@3bBNk)}bmh6$7MQ?hOd#D~1h)+|CHm$OIOu%@l3*5p6^Npn{`-_Yb%c(|FB z7wHP^Lr7n zzpmbcCo0>M_0(Blt}(c>tfd%9ay|GQmEHHa$l^8U*v8sRg)PVSZKp3Sb4T}Fk3e92 ze>8-O<5toX77u_Kl;!4Iu|tVW^fKnw((6O9oZJ#jZ1{~45Jb07jG`Ym5=RDfaCriF z5Cnn%%9F9~24vE1KkRj+!FZSk2=0dfk&FQbegKLGiNGk#l(19%yrOs}s9E?ST1qRC zflD_{UXMi_&md|A4}M-5xAZJ{bFkz&Dt;w80CZOJ`Nr`Ia~u^Tt$wSddNX8!@-p~M z?%_hGz^cr*`7(8&jK+Z%% z+&~eX$P;R9tdFWCG8!>*pwULc<3k&|w`pejgC+!K0aN*dktN;NS0bgCNwT0VxqaX^ z2+#s!W2^vtJd2Hw%FcYYokcFfDqxH`KPQAjaEf5}V815M0d>Zjcj+cF$E;4Emt!Hi z1ri2}eA5A-r04<6*3-tBP+(DBl3-(@-)UJ0dA4GSH5;a%F*h4fp|r35poQ%>(V{q8 zz6WL}aDhMYu92QVA+;Y5)|Hecb9(JwjPBmZloR>Cq z)7q7{uvaiKJfLK#&H|`-yVrE~m=*D$YrT+u5QGbhcvf_Jwqd4lpM%dtVUCS2+q_!X?xnQc$ z$HCpk%|q)4J0XOpdKPW_mp#X#sVOuXQm!P>()e23mQZ;K<|f~-&Phluu7#xg5DZ{B z<4kGaO!nv--@UahZ-2p|$J0tDtRmN@!$^hI*4Kc4*R`17SfAy(FCL=CYmj6d`({KL zWh7%Up`bRGAyoDboI}OkyC>MWWF|=^XYu&-AAF9$Q!RC28Gl>&`fG6Kf_1;szwO-I zM>KD&wu2oq=4}IQNHtpwWUzqY$23Eh#YB@icOqRnb&kcc?e?Zm11ZXWyd7k`SfRG` zWN*Tdcdf2E3xyW0sefC-wW9LXekz12|K`&r8x0|o`E$1y-!%@||90T#Zr3z4oDJVl zF?RI03=ZFmY?=DO0kT#NKYjO%e&*nl`+fCVyFohbd$v5jvqWe!s!mI?>6JZ0Och76{fkYvi~2VNKN4aMNxQles6Ve_*b zGeiC&QH3-|_GCFnY!DM>CBrJQQQ{r?ukOR2lY3;C`FbpdK(wCyWN?{i3a-1h$0pYz zF7jU53Hw>Sjluk#J6CDc@>6-pW%-l(?3yM^o%)0>;ptlq1+YC%g~}!AI+YE9(qb z6}60AIYtRXgZZOUBr($sR(Yc*%CC*Z;vAvfCTL;U9{rM=3kE67()VoswVj%@hj=xUxVB9-Wv2!;! zNA;0hU+7saU{eCj&1A8zqU*%78hlg*BEiholxm=wWjGKiX`l_U_%NnUfnk75sBgHC>8WS?lH#v-V1vH-BV1dVE;f{tGqU<`1r* zC=sg5+FVRFyd(Hw-Q3W-h>KEj4MaCub=OBz%s|(oCN*uA@B01a!YuQiIVw27`x64C zyc&+gt`>kK8w3IH%PUFh{{Yy=J;J2;t!6TQFo^O)r&->+GIZ=Jm$xj-6?HIM#9_RnqCJ|fj3Z5?lVlMm z(c-;w&}L&+k1**n_d2acx7hQIG#0SzwXG&(1ooCwseOHd($#BZ8DX&!)25ipBc9h}`=L5V)uEtQexQ;1J&V2g z(g}vtUcoXWY{BjwpH_v!eK`wL-)zpFSV@zT`|n*nq`uy#J|ZOJNqd>;+ZFeA9Pskd zWgh(H@2Qi?k)mr3FP$R`zylMHomwBXpM4+xaHr+vhW=l<{TW2iXXbp?dt+`-2%#_q z3?clhQn!VS?6xJnFH_rGZaii3(7KvyC$1v#g2cq5<~t_n^vFt0k$?xbf{Wu|CzXVB z%&a<}7p3mdT8110oZn;6;f&~Kd4GF0vmbiCZX+n3JfB6o^20e(n0|}Xz|2H`*7(jZ z!8FNNv;3Q>zCT?SG`(r}-Ob)p;8sF7{XP;x3yQOLi=uw)Ke5af-?Gw-WL{(i5>;!3 zG%zUL_l2xlEPIuYp$8w(Xo{@~BbZwuq0kQ;uumvdx_|L1LrkQn>vW%cJJ0p|=-yfPQ@ZdO`uuJ;Y`NcAjJC4t!qN1?gV?F}b@4@~) zneeP5LG(zE-UVmd!>U?9=yfl#mgr>#v6Z*UMnD@a&pFK5s~O^dJ?W$nY6a zqT4z5LZhQm6yWM`r4r=;F%XG+p(3tk#@e3K2fR15ZOH zZhrJrG?DjWTk{{==rEt+qM7trmljNA^TwF*hitoDduUS(BY~B*%N)|jixoir#tsF4 zN_IbUIG@(OD%FFxIGmdDd^&`kG}~{Imr$(Q4(w{y;xn6Sq7GSSH~L7*B8i7x@IcYR z&`_CI2#H?b`oHJgBnQOd!(MTla)H-}Uu#wUI0~MK#Y&o-kts>O_zrcEe5JlMLCM$l zn=_?N|J!X_`GXrii+OHQWFiy&1`j|uxcG)?=lgsS<@!40o!%XKXlFAjGKfY1l|=u8 zJ|ixS{*xZh=FrZ1yncr)6)cW)dpT2VCk%UaP z;_3;CF_2CBxG#uBD|quMN3JgsXBGZCOR=^25`&C{{t;SEtp3OUX2zDcD1 z?Q(}npw+n~#pzYl`Yp3L)5s|*-1pw98?iI@cndC&Voem6FT)~+^89bFKAiKsc=3Pg{xp#$QQUhHuY*ACPvW1EJ)qtYMnR9 zfsDPgV~JE3oT(P0uD(f#fA2@#v45e;)L^&C#r4xE|Qf@IibAW2;WdEr~CTwr~a8Kc75u+&ybi1 zX#1*F{xc*A`!!;l3jclaW8Y{%3;OMZ(>78Ac?m`1$%``qqpdyw-5PT~u?At}f5{ph zpzWx(PHERYNH!4vO$NjC!Oy3)si6MgcwxED5*PO~Ee91=Z4t;kBPVV-5opMnt*zUQ znjvUsgo)7r$BM62kE98Fm9G3UWWbwp?X0}UEkVfw-a9;#GF>?-M$2FlyV8+Cb1sqo zM)i(+;OLoA`M<$(cXzbJ&EYiB=*@+x zj4rk269(^_MT_rX=%*Ed>F#t8j{X3JXPqw&ed3lDSC6`SdnWxtp8w`J&Ul92q5&f8 z$X3r^K0}{Apm}IV2K>qh>-)O$HD;G{?K?~NAgDFn&%SCMVbt9(SxMsuly9sDbPq8b z9{QNub3$I<=={&wFDp?4$$xq0C%UWcG&Y})dzEc8NCY6u4@Nq%=JrxcB17k*@FK?&{BX_g21DfBLmA`|g*c?}KkQ zw=t8VD2&(X*}HBm0Q%(=MNAYR_GnMhmEQnCeLUGv zn%=sL`H|E9Ai4kLZ#lghIdlwkBZ_X|q0;!RJ9x^I2TiXdz-st~T|BiS{aP67M-RlpGs+48u+7yXm$v7s zkm`D^7L+Lt^hYwOSsdlD-1cBgnTeVVV_g_Vto&#B(<&G^rn@=dQe@VP^c8+;A#(9@=^0P`y`O1JN>i zvOTdzM6spUVp3{^(jkE<@9GeVSVSV4W&sW?2_a^H40>lcoIYb&5%FnHaOr|P@tFKr z5%EwVl8gTOj5D_Z$VV_2@uu@JeROKy9LvvYAG?ZF2DJo>ix^MsgwJXQ14(H$m<)z7 z=IEsK7`CL3p7dFxiC4%$m7T=IDc8hf_^Kj;_kI>na@O=z=JlQ|3HGdn)-2wA*QmX8 zf&KKo%kV7Oo@_}a1nMVTNGa>OQu=In`dm11s+;K%8WDa>87P1_tD}$NLmce#h00iT zjXr)t$bs=bg0$Tu%QSknBbB}uk2xVod8UmCJwPZS!ljbbZ4i4xtZd1MPu&@?w#>Ee ztQa90y@f>H9wI*laSKjV7tW4i&y)R`q@B?Td;(m$1eqJR-VJds(gZ+$q!t|>Y8SC8z#ewiP1h?k`$FFb%nKwc> zAK{viL%yCvI}KO$$fci=>P3_f??riIDwqO&r!A-wlJb7vFWcXvXD-NOA?5KzAb#4E zRbvuGg_DJKX$q7w#J#dMMpF``@---`HgvKXy)tI^3(!g#Fy884KdSj|I_Oe-uN^Pam{QIRR>=^?0 zYduo3)hP1?l``Tk@)&fopwZb{2L-B@`9FWw*4-~W`S ziOA4HJYtI`#axf5yza37n039#L79KTqoztOE&r6U@)t={jr6syer+!!C!!=F0N&;e zeP9 zj=e5DRv3{!)k0eZ$5dCe<9tC(Es*!*&vfZ2eV89iwX#IF1_?JW95hk+G`s;GC!lE# z>dRD>oA=;VTubR|nCgVJs`g(Q0}%};5xBN->Y|?+dxh<)Db@RzB6%N`nv{GpHaQ-P zeQs2;E7`Dp3Y53*)V1#ZBB%MC7p~hu@w+u)irhpG5iu3@L%FC!i9bw;)+1j|FuPGyG`A5d zGZQSCMM5%rsXq6Cd7q)PdRRpp_PjG*6gCr5Uo3Dm3hOn>TrM^&CA~OU%)r3fO%i%2 zq&tp(^=!c(lN#CV3v@DsIXk*^TS_DU$IyBBL;c5b{Cnqc_Bngi-5J@=CL_m@ z?QB`e$|i)QI_~JKvO-~B^UtQam z-zbkXz5dp|d0GokZWh>S;-9Ps)zrrpTC!sdP?hZVG0(6dvm8*5{f%t8AwD7v6YCJn zE5_T_o z$2MK+NcCI4w#}sC-P5-9w(9+b?vEqgxh605lB?@4zdfGsMw)VJ^V8p}XO6|||BCKt zNv;}37WEs}`|0;QZ0--Uv zr(YZ{!ijSa}4iZNHE|FqK!|ox!s= z@u7+o36@9VrKt9j<*f{h3mM`6YA*LL5F|=PIx4h{DtQ~;_2oaU8y>i!y%}Tr=HD1a zUm8{_4LkhtA}$s!d4Jk5iM@dFOGG!48Ezk3za;S9(7;I-kOCUbt;<^ftNfTW`>IUiWsjEG&6>d#K>sc)>R( zJY90#j!(!pTI6n{HmsSIzKs=VHsAHbeP8RQxS4T+1<3%egYu5RF%?#Od zrwID<{?|shByQ~MznCxbgXYb&07GgWBB1WN*20gao*5SyHvqs64qz7#VJin5)B{er za}YL+`^q6eIS`^AvRpi(y8*heawv5Dhz4^+w+cF^1ISX3(9|Od>Iz8l1^5#BSPXZ3 z2>}yx0|S&}0DTO;ajbIj?bZE5;<^|YWtTf1Ad8QvRuQ+=;p31<&C-~l*>_=F3{+8vhuVEj; zzNeL^h{J_m4Ud$Y4Vc_LfJrrov4Jj-57Qk^z1W8lzJqxe#wUpQy>5C|Ue~tbz)thc7N3iNF0L6MO{jIjVd7m$v6f@;XfWG0gJwvBt!a z(Ul+IhLfIGKWyB7ZZdzIx;wyxBr`41ZRj(Gv44G5HP=qP%hRzbcEF=^a}j~-x_Y>2G#RCYr|wrY7T*yLBmSkNj~k?)?L900i6s;dNpG<_p+diW>$B@LwiY z;!wSDv^=hYTRm|GsSwqmos}X&537)AuF@@vUeXi5v_57VDQW_Ufl2|y)H~f|2>qjG z(ycX00{EgkbMyfc!o>2}n0Roqk}9S57iddDOMNV&YjWi(m7IB5=habw^5+IFwdPNE z#|zl+Imf5+^Oa%~_guU0o!cD*ql#r+=$L58PaF=`x|@CY!p~F{z7V@@K);V4R@;v; zX!!3PUkdjbEm4jvhzgg$mRDVS8*w?L?)`HPs+8-=9VfSk3&^YGo$Xd_MtN$%7fj{D zZU$!X)8Egk&8P^79hHbom1(Kw)`PzanmOe@tNDJ*vdEa!UA=JRFAs|P?7Ay*nmIc% z@Zvi4ems#uI6q$VO(+u0Lx8SZ6oZ+R3>zB#UY1FLkpXPy#Rt5Lm^2Cv`2_lpr0RW>w`Sdz}{E;0C&8QvpG@PvcfR$`nU zsXj*!`iN}Ch1PYJ=ShAy=Ca3DBEJAzvYoZv3pLf~FI(m?8#hb2o}ZeA7llu6*fcoZ3*ZLmqF}T zk4In%?;zy!&_9jW=FQ_>`&8HJSN(G2(1r`>9K+-M=E*Lxn)f|z%p%Oz@#xzj7((~Q z6NNv(0K_#9Kj>fyQwkNI30dN%!_ zCsJg4(>tBwpzBlSjo zJ*9fT8^sQQP35ZQe>N|es0!ZcXus-wTOqM6S2(zbxOe@))%yn5s7(_djYyG6GN|gXogvg5E88I8>mg0+^J&kY*R{RF#rb z$K!a8bFVq;H#lI}r~u-7;?=0Qrnr2IOA?6jQ3Q{6ekp=h)*+V3>Hv(0pSYE7{ght% z5`65Xoc$Kf(y4d`rfGIqzuaT;EK58MeBdUxbR$o<*eAP^9VTZtnu$8IB4I_q$=A;= z_WUf-p|#qCIc+l^0kDVkd9*C`^BMk^Td|vmM2U}$T(l=p1+DvN&uR9-@f3$lp&J&L z_U_J^q;P2S*R8}$72f!gmYFZIO9>@9z4%Ibtw=lwxJ-~<(}TjVq8v?SXaSu>UJp{p z_E*iXz7soQQ&-SpKJah}B0!5IJN{I-@-q+m7G5m(j~9Jq^_!m5r>*C0&R)ug{>v@S zdRO?%#89nNUE5S`XslKv)boBb0F}U{e*=|?#G80BaBlbVb+6FMl0cgN2XS}6E6?TY zE3|xP!GPLSyo5wz@bJrSZWI1u95jgolr&^C;4N9W{&SvUW0kZ4oIWP|iq238k zq^^Y0zPYGS?IFc~$@({MV~ZH}*#jgQvr<1wBqLc%^bG|mp7RnYtXa6PNq|>J-E7@^ zMBu9LwIkh%&h_T<$iu*(jnFBG`pio@hBQkmT-*`bRGF5Z6Z%=9z5*q}<7*kHAS%vY zm-n%w!i7e#S75nH@)#8EYbl|hD7l+5<;brAb)@etVcSfvLu~;XX0UfWZ>(P_tyE*6 z8g7KM6@)r0fHmMeT596>`6DSSW3|XMm)LReiLIfd)_3{ex3=@*<5X~^W<5lQ%R|~@Rjl-ZYI#{mtdqxuU-~aCYJ;qQh`2N%W~4v4#A9@+mwTq& zXZoCKtD?#RY$a&in9k)--3uYEE#zOyp(~ftl7se=;OSqj2Ds z2YFHCsWc;@&;0U8W&@epYqF@su6GHDO}s)ba=-s6QlsmzZZE#S!ofZzP%1R-FYW99{$9NI+vbJS{QQQU zumZs8V|q@e!1dBi-%jz}`Iz{-StRHuj)GXO%8wkmTERpkb~IKbuH`YkCty?g+#9xO z5H?>@`pbFcx&|9}4`vX=&KkNOBP_B4?Zyzcw|iGOeXm~8{QM^>e033hugUbGYmoRJ z@b_MdoRe!xg@u6MG`}a;6E!voR`+jRgFg|~-ppb?r$^oO`A0clGc8ijT3tpi>8gDl z!4YKGYlpp>OP;6z({3BVLD48?2l5@vZ@UD={GZJ?!_r~ybBUeQ9}cP#Rt#1+>D3%^ zx|9Qk$$J(Y*^e)fuLQA#gb*&+yrnlH--nly>GnoqSxCTJDQ6H6l=Air&>>2}kn|FU zMf7TeAQn1Vqx`Lq#;yN`;=eASSXez5s1=oUfMz244M;k9Mv*k5r_+R!nZBIxsknjf zS#pFg4^T<&F63YeP#*1I)h8*lPCwT5t@`3vl}m%UK3{j!8hS|ss)*|%Y=N85)!mDMGF`um$QE0(d8fg~sqQ#vtCwg~wkYy^XyKqTZH-zfRUrInGayl43vNEf>gp=uS%f zqSqs?Bm03>t&&C!N24U(2eHx86|B9SOEMo}`w3O=c4HIN=sEgLHl9{5K9w+C?<@Gr z#G^!#eug2D@T^cU3J)d>s*2;mq9OWXh`4*!U@;sRm8;*d@cLe|zBsJI&NI&0RKFc+ zAnrzE$7}!?zV~SEmFm=$@+8;+c)Jzdpx?Ua6J0q$Jw;8u2!vh`F;2t{&2I?08Y->- z?ky!}y1>(HlHi^7s2(2p~B-L@?}EY%`Jsh6%9Y^Mw?n`fqB|1f?1H_R&Q| z4Ws+|i4+51%OD`1CSTXO?x4u)a|zF`6{9k6J)fpD9Xqo|NNE* z@;XQJnnxSmz#h}D^92nGI*sg9lv5nraj&Hvx6e9Vf2Sa6V3%Sd`?dTa)a@y^(gp&xUn5 z=0is~J4U8eNBc|(untgaa{i*K9j6)n4Ur`Fes+p@IKN z?_wYQIq#IvHddvn7p+FnJ~rd;WyqQ=dN#+!&ox51c9qS9)FCWIA~1CmlKXCcHMi+Wzv>SvHYb-Q;A^L_88Odbqpp`yZ!u5?68G(sMV@|Q7 z@-xq=ho~V!nhH-iW)K2=@&GEN^u=aPiM+Ux(xI_FQruw)C8hH1Gf@Yr;GA<$Ky-h zT`kdgxKOVC524k0mF$MUzu0*B2?<6p!6^|g>rCxpp$F22iM$i3pg_}jPZ3(Wh-3SQ3#vD;T(Vh$02VF|i>40MixAzCSOK*eDrbna z>&wIjW>fe=H65KFx zSg4{nja24bg$Xp;mgInSa#+`Q@LXutchdEuFm@SDhf_TBafMi8Nx{`~3#qrxoO5dLy zCynMRHz>4?bDJ9F%Y4ibY4Fe=dj5n2waNK8X!1La=Vq5sK-c`a{6dYdod3M*G7NmG z-A$U-BkxQr5Gy|<7=C&!#HjgXS^N3&x3Zz;T6;Q~u>uhTyJp=k+Rsd5IOzbhS!oBL z&4#F~m$>rqr}Cm%i?L6*C4Z&EQqx<$CBD=$eApM2^^+3nd*{Zgt6$fd{yx1LA96Vn z_y}>IU0JbQz;qtNpM# zm&z&`tq^iAd0HSzhIfIOi`gk#7HVC-u(=8e{FFGTzq{nB;zO~?qTJWFxf(xh=Wx#9 z?`LZaqGw_k{*h#7O2&W$R`DTDLD`2Ug^pmaJhZ?gG{a4 zJthOezPQpG#B0iuPM%8r?$To) znEPkK$I2FUVO|e?aGxcEW*vS`|I}K<=?`m_fckG2QIlohVRHrtj(;#cpz60^5^0BL_)k`xpaGHGCnJseo;^dV=zhX<=vN)H@m7q>% zvbEW+fiK1$7j!?j=kWXw=jg~3Chd4YoiYgPSF2UNjv=ZIiMFgZrU3;;`iuP^8YzD8 zEBb`C-Dm?S*Y!_RrUoJg23Ki68!8WfNpP27br#&8PWWfDsXf+F=dj{ryXW1M!8^`W zQg9=p?MU|V{TQu^u;AaWzNd9_r`}ctsVebN!pg9Cnz4V?K<_Vi!dyyRT8^L7Z#4^j-6)K*lIYn{z$PsC51+!pZ=y~v1r%Ub!2l>2;6 z)zNpz&h4;twN3EyyN=DHsFwV0erkzKm}|xFB>Uro&MKL!ST=`X!fZ1`y)^sV2+tk; zkp1@v(kI`~5qCw`rkZik=L-k%hh8?{kKfx=_x-tQVJX>fX62&C+cg_D^>j5nJM6A) z>fSFp-ryrw=1Ptq$gxIo>U@!dpL&p+tc4$h=*`;vBX3GH`75^Qzd>k!)tRXw);t1G zi>2}5`ouxv{LECBJv0}w5Hz7*|DP%M#eR3TWsJrSg5@xcZDOKsutW{4ki+`X{KT-m9;^%lx2*FzaQ~ zKz~>J&*|(d>=f%?YaQ~V?~YVeGc8}mKH5(6NBc?Be3Zr#=E&Nw`HOzj&bMAnf4!ju z?NT1oRsGd15S3ZD!73us0YKbNB z>FCtAJRsx-^VCGEQqBF&&jy$tF70!G=p{1pCLr_iri;a>8hfZufHzRy|`}nJcI2Off>ky8}EH#Dbf+*7x zoRYZ0`XVr%QQ+K~2)Mo5WL8yKY-?HLP8H~A-pOO}WCC93#Ec#Ec+r#ho{A`iQYzEe zUXeJ(u;Jp1Ap8v~z{wg(1^^mbCSK{CQnxg4Jbms(rNNqOg*5bVq$zrE1q9GBbIS6% z)sOaG_J(|vs4OoOH_ip}{kETdDgE60kV7u$OzmiW_`0lT9lMC`CWU=Dp-l|Q4>Y|F z=8HOAA-=x32}F=m4*$@pejn zV>8??!ArO86{A38dln_2K8^t>J?CNznv20ac$E@nJw(B7v0mUCtteWS5IVd!8>uyo zCNDkW3q&nLg+jw7T@UjEJO^L_%}*@{0{zG!a$rcMya*5{t}2RQv%Djkea)|3G>55S zeNmt4)(8P|xl*rX=+{qsQ%p@*i3Sn3#1a$un;4XwB57&WaS+Xx*J*IDPz%L!edZGG z-a~jFg#8zb(i7`z%A!xKA&h-9I?l1mAFoBuJ>k}l=nsU$<0PA(AzyW~>P z>=ZH|{a2>#a{*tSu83Jhy3x&Y&&f8?mW4FQpbL-z{*x(_UEL8$&RALt7C+p*9Z=d9 znO2cKgq+ISVpD=a4~qjPOR5cIbIgxvThlu;GY=LW{8k(QtX`T6ZNn40IPf(uz3Wu& zASj+5?XfaTLS}5u)|?|vz9;3iJK%hH%vJzM^_|ExKS+h9>|FvMg#w|@<Bi_ITDQ7{q$e&J+~8YX<*RycI5N6RF?GvMzFH3=cOJqp{RY)ERyJPxEB*?!USd zLCfp^bSL>e_n*wth zc*w&dJ`$tw(|3zI^4z(2&xl6Fg7-e)&T2yn^HfQRa-X@WM>b#gB>^9<2_u@K`Ji*X zGC-8wfA%hlvx%5wg>6W(<7ANhXa~FNa@Ek!BO|RKJWaFA8>BUlgmgAlyUh#qAo4&DCBii)aE?#i@wNpB^x*+CsD^ zP2Q{{O1H(b8_k2rd0U=XIaaLkC%EBJV}Iv{OGDnr=?uxb$gx1Ury1>bG506H93A%< zp?6t_Z$hm`>A!O|A}?Jh$yPenfeiW)Q0g<4E9|;$DF5FHmmiMvsnTgvp@#aFCu%M> z_qGoj;7wt$S^+1vl4+IeeVF|yL-u zEv+7DJB67sl??C((vLw3thOK*$wGVKPcPRlwXybX-d7zcBc1}0C_J$__xBP|L`efI z3N@Ml(TjWAOoqr9Voc5@V1CbLxmTS%EFozG1_lv&Q7$N}4~6Gi#sMw640DZVk_r1v z7J}ZEeFCSECJ^E2!_{tX$rW09z%>~K6gr9(|1o_fnvTfalCdR7EfR3I+CCdE7}XiW zHe`)rXc`!@2EPi?5pU-_?yTDj&*^A3C{ORqD8dY$&JgljU&#?uyxgIVtd>^j2lBB@ zb}QhVN4SQnDQQ3&3;Q>(bNh5-C&n5L`w53ANIR#<3YEA`ZyLAAx(9x`KPaNXH5rI2 zc0A!Py748n?Hw(qt^<`}78u>8MlDYp%;-0Q-J9D6s_z^+zaCMH)iqE^mq+iSNFNTjGeuFRaWwgP^mv~~f&LaU@`b`+#-RIGg(VYsUP<4>(uv2GCE&k~R8KY{cw)FWM`-PqbKE-A-uRnf0KwLk_HG$^4$g7aY$CR_*xvLx6(YLzEqsJM$zLQm!4ZsHe*jtP(|%^Rq-XS_W6Ph@AO{~!!IaHwRe1VQaHg3(>-r| z%Cg0QYlhxLVYhp-Ce-f`sol+9ekbCGQb~e+Qc-Kv#H{dPFSIh$DAFMLbqxAU7TUV=Cy;HvMhY?qxN(Whn z0raTO1D5>-LmB7`>f7w&{J)*Y1^b4#uDnXahLxJDVho$@`(jyZ5ShI%OdI%S(7mAv5yUeK= z8}75;;D{Xak<|0%5$Qlb2zmChmi>nbwihfx_?d!*y<9T7v$EE{b^Pi9q3|vuK~`xp z5L?861@6y=GrNT%mN2snW;(=HhM|bu9{zkh7)tzu2Hs-mSa&az?yE0CC`Bq9ydjC z1a=K&tbl@c?QVtiZtlLgMXQ@lbPajJazUZ*!qh6(d4R@mAb`xk4AJo`OyGOs@<;;2 z6<#Rp9dD1*7tt*iF3%8kEr#o03eNy`5*&y^>7Eb^Lr|CYbYN*ymm)Y_ce4&<=rY># zYWf&=3@>stn*U2;qFDlEZvK&kl>$U*p<}_N8Xb{ z1HlGFWR@r(?a1$wu0AKQVaCg!+r!Ywd$7fo@y7!ir0Bl;#FSD2*HgfY8%-Bvw`=`#67pLHXC1WlEX99K4mt=47$w=c8o-l7*+`V zPE|QiN8DvWrvd}r2<_)ciJ5sc#%w!UW>2I|ONxj7taRPmh&mO;7E{0KFegPTKqTRi z!(FRhGv7Fd8^(<;H-EZ#2s-7q&o?e5`98n)u}AQ4>~nJk;w%Gps+ljs=V4<_ZUDu3 zeTb>RmOftcVW4Z}e_T8vk`S)c4I5;kj^Isww+#(RNFl%5 z=7XUyC^8U{sF6nzI<_RYv<&^qKh&vm3Lb(O?*XBoy?wlPXvx0K>qzWH({ zmb6CrtC$%{u3$pPnOfeY@@iG&?F~KZEsF$iJEZ7eBk4!RQ7h8RGotFgRxx6$Wg(LN zlIAWsPB+LkZz>MC7Gv_9<@kx&lI24z)w+gGNyI#_EN_$gmsroM0qQ2|@(kUSi{)VQ z^VUAA2&o}scAHz3pK8A76b6{IZE?##pC4T4ib-$3|G4z!Hgl1o$84EB6x!MSz2j7R zVr}E4WNBemMYlPTrILSCxpw7`wby!;i2jsQUbe`_w{f5K58qOT8=zVD=XIt@{_4y6 zrRm{jeM%oMVl|B-YQ_SY6UT26$8YowM&}}wdY6_1hjcAo?48fX^_Fyt18O&aG4Eka zE6TYcG%`BGw3O&k9e4La-rZXq4hWq@p7hZVkSaB{e{&)K7 zFqY@|xuDYztKsuUy!x{woOCK>1~R*@Ad9|Ae$hYv!e5r7bOvasiEw* z5q-ecvpfazn}os+b6E|dab@ZIj_CJxlxopptJC7IUdj^xrWGW#Bx>N;2eD%5ck-N+ zWyaStIGF+f>Z?O}UQ@XLw<;*wXn{95XHKRBY!3lPS+0-0P!~0NzWmH8C?q7LSJmDm zct!?T-wsJ!I65^z(Z>ndHEIah^YT*rZi~Bw^`lcyWwqHxCeeFNaftOQT9^DrN&0QJ zXZw@?4V^lA!aqF5q*=-6Z8ya>+y+UH>NgBsYffDn_dIBNq#hQ%x?iQl1sW7qt2HfHCaCv~XAlSw`dS{GCfyzuo#vf#Hx>!)EMht8MZHsK!eNqt#L`_M^p4yo4ZnCB^I)Z#k9CJ5bN}X&y~4JY9F2 zTe#e*x-K{9lOYr2l%1#;)aSzUQ02q*Go!wvb@^Eb1_aF!?m9%AeB;I?6^t~)B|Xe z`=u!8feWUl&s^!l1vI5lo^`B_cCCiSdt!{$h`puu=MLTRi5&+BA8ImTb*gmL!3g*H z`X_uGgH$VSqJ-(46SLE|XPOLAcPB56jDdOQJcHx$S^C$UfBw#pyeX_?*z&D9DFQA9 zfj`(Y94XaNYq<7$=Bhv#ch2YgIX~ijKYemFkf)ndl&YpRP~^Q_@bt7_`GZ|1!dg)H zwau=4gj3mZD6e~PTX4YZVr7-C*vSFEfoq$r8R~Uc>?2s6BG%XH?^avEf{VNRf9Yy8 z>#3gTMP_|9@ckq2+^g>7$3#`{+2oxSdx25g@k002@s=3rg*8cpq~aj_oxZBH8|z+8 zuj3~MRCMX}ejWe5h9RkwF7_$j`~6f=E>iBMnv7ei3;kudH0)&?mFd>8X8;w;(hTl zJh!0v%}LUYuxTLpN$wvGW!={&hgeh9oMuJjt9Gn|>Many*50Bxl!K2Kt0_CrFOnzr zZYOnlA$;>`zSLgo;Z6D}QPvz@wGM9QJpSr zK(_t$&$YuT?n`~bMb}-!sEPa1kbvCSMo!yO+lTDW{in$dsLJRzn2MfwT(y0A&2>xh z+>nP?E%F}v9D@Pd?8;kDdu2*{b+F%3Svx}Id9+Js7H)m;Oeo zMeh*Lo)Zf3(Cx)%F_;f((iJzwS^8KP8-0GATid&Qe&s-jcWDd({ZEn;8i%`;cM}~F z;@Dr1H>a<09AsV^=oq20=(kG?yY11H!L2^Y}D~978S#!K0t|2zW)4b;;eJ3=+`IR@M~=k z{;n>-)>QFTL+issKmQH?G=i0+3YJ*NN9j*%`s?&fEcQ3r9AtktiNOE*z*i@h22#I^ z9*he>GAr2pxw~x*(IGO@;@vO=dUi1zH5?MKVL=*XsinK?C$k%InTDk!_?1GY0q7kV zsF#5g=SWUlXBNnjnQL}`7wB!4qw1o2qXdG7ztDQ{A41$l9AB(|X%C>#kXg$FL8dtI zCkWb1j(YEzycw!Hf!^}lY!k82LQ=ECB zh)S6#xTvw9%}&7lwB)>4z+`b3SXR@qdWqnOq^B^F`QpYWuoYlnBwYI5D~*Sk|w-8&E!V=+L zN|ySf{H9ZV5Z}@%6B!qq4{=}y&kq(D7Out#nB;pK%YpeVd1c4DEO7+4nlUira2^>< z8<2{yXA;AaVA)Gutne@Y-7 zxDAH_YsKuQB)q3Pf*{Bl1|WMy`x~QyNX*+FvuTGQMO9iA9wJ7hmT`L z4>oQ-yEXpDo;hZQix4_C^Jy%BpI1)uWg8cd<^fqq)w$xi_a~I=%a5uGm%rFA3ees2@XjM}_*_#PP0>VnVgpYmR_xcrrE_Xc|TqNSf*ibE?=^)%h|ID!umhY4GwLK$;r%U+-J9c+m|4 z^sz9@lrh#27w=$R_t>IQyfB{wH>4W<*|Dc|lMpBa!9RA@`+gB?!%Km)5_^s@T z0sG6?aX)Sep|`R}7do5EBB4VgT%$C=vgIe6_7xoK*!1a_aP>iG6-(Y_OYo@$Us5;hCAo z;o-d$3ga5UH0_V~ILymucF@ssAzCnXKIhwP>S!x0xFKv?+mf9P)FR$?!;YhBCp?42s8@ilX`ltzHnkL1vjMijFa{MEMK}gq7msfGkGrJIYC(n?5Re*0LBI3#f7s}1Uz zat#g(Lh@w-w~b9C+X#gm&)q;3iKCvAPzu9-9uF`wsoC?u}S z678YKZPSp#CBp6!IA}-Uw`(|+iDpTxG9F8^CT+Jz4+ zjL$ta1*P~_%pattdYG+$)TB{kpR^=rI_>1T@zEFzz0sGWI~3iw(@Qg?uqgB{j_|V+ zU~I0ObB;Os^9GBF2*n zl8m34i{&8d3CvHwVV{_bi9Fy^uj0UXWYdc@qgoV6wB7ieA%*%zRxL9=DUGMqp`KOW zy95MX{L{T6l)533{`Z74rWz_|${1pI^_}^tZsvno3i1Ai*Y(zLd;AcPAb>x&NeU;` zAbKTyVs&Mixfp}hdWAMa^c7-mFg(shNB{u+!JUb3p`ld2b8%A0U%EsL^VB!!uk4~fN2#s9Z!755B&KCE_O)`{FwCUJsgV?p5Ht?; z7)bySkoKb2y)*ojsW&TbaRm{eO=4ML{u(!UXVm?EQ?9=ofq(YS=-u(K0@22s05p#R zNj(1KsI(N9`&H`a{Jah=zpvrv*%!(QC*=@sc7H~FVA9k=^!tR(gQu0Tp<-gAV z;GQ$I4ZhW5(Tog%>a3RopcS@y2Flbzjz&FsM)vzUStXDKaRW<6D{-5z8UxqnVj?1% zSc*aSWg=B>yVtp|hug#m&7h9Yl4)D(J%H&V?JF0igPC+mP2B5Ig$0mG`Y-)7w^@iEGG$EHM0vat z%EdfIv{hc}^ULQxWKrBMEFhhyN=!~q*`GHCUe8E0(c`J_n+nWsW7R-@lfGAE!y)@ z57UTi8T-+{e!RN3`)i-6TY_};%;SO_ABQKR9>TcsQSy(EQImgVp=A|K7jGw~EWz#c z*GPx*;I@dtXP5}8khL2?{$h>$_EGOUv=?-dhC`C3A|$v3jRCWvIK|IXFA=MVHL(1R zI>uf-&%j?O)NuIzAL@A{SzY(Hn8(h4#Vom)iYWh(wuf{waiH!U1R%HHKOufLzE9GT z04xp|_YXYBqFy0X;GmdSnCj{X)``au(BGONlBzl zJu-R%BGJo!djf%&lyfuN0RTFEV~%M55Wjtrqc7zoy?uN6Pwmq49f2!ac<@3@++D)b3*xWkabT);|TJ^h~HyAaL2 zQ=NURHv%k%+9$g2$50UFK^Fzq4w&T*y=74W>;UVLyw5EndIAL*Y2)4ckFtAwCWq{U zp(>LQNjuDnWx1CPi90?XkXXK}(C@4$wx5M1m9nCG!UFpGf}*_;#aOs*+RiWoDqv(y zdK_hECIl)Rb~{3Z!`IOANOV2QIc<$RDef{>E^+{7U*qt^*+xq#M<<7b4>xiaU)b&I zh^t2=9qhRsN+8zgn1d1eV#pWurUBas{wbMr09MFk_BT0XXLScBSaz5$C2oX=I$3_q z?J=mcg(|J{xV(YROp#v?0V#X(tJ5O6o8&qVJzLWiBsnDEvWkjLNX{S~x>EK?II8uQ zm@Sph#d8X>C>nbqEcWKojSN;mEa6nQa9os)dc_*88t}3XQy# zh?B3Up&oOBvIDZ(;P^_FfCPKaVJJ4LIyii zv9|p2TBQw~k7mtn*O;ML+r@a5(I^D=Fr?--nj0M)ko-@cYoulaEQiXC8-ubT zS>mKsz34@CGuPny$P!tmVtpzY6*hnkt<`05hlMt?uWv3fyQ9-?X-z0TMd0|Ko>*Cb z@X!Wvlmp11w7UU;C!XicMj#hT0D$_#Bo_N@qVfgeUeK~+Bgv|g- zWW|kcN2JIx9Qq(_pLA@#-+b^WO=8hjU8^5r+<>%eb}hx(U!uYBe6e{K*w`;c6`RTt zlmzB#uYw4Cmfx>E|B9~u5!}{%bD7V>&>q8Uu_Ejh3m_@Is@jc_$Kkmc$WAfIq2iPK%H-14HA z95~(QFP#pL2e$RLyu+8fZA{<SnZ8xbJl3K`*2-~CSAKA?a0RZ% zeIknmL5OJ#U@>5aS_OC|C$ltMFG?jOb8IJ-C03NjMuXLjvUU4DYREchsDooZm1vB3d;6c@2wZ4>B(M}B zGLuH!`XvvuPTTBbxAU_b!GF6Q;y~2vRVE>o9hGscSn0PR&c7niulz#4h;5u%O z)ScT3ALG??9r=_boh#faljLP@qu+)DA>cdNXlBo3)o;nd?=;^Ze}(UkC3hqvhzrIDUU&b-i?Xd~`#xN=AE$PVJmFh){M@x37x*yInSlZz; zY(z&21B<>}Rti{4?9gott6D@0bP1yC;!zD-bZ*gg9$bLi>pDe`WJO)}FG6PHJ0O>E z$z`^P>}mE`v4Fi%raBDWeMN7@I{Mg^CFy7l872FTf`zLH>uofFN zr~p^&DgF~T7#I(a1E|)`*Hmi5kR7$w`f-S11!|eA;^J3ai!P>J?}Ixm8g#}g|E(h; z=))DJMC8_Fz?L#j!X91s6V;^Fe4kBIbwq=8r&x?zp=oYdeLYHq=^_jxEfNPbc>v~D zA6Z|01VudpVE|wlfNa?_Q~^yBDEJmoAsmiCJ-$;6R3xCn9MLVcJ*ma0v~^UAZqKEP z-YfZm(XZPt@5bcx_Gxp-TpDG9gR6{0JCwN<6t21%S-REd20ghWNB1n~v4{k763XKI zij2|_`^Ri!fqWaCK6?8h;!nyP*!q38cvZh&t)tl=tt%#~Xa!eV0V1QGTvKv*NA0T- zW$}TzJ90hIgREos;R6ET;xPoLxY}=bVq9o zV~>Cwm)kW?2g@VT%0kD* zj`<3@uJyqEh&kcvx$BYo&zj^L!!WTM)z7bLFRv;ra|iSAz7&hqDBuyNiw0b*A{quJ zpu#7s@dumLjE|!En!_K0*}S}_irWC2S@5Vzocxi?!5kLurBO2UM(NE+|^)4dT$>i#ImuW|Kgo} z&|!?$`Plo?B$U?!73d!ZoG)r zkVx51t3&*X=CHEv%GJ$*G%jKVkURbh2Iqi z_MoC~y{X~qA75;-$!JhETR{QNZC zJ^g5TGe_SwvS@RLd4pzk;OAFbMJa|^E0^C}BiqP}f_Z8fKqpRhJm*ZHQ{BQ~ont-b zsQ?Qb<~W9Q>x=6~c#o50q18v1T@sNA^=PC0+wiK8a%2sQh4G6OmRLmABM9^cXy1wa zfDz6JVMbcvb-NOjHgC&Dxvydxr*zBG^!PY){BhC;4i;6(dh@a0bq}{)BG9hPyWISQjbHTUm|TUtcbxj*Hymb2q&n6lP$$(ZN0 zdhg`5qp&T)0h=h*-dKRt`$lY^mDV=BvGFo5s|)+s7M0%PX>QI%61}$|erJt%({P<1 zdv~YwOU8FBv++i zH8A+*hu?e)n;+1I1-WRloyq7tqV@TYLPz7)j^TJeT{g(~mRn>Jo#Su9S(dC#Qr4=%~q7k6mdGuQ9S!2-^sC`0;Y5< zb`QRU4GX8Rb!wYUq!Sp1VisODv9hi|^XPWhPqe;jC0S27 zJ^H>$JP=A2lKLm1WMg(xozFusiAUPdN|ZEoBL&^_G2RV~uilqY9S5N}l(QY4(zn-L za6Jng`gNqs^QQFKQALsQ?N5Zy^o;*yiJXP!f}Ti*YS{uZoLDC?jgzmRBI81!i zPU#hG?!@}u<07Y%KC$no;)@JcKi>3*hheLwNr|tM#7r-rzIz7g#pVcp=hA1qk{gAC zSVweyoxW|x;XHWBo|u#M-`{1iCRTH4>XJnX26h$&x`&bA$}M2;WhZfbPJCSe_n!82 zgj_Hpm_KZE{)LU5wqyZMFlFE})~La{vQsGpWN&S(YIJ zvpeJbkPf`YG-t4?#6al8rA%4~!(KKoaC!XZ6(S9SUZ7vl*)ZZ0(_3&oY>a&2g!j@M zpJbJsZ)<0qB)bhHX8jkz2KqXdymWCix|M^!ZD)k_z)U)Kc+otk^-6C zan;BxrBm25jQk_lqepa*8f|7!uH{_V6dZEw(5x^m`bXi#qbL~?^$BA_Vu#j!paOUO zUu9)fb)Fc43y1T%2z<*Ylba?AcZ}X)M0*X820H~Y1ROV({Q-C~^rFnE>4UcTVymXJ zDQP832TcO!d=wU{xa3oc?ZH_VU(U@6R)a@En6CbdQk6TBB>XECN_EEbD|h6p>r)aK zIm=E22v>1j*Rm3Bo}mq=oZe&ALwM;F@Te%BgHjb{-9sTAdcPO^clpN5db(LOf1u zD!Aiqqum2z{mqdHhKbese^#Ip&0+)U@(O=G4@#5N*};cie7Y>KojuqyoS$${!@|EY zZ^N^0?BS$nkaQ4x@$KFfNYSeh|mKZBMaN9o8$3mCiOz?Y$Hpfcm~z zMSCYft+%7bN0Ybdy7X^ex^-PNJKrtrPs7%M!HkEfGNU`aj+Eq=GHu|h8m!$0dxJ@9 z`xUmjKvtEpB#gf$u-d?D29gki1sH_k3lh=6jWr-)9xUM~!1IABf)6#7&OBL#gJe;S9Qys87=+ImK;(_RJC+_x%x5n&vD`!(g;vbarJ%1p?&^nqr zZ&l2`{r;PScFyUJ-fQfXf-9WppMc^9GIyjOcl!I1fX<+VcU>;%ql1Z2m1T~~EWWYL zwd?xhbJ%k_AA+ZS((yJ!o#i(Slg84WsP6-BASwgQA=GO64B71J_0G}jhxaR8>6zKN z2p)q{5yfX)N85BQ^jd5kPTeR=Pq+y$52Gjh?%KKpd4R6WJ>iH>G*dwySgLX($;L4% zU3fI4f;ULsyYJYk|EV$J+;0?}D%t(SYkOXZ`H^(4_Yr>Ql&!8crI}}ms zIApY!)Z3{=wLCM!b84~QlZJoYI|DVKaaVqO_CR^_ipjmk%`3=6!QI*+MXB~dSnjsMYI$)@O3s&{T+$^ZsS?$;!ccS|9X9wNTjlk z9ao5iiLz{cNB-zWZoKl8MB|l{;s$JyM5zyD$c_T zx%1)nmA%M31p@(rw!{U0)g@ zI0ceS(Y+8gGk%V}`NEDqU1mnBOBrF>m{ z1_6K%o@RusA%hIkzvzc^(HIwz6AM@G%QPbE_K_&N5Dv>MiG%b9QR%h~RzZ!4xOd7P zYfNbs@b4T7^zBd)jDD0*5_mfk(OwezvZMf%M>FC@hrM=61>lDDk+R;k&!_`r{=KgV z8+>6}0ej|YXy?7qO39;gjcFB#Z*?lxAaw^$8|9GlvMXt6XNA`C& zB8y@tu4R68|;8Vg^WQy$hO$|^S`>;m~B zsz6P?nKrBBn>&x(>lmp8CA(f^_jm|#K15l#h3Q*!$SXEc{W3v8yvS<4w`kKrVvVix@5r}8qFXhPVR~iK8GvcR^#YS zVWuJrK2sP;%nlMf$^6k<}i+mqYMCu_WXT4%Uq z>0Cg?%I#EO9p=<3-C}jI*Ol(VmDep$GShr7+5smt==2sZ636z&C&+&NB4VS)N*5_o*Dej8Y z(V5on)62qE8gWv~v@06s@k`LY_UK56Hi{?X7Hk?Ey&|U=AH#09_Di5feVA7mS+O%E zm)Zuz7Jy5~L!Tv3Q7J-~C^0lNx=7*^rETi?mApA!>dtN0n-3Q-2id0GX1*R@-tDR( zcvdBBJC_>Y#c?a@re!5Wc0}~G6S%#L9$kfw9`SQ~!e`_lD4})tmvoR@zmy~Uxj0$; zL&FZsPys$t-ih@cH>0~avwZ6CQWKj$lKR09?xHWPp2IBk!%m~A79w9C=W@Hy$GGPs zy6;PLU&7l&I4~DCqamIAzYtov!nAKV`!^At?tVgvsmx01905Q+QucAwb}@W?Olc%P z7UBZOfRtBzO?Y%Tih3bgj}Na-`1ScBDxT@Cjo&fuP2qWhqkB@CS{cUjBy+&<)B2S< zN7D8*5Be0-mg{e~s)+feFpPSq9egl^(CO*1a3Js4T(Eb0ND<*#8j|A<^Q=1ibL)pc z7GpZCsPiaLho6BEtSelqzbQtiJ?BM1xS@TQH=L2(!XaPb&afnC_SiEs)eSIzjzmed zZ@T7+8LFc{j{L_qTAt@S^LxaOj&U@V(^J+cuWc|NoYlw^#L#Yj)!$bL#&*esWj9S? zjmTt?f_Cm%V0yd+k?l0`cS%D47|HQk5TI>;fsOe%^Vd~0Rvl>~iHzCk^`Ds)11(>i zJpP=To4?-liEhzPip}j>U}kjG=I)1 z4Q`)C>R@1vo{^tr*a_*9yWYCF`C{{a^Ca`}kOAH66Tegh>W!R+4AyaONJ!%Y0#N$X zpX4!ga@qdE|P~mJjk-Yg+*0EPG`?0<8wSyL5?< z<95u9C}=G}4H?}0Jao6N;MZgS!J&75CizlI;Ia=G(9dC&a~umh4=Ue4i6C1bl>;>W zSBlx0MpCo3BcJ#VhF($|lZcdhZ2qY)K|_f2DFh3GgYOzL+ah^ekW9DMZbSzW*FISe-A27cTrl#uE>3XCIlA+0Z+i=ef7mmYLQQ_S)4Q-0!8Fy! zwJf+#et?|W+>+YfFmym_9_0M#g2_{W=fW>(;+8!$*fU}dsL*d7i_U%8*lv^-9h>Zq z-h#zOtb??C7J62k5|84s+c^3CiJ^rO17-~E$B=g$xSY@S_ztg$!$44WPAt30_rj>JXz4F4~rcqYTaeG0m55U)qffTM=IzZ#L3F= z^?cb!Om*7(4-1iocV)-?cd-r`w}{5pFRT^$ggq*nL}Hm283d+74?8(V#0GtJZ?GZ= z5UuS))Qt}XdTvpeU8>xR51#@=Ec%QbazF2pWt;K&9ABRLqxW}3w|~^{2Yyds6#SIK z$5GvSri2bGzN&NIwlW~oSCsKY%M}oEd_;w(fwmxj584Xe;Cp-L>xS*A;=&_{DaU*% z)9&vjv(_!jL)k{gnYf^Zr*F2Zz929781XfX3w+DM>Bk$q-|b`0IHC`8oR}YE4zS+Y z89#HM3=4{)D8HfJf^o1%#u|;^ozHl}Cw#F~l)1|KDWBN(fnDme(dMo|&u9LVoNLLd z?!l?+>B|ttCsF7(jdPhsQ@LD1zZyzeoryfJk^!DONSCb%Nhte%i`RDh`sOz5>y;l7 zUmQrk0$<;0fk2S}ZX6oh0iyYP43}J1du2dCRBGdT6;{J;&y-)!Rg#w}?!r71t zH(?mgW}7^4gTtdVjPjjte!`B+AJkFt_n^Rw`>n4}4_-a=GUGTMj|b>P$|Ub;>dsJoc@t4kZ^5O4`)RCDEfo2n`x`vu z0rA80Tjtm}I?C}#0+$trNF^%it;JA&^HBQ(5E-DuXcR-yVKK4Fs-T133IaH8l7dlS z7>Yn3*)ZeiiO+`*CAylxMv`C0xg@Zq<2T`h3HufySA|}LFiGiFor!fMaxI*;XtkU% z0R}>7@0mCjypEAPyO!mQ9*3O#3nh_C_iO{80zy!tHXQ4mOJiaJ(2x!QK&Xp$%`*(0 zokB|0fnmHpKdY$4CDVp83nTdnmc=+Z=&+?8_Ky`xkN;6v1&$v)mUa{k$!_M4-8k&K zFog7Zw`Yb}8&eY6x^PGeM~E@rZALJ&;_81Dsp?lVN>is2vsp#$eGt<-X}&al%jv%T z8e{b0k0;_Bf#JPx>p@R=BQ`@p6=1-RCgkRZBs|&{CH|cE`*q2UQrjD$UrcPb2#Cu+ zT;iGaBDW+Vnu1Q^d;xZDL~huM8*v6&@kU-LQQ0Zt>VuWd#A^?}zq$KX!@ly)<^+3H z{tZ4+&(a?XGj!lPEc>sn0Q)<%(u5(c%F0wW+Z|4v7&lMTAnLX63NK-kx{0{T4x@FhV80uIjRZ0-y-8p%px%lAiZV6Nx1n;| zk<75ZyLZ?-M8qEzUk)0MqmeYnR4l`no!P#2`7z6{-#ek^~&4@p>L9_sJ7y&j%!FT^%Z2iDO+{}qW!&`r)aaznU z3W;{fg$C5{gih0(Bn!d7CGE7?5>b$!@|AzXyvOJRkR)v#mkX+k6^tO8OfpUq4x_Gm za^VlC=XaL8)jCa(T{59_0|55#-;}SAw$aY;YRo7SCI?2P2YwlSJsGJ73@@a)v5?v4 z_9uvb3#myn)tJAD`U%IM0tpghD8zxj7B~Y%jOW><6~Jlz^`~U;ZjA#P}ASg-|O>GazX@?2uW5G$^?gb&;xAOaQ zcQA1@1T#;daK@@mCbrR-jOj$ZaQ9S%R)Of@Iz_9-aK+v=3N5e&MskV(3PGSSFskHm zfFSqG9u#>Q1qO3^L4;U{2;nU)CUF9W_QD*Xf?$9@Jfc950_83k1HfKPSyog5C8z|{ zNHPGMj=J{kMMz$A$(|%N6F9CxCLY9tHL#yVa->w$2p*^7yi_dcX@l;`v%0hc=2)f{ zR6W(g0WHf*%d$kPdiIY#rlkdov<~KthE`^*(3d?1ayo%Djm4a=zWtN?m^3^37h}2( z<>PAneFH-$*LPJYSD$8OxIuQ=XteY(%L^hgW4qd1J_gs=EFR(qX$27nI9-88I*itc zA^jb@@yj;t!kY$g2BVkRf6Y6x@>&=?*6^8bHl4+LeqI{C?B~O+ItpG@>T`D3&oJy# zHRkT=VF|=P_Gfp&jSVVduS+hVDlA~SeJ?G<@H*9RrOIj$!3al1d@KGz3>QrJ0oO&+ zwgsvHaA9hf83$z7OA@J4%w+JL1-+)sfE;fnFv2ZdOFLe_E+H}i&d774`(W20?{ zUlLdSBplEbYj}5F6D=vtUr55fjaE6S1fM}`bL@CfKRk-Pxp_x$+K>U;{O47@{iu+`^+&p zAVe0sGE5A1#`JL%c;$%5%+Ub4RhFv5_BcVxo@Bk~80Uwd1(K#RU#{e}NEt==I#5_f zy9Rx2LW{5WJpsO51SJY2Ov3p^oj*VSp2(RdW_+&hrTMEjnceD^MPRgQDI+N)t+UPS zWr1FQ7^{Gn2fP-vkxRarkEv~>*F6hE>(c#v)_c#|l>FyXERB(wA-O2S zx<|SaE=363)|43x6O?U15&!aST5sDwgl8InFhZz~v|so&O1$^#j27{eewbRmI$E-N zUV~1)0+_v^XqY)}P#FaF>ThZM$<~$dG}jJ;v%8fmn7%&B`fdswS(R=%iWOZ>W7j|a z6h-Z{g-Cv+)xtd;0>*%8%caetLn^;iLdDHTLITQ9xdE%NzVCveT~{CETGe~?r}0i2 zE=XFI+BvRYh)bPdcGf=;seaGzNrPyd+Mu&b&^P{-GBwn*p|sq(Z$&_lZv49Cs;3w7 z@ao#Rsl~ikZr{&W;H-9^dv|a5BURD-?31H+ctH;l5Rnh5J&u>}0$o%DReJkxD#G(8 ze=D>5TK#%0Tue{%AIPAE?w@z#?H2nGMJVF4Xj58xpxogqj=|@r4U8v9)}iQ??z5u> z#Ak{eVdM_r^3l-MG|u`yPkf}AIps=V?cekFfF*u9kJ$e+siH3SOKz)*tc;;pnOwdn z&H2*jojc`rSI?}jeVLxo`WaQP9Dl`bLpx-d^7Ot4ol{y+TwmKV(elkAQq`Tc`vS?I zaBpAh^Mw{IA=7h0Lg>#5%$gLCW#9Z)**` z%$RDKVem&Zv(_-Rx+L>rW#76q+fU_u0S!*|%KLXzJKKiuSIH*~4=0*yGU15tI}zcj zLniOK6B@d?6%eXA2v$k5#4(YRgKV9pY`P9sWr>p*F3~f(gaUz>3|m#zTXhEz43h+& z3m!5;v@W3saP}o5TvMpFS{wI8Qr1%h(gxQ$8xkx#;wV@9Rjz%8t5V0n#lqm*>!TF4 zN75|_2Ra3WdMco$tmF>c(j+Xuy|Km$;Yi@9mpK!~*YPSQ77Ap-R#{8Vf z4!aNh*ZaT9Xy2!*IB!a=j8-E8Bdny1QBFx0EAq`;C3OM4E~ckBaJ9}K3TY6+(?SsQ zG4NT8m0=w$NMQk1)#K0FPG#bK721add$Ui`lqUVzb-f}#GA;(b*d}%Tf?K~`0$wLd zHd{)r*hr>n(}@mwjE{aC6{cGlQ^loDGr^@Uu09+sq-ss4$^0cb_DrcC(M4dH{5d_* zaom^_hA0^+%)ynYm5e>go^(^tGd}9Nv<~*!7%($neI5+=R_Chw!qj|qLbSc_NsB@4 zRxJu4OecETs~JcYpU#=rc@sw)wn4Ma_4u!Ed5ED3{&mAwOR`PPGzFzGUNk!BYuI%3 zyaW)NmG4colgvL$w$>hwRac}NKogcQv0XEXNNiy?-wB{5{l8`U* zxlLHPLC@S?yez?f5K4_H!Hm70rh)YQl7z3b7}bi-%-K;XpvYR{K;%Oy!&8a&fx z^2epw>!}2q`A6^V@NaJ6zcn!DpS{OO<|B$yBa@N$LGkVW!tYld;)fb1|Om!_4PUL6AML`Envbrqr zSHIhft;jsTUpyI#w;!*5Gm@`J#KBC7S{a*wx!;&Xm`QjpXL!};_S87j%ZHy8^ar` z&B#Dwb)Wuk0sG(LvH=rTu|jl$rE4V2Je7ud0)|QvXIorqz3WsnEwS9;vSQ{>o-VGz zX4k~QYndm@CevBuBYC`p$RDT5thT$Md8}QN)?e=!5^;79(`R*b2S=%h20S7{mMI84 z%Y_8|g_Tw3CawN$tFAn?1^UhGyeT1*xpSu%XFV?fC_#bza-OUiBd=z|Tn*M{x?*0v z&-y9}0#qudJWZC^BsJAfCy!d2+n+zYxafF!GWe39*xIaXwdgVaQgNeX^0JpDng4mR zOOD-Vf}Eul{Dt3JKi2kdE!Xu*C$6}!Wxuog^YO82_4+rIb7}EB{1NweUbr-}nx<@v zgyVio>FOwYvwvOCfIl60Ex@cft!MQUf=WM`wa&p_DG$U}_N3QhQ8)8+CoWK4hG*Yb0# z6aR?)e|gHPekBLiDbmARdb?oxWg7Z#^yOnN$g($OQ3Fp@xvSwN%+9W(tZ?c1IQCT_ zUgLWC@$0is4u4~>u~%=G6pUY2>*&0QT;OG!CdrMqlKa_>o-|Tv8ruvs?{0eYR$S9G z5f4`_q;mP*m8vDL0F#DSfC(%(?Wc=wpM~ExQ+UY7y-9XA6IP299*ZfkHT(0tBSxxU z+2@pP+xv!`7j}j(9<^%?ZFj=z5D9-bBllvJtl5ZkC#m}ciK#b+l9%wtRArg&vINWHd;Dak@F=x01A#R z;U!DqR+L&d675_a!pU!i$jQse*KKm0^@`gp$Pcq+e2Q0&UagcOxSCUcRwj6c2;8QZGSg zGhU6MyBQeh5XQu0k1}0hGkbVfhvtFZekTh&$8MiAd{cc{2LFntytexB+FJL5M|${C zsveVqDZJy*yGN|;15{#k(pS-f3~Kf!1Cnw>m%Ht}!fg)pe(!cPyr+oP7tU@cBFzGo z`oVSt@pmJutilt2vvqHKW$aB~-Z5k3`eYb;m_75j@xdV>kqo}&VPiU`pkUE#r`-V%U3(auJh04jOc8=2K{$y>&UH1P&elZ{ns5pflsaL+yXmt3-SK zzaXhdcs)(B_(sa3Al^B|s! z6W)hl=8ItVx9=XJPa3v^xv!m);32$klO-x{Cc%T*U7ml_4(w3*sGDZ_4Uv35zxM0p z)TPMJKWyM-Z)j!$Qj)e7WvF((_P8&RLe0uT&zRRwIb7g!2kn3GgsXeB4xh?H_N*Bu z8Q>x)J1{)o`RIa`e5EH&FQQmt>!{tHjLHl)tPhr&JTtyH`P>FJqXr~^+xSbjE%m_cQGA^SlY%CYw(HGy%*l$+{1+(i1aMhpn?SH)# zQIz;0tX$?DgPo||ULec5pPf;7>3qnm9oZt#`^ zZ(jRq_BM9o%GZ+PSR3lU#Nk-;8{l{R@ZIi4#v3OkL2>g*L?wN>PoCq0A zXgeLJCB#9AETDhYs4)QqFBb%m6__A13(B=L$fETVsF^iOz%D8JC;<~NrZC%`F+&U; z9kbsiG?50qY6D3=*&53=aT8b)4QtS;(#w3>wLk8fbs5N)mf~8_CdMHFCyk~&Q8-eo zKY-p5Pg?Ep94RvKJszWe6d)lTDG|{CNq3$~*>X{ayd4U?$Y;gcRB!bP>J`wtw&~C? z3DNRtMys6SS)h0q7(rFuD@6jAD_RhzlQJTqSFWU@B9K7MmNEOI>ST@|c;vf&@sz&8 zY(g_Q(pJH;jgDhYtJE0#S3xy&7hiBK^No7c$Yq%%fYZ(VD)5oR%dqueym~Uulyobw zQ3f6U8T#mGOH;WnqY@V*X%F6-W=r{#^t7EjaCj{o4#2)$W`n|YtgLmNd7)^)JJutY zL~t#rOw@nmF`vN8)-{r-&nx3*4IS6TQ)yo}Ux4v!C|1I+8{oFd%Cw4W?s2U7`59`o zuWst7Ke!xsGlP{>qo>aowRAJnKD^M=lEIn_sCG55p|xdmkF#N6*(GB6N&t+SWA9BX zwf{;~a}~9=@r;}?bQ8}?98B8BnKk#fsDRjSQ=3TbeFDkcEXd0nYj&Z&O=3>dtlT$Q zH+anp#4sqvGsyp*@~MOQa2?haH+_93tOa^!()6b7Fde^BAef;CkpTb@lm-QWAauy# zR)8hQx(&K?3rWMiV>f?GSqpcwWA5))V!A*8N}!8cH0UNsIN#1Dm7}Y{7Ry0EfqQ4P zj94hJR^R15os_SFZud04Nz#aJ6ki$2*R`*O+dCV?(R>Yv%7wZy?U|}O)cTkg>-+!v zAB1sg;W+>bV^*odCMW(Wj8Op}3rqKF3>V>cZ@}SbDSZB8u_EP#&Y2K z7FE3_yVct{#!trhxuT-4<^FCU!P#*iR)nO@xDwpYX6~Zu2%WC<*ZOAPjb^BT?yI`> z)_6`if?Ky65h1OMazVvCVikiu-UMVC-3PvCDRBZZfwkTCaqmpI(hb7znCdQ@7|99s|dd=;u15XU_mXzxh)BhqL-69hUA1tV_^O zA7&E;@C~0gN4`S<`_&SQlQC|?7%Wb7?)NDMmBlipdtO?A>_QSvk2NW;+K_bIc$*)Y+zxgw9-jihJX`5aipo5#FLbCy zfq0SyJDV#2FfJiBcJ+pN&eN|GiV;~Pca|vK3z8gIsAQX``=OYysi=(w+kJr!Fc3)t z@D}g@<3hcaCut!fQQUqu1J+e$ewHtc+f+aA!UtLqK(M^upglf~g3P zrFaZ?fG{Ah8S`YW21XiV6u7+v01lZ(5IRUeD$WsVEuY&bJQIIx@uEYEa~e(mzJPxN zmH4_A8wtL-!Sw0WV0@7~s{n;J- zbo2@VZ|FW?yYCbp(&Dq`VDVOO!%)e$XQCFDggFMG{ryGtYsoIr zMftRTir`0Sd)DbpkLdhoY#!9$tV^SF=_xZ3D3yxk7Ksh+%CCdUhE7jJ!KyFkUk$-3 zoph(IkRe0D4`H(UYAgq~!+NAP9rYB(gwu8iv*Zz0*XJF<13gj(AoG`J zFXm83Ie7sWnIZJRxW~Pb4u`)&qHpO~6D9u>er~InYg|RZIXHSs1LU7d!#bFLX!3AM zmz?#m4l5{78fV>1OQ6|ey5F}u4E^CWO>>>e9_{izPm$&Apl(g8AX7=z!Bv)*m_8Rr zLy)p!$XI}lv;cy6x)8#X1->&I`&q>cYfcTARQy+}hktY=;0BeGQ7X42AAc%CCVcs^ zh@U|@aoe3<}-rQ?sQ4{44RJ?}kt?p0yQkHa=Cv&+AXPC&t_eSVb3lX0_cazWU9axRJ zhx#wj5M;#*{e^(_(=-snxKzLmkH9+@>DAiBdGl-$VO727g?^e(@8vxp(~oud#2?=l zEn}mNLxl8=rc5M9V%&6IA0OK4gO(i%jx`(iNsiZ`D`r8HNgm&}?+vxAdO(2G!vEq8 zr3M9{32#hb){y_YNRM}MaWy#tpd}yB5kWJAbC< zpQCn^-bINUeEITclzsO>ugR|=mnV#3mW3?Irz=Uip#jABMtgdZl{K;NK;-R~DN5-2 zg{vQ}`rL<`2{GaE1I9v@gr#fxG4czyCd^-R{+uZ|Wg##53EKQl?HwF~)^e`Z06@); z>$DMhO$w4D(|hn^lgP1qt#7YM&EW5GdHyo%Mx8&L+$uC$dfb(;jm2FwLMO6Tpbhp# zG`1xPx~UxF-9f{tG1k%}xc9_#dESIKy$KH6@Mo;!UNKJZ=3mwLEar_PojJ#+YD>m) zb!Rw9jk58VS#++xC{bVFQ6J3tk9EAn7{rtXB8|MpZ7~B*1vl}_)nuJ(xBtoNNv9*m zQ4~i{u{rNQIqu1j6P8kDt(43^me;b@t0>&78q?LsiyTVRmI{VkMcXIzg&7Np7d8W# zEp6A=&-0AV0gy_zUK{_=tGt+A+YnCnkVe}ulgVJ{Ye%}O+xW?(+(JC*RiO`wiYWo& zM1Y8vLHVHJ2NvsgspI}@A+7>l-di`)0P0(0>boung;m%A4DA4cro=_pDT9`6oK}w{ z#gw4XbAa_z~2d{EM8JU@^-0Hbc?qTooBU}h+x?pAU!lx|k zpRZYJ%uAUd0dpfA!>2YpT(EESZ&8U)HBvJ~ldEW;Cby6-^X|Dd$Po$#{usI2Q$AeQmS)QVsEC z?hP!EeJ-_zP9D3Ks0$g{jbDQQPT29#Ox3f22)otUs5q5zl5`oIyy}eX#b$;Yb={5M z!?;MMhbxL-h2G$bur(O}KFq=P%}e&C49S*Q9uKJp$?sb#E>ubJM+VwDD4fF5Q7@oj*g*BOSP>38c#vI08>;Qp-gk>jz*mXoAY)Fx85Oy*#GK3giRUeh&6&>ys z(f1+hWxbx$h{hWc;P*4u7|^|+^?s9j_s+bq$IsaPh(v*XHo^!|+&i92lw)6n#0C8^ zSZUK{X5VG?dw&k|=7lKVt{qFxWyVF@%FDOY1yF8GzoSg#$LYRqUo@;h_ul@lP59Fa{ri>Qj^Ng3SC{I9(Hmm& z(Hl=u7?x}-6xv}b*QNAU7-_RrCDHoYDIDbN@aFE%4C?66l<3vy7Ui*xOAPJgH%&~P zcs7MFAj*=Jks|JFB!x3D!1E#4hNPfA8q61`fWn1vkJ5wt^6*AxF8c5O%p}4XoZ$%aUY2s@QLh}nY`IaXFnu# zL0BC;qt#+B`QAVm(lVT)*Yk$($5sbv*Dx|HzRgWdO2qC=J_z`Sif~J1s50eUd6}Wx z8;0znoxo>hZzt0SCy>(<>ul61)(75L)bPqr$M)%$tB2bgk+0rJ8TIN&xa`B1n2^=2 zZoU>%JCmM+OEZ%T?*XxF)#KJefPip_mwxZopW#=;_23EEuZUJsUZ{Tf@+x695sf7K z2Z;w^05|0{XtNA7v}PVWnC| znG;VILoiHO*o+tEW2lcSFXovj>$i0ClcAX^JLRlyV#(Gpaa(l2aI~vG*?mWt7P^|~ z7UA;>wwnOOx@`tI>ykb@rd`yGXivDT4wMqGlSA`1JXxz z(yKyscI0x@s|Wv54_@JYVUai{0G7I#?N^U zPZryF1-Qp^Kw~)|!atU&IYth^P|0A%1ldm&YYcC8aL-P=&3-cvs^V#Oo~C<|cbqYq z!z8=CX_Asi-)d@WzD6!k{Cu|DfVU!8+W(uKnLsXqI>wkwfi($E3K|TM6J7=3`a$w2-F?7~(O?_b)zk?07FzvbV&<38U&G&P(VNg!2-p`-+ugi??3mRd(Qiw&$-X@eNL$4H#$#7LKRrb zYP5;2$k=zVR>($WJN_2^_GZ+)MQtqfIdL9oeVGm-0&**f87nqSo@ z%%%!$f5$Hww8*;GA3RT2{up8vT0Jq;;BFueI6jr}lMr2|&ILxe{Jb{mYy%0A?uuWmyw4%hw1-x%|SONDKO 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�FG}gjn%yXZh~&Jbvg15+>R>rtdx*6S&gcH_ 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

    5c3ADT|yLtHc>CPX$> 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�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%0D3oR!8 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%0D5;u1`9-Z}ZDd%gDm5@jB|ZaA0U*~S@Tax!O93c= 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

    8X-ry8O1r$@{5jJ6j536Oe)FSR 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
    iga5FkZry84q{RU5df(1 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

    ^f*J;=1%@*_^Yt#yL{xh!K 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%0A8C@=#TL<3XA18?gC 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 u09!Z< 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 literal 0 HcmV?d00001 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 3ba634942..e3470cacc 100644 --- a/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt +++ b/examples/android/android-simple/app/src/main/cpp/CMakeLists.txt @@ -2,18 +2,10 @@ cmake_minimum_required(VERSION 3.4.1) add_subdirectory(../../../../../../../ ${CMAKE_CURRENT_BINARY_DIR}/kompute_build) -set(ANDROID_APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) -set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common) set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include) -## build native_app_glue as a static lib -#include_directories(${ANDROID_APP_GLUE_DIR}) -#add_library(app-glue STATIC -# ${ANDROID_APP_GLUE_DIR}/android_native_app_glue.c) - -# build vulkan app add_library(kompute-jni SHARED - kompute-jni.cpp) + KomputeJniNative.cpp) include_directories( ${VK_ANDROID_COMMON_DIR} @@ -24,12 +16,8 @@ include_directories( set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 \ -DVK_USE_PLATFORM_ANDROID_KHR=1 -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1") -#set(CMAKE_SHARED_LINKER_FLAGS -# "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") - target_link_libraries(kompute-jni kompute -# app-glue log kompute_vk_ndk_wrapper android) \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/cpp/kompute-jni.cpp b/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp similarity index 60% rename from examples/android/android-simple/app/src/main/cpp/kompute-jni.cpp rename to examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp index d8a6e2368..b97b2f05e 100644 --- a/examples/android/android-simple/app/src/main/cpp/kompute-jni.cpp +++ b/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp @@ -27,12 +27,9 @@ #include "kompute/Kompute.hpp" - -// Functions interacting with Android native activity -//void android_main(struct android_app* state); -//void terminate(void); -//void handle_cmd(android_app* app, int32_t cmd); - +#ifndef KOMPUTE_VK_INIT_RETRIES +#define KOMPUTE_VK_INIT_RETRIES 5 +#endif // Android log function wrappers static const char* kTAG = "KomputeJni"; @@ -44,51 +41,28 @@ static const char* kTAG = "KomputeJni"; ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) extern "C" { -JNIEXPORT jstring JNICALL -Java_com_ethicalml_komputejni_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { -#if defined(__arm__) -#if defined(__ARM_ARCH_7A__) -#if defined(__ARM_NEON__) -#if defined(__ARM_PCS_VFP) -#define ABI "armeabi-v7a/NEON (hard-float)" -#else -#define ABI "armeabi-v7a/NEON" -#endif -#else -#if defined(__ARM_PCS_VFP) -#define ABI "armeabi-v7a (hard-float)" -#else -#define ABI "armeabi-v7a" -#endif -#endif -#else -#define ABI "armeabi" -#endif -#elif defined(__i386__) -#define ABI "x86" -#elif defined(__x86_64__) -#define ABI "x86_64" -#elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */ -#define ABI "mips64" -#elif defined(__mips__) -#define ABI "mips" -#elif defined(__aarch64__) -#define ABI "arm64-v8a" -#else -#define ABI "unknown" -#endif +JNIEXPORT jboolean JNICALL +Java_com_ethicalml_kompute_KomputeJni_initVulkan(JNIEnv *env, jobject thiz) { LOGI("Initialising vulkan"); - // TODO: This optionally to be initialized from Kompute - if(!InitVulkan()) { - sleep(1); - if (!InitVulkan()) { - LOGE("Vulkan is unavailable, install vulkan and re-start"); - return (*env).NewStringUTF("ERROR"); + + uint32_t totalRetries = 0; + + while (totalRetries < KOMPUTE_VK_INIT_RETRIES) { + if(InitVulkan()) { + break; } + totalRetries++; } + return totalRetries < KOMPUTE_VK_INIT_RETRIES; +} + + +JNIEXPORT jstring JNICALL +Java_com_ethicalml_kompute_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { + LOGI("Creating manager"); kp::Manager mgr; @@ -110,6 +84,6 @@ Java_com_ethicalml_komputejni_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz LOGI("%f ", i); } - return (*env).NewStringUTF("SUCCESS"); + return env->NewStringUTF("Result is: "); } } diff --git a/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt b/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt new file mode 100755 index 000000000..e306cf5b2 --- /dev/null +++ b/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2016 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. + */ +package com.ethicalml.kompute + +import android.os.Bundle +import android.util.Log +import androidx.appcompat.app.AppCompatActivity +import com.ethicalml.kompute.databinding.ActivityKomputeJniBinding + +class KomputeJni : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val binding = ActivityKomputeJniBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.komputeGifView.loadUrl("file:///android_asset/komputer-2.gif") + + binding.komputeGifView.getSettings().setUseWideViewPort(true) + binding.komputeGifView.getSettings().setLoadWithOverviewMode(true) + + val successVulkanInit = initVulkan() + Log.i("KomputeJni", "Vulkan Result: " + successVulkanInit) + + binding.komputeJniTextview.text = stringFromJNI() + } + + external fun initVulkan(): Boolean + + external fun stringFromJNI(): String + + companion object { + init { + System.loadLibrary("kompute-jni") + } + } +} + diff --git a/examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt b/examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt deleted file mode 100755 index 8c7c9996e..000000000 --- a/examples/android/android-simple/app/src/main/java/com/ethicalml/komputejni/KomputeJni.kt +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2016 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. - */ -package com.ethicalml.komputejni - -import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity -import com.ethicalml.komputejni.databinding.ActivityKomputeJniBinding - -class KomputeJni : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - /* - * Retrieve our TextView and set its content. - * the text is retrieved by calling a native - * function. - */ - val binding = ActivityKomputeJniBinding.inflate(layoutInflater) - setContentView(binding.root) - binding.komputeJniTextview.text = stringFromJNI() - } - - /* - * A native method that is implemented by the - * 'hello-jni' native library, which is packaged - * with this application. - */ - external fun stringFromJNI(): String? - - /* - * This is another native method declaration that is *not* - * implemented by 'hello-jni'. This is simply to show that - * you can declare as many native methods in your Java code - * as you want, their implementation is searched in the - * currently loaded native libraries only the first time - * you call them. - * - * Trying to call this function will result in a - * java.lang.UnsatisfiedLinkError exception ! - */ - external fun unimplementedStringFromJNI(): String? - - companion object { - /* - * this is used to load the 'hello-jni' library on application - * startup. The library has already been unpacked into - * /data/data/com.example.hellojni/lib/libhello-jni.so - * at the installation time by the package manager. - */ - init { - System.loadLibrary("kompute-jni") - } - } -} - diff --git a/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml b/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml index 8196c4b61..26294546e 100644 --- a/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml +++ b/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml @@ -1,20 +1,107 @@ - + tools:context="com.ethicalml.kompute.KomputeJni"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/android/android-simple/app/src/main/res/mipmap-anydpi-v26/kompute_icon.xml b/examples/android/android-simple/app/src/main/res/mipmap-anydpi-v26/kompute_icon.xml new file mode 100755 index 000000000..54207096d --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/mipmap-anydpi-v26/kompute_icon.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/examples/android/android-simple/app/src/main/res/mipmap-xhdpi/kompute_icon.png b/examples/android/android-simple/app/src/main/res/mipmap-xhdpi/kompute_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..49e2477e9757274d2db697f9428ef770997dfa5d GIT binary patch literal 10584 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 b@#qmTdx-W{8r!oJfWPEql%>lhjs5=%V;z03 literal 0 HcmV?d00001 diff --git a/examples/android/android-simple/app/src/main/res/values/kompute_icon_background.xml b/examples/android/android-simple/app/src/main/res/values/kompute_icon_background.xml new file mode 100755 index 000000000..01f925c3f --- /dev/null +++ b/examples/android/android-simple/app/src/main/res/values/kompute_icon_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file From 9698ba7f4279d502a021396e489797a1c8277c3d Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sun, 4 Oct 2020 11:56:24 +0100 Subject: [PATCH 22/34] Fully functioning android ui and passing of float arrays --- .../app/src/main/cpp/KomputeJniNative.cpp | 37 +++++++-- .../java/com/ethicalml/kompute/KomputeJni.kt | 36 ++++++++- .../main/res/layout/activity_kompute_jni.xml | 76 +++++++++++++++++-- 3 files changed, 136 insertions(+), 13 deletions(-) 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 b97b2f05e..9ca5c702f 100644 --- a/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp +++ b/examples/android/android-simple/app/src/main/cpp/KomputeJniNative.cpp @@ -40,6 +40,22 @@ static const char* kTAG = "KomputeJni"; #define LOGE(...) \ ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__)) +static std::vector jfloatArrayToVector(JNIEnv *env, const jfloatArray & fromArray) { + float *inCArray = env->GetFloatArrayElements(fromArray, NULL); + if (NULL == inCArray) return std::vector(); + int32_t length = env->GetArrayLength(fromArray); + + std::vector outVector(inCArray, inCArray + length); + return outVector; +} + +static jfloatArray vectorToJFloatArray(JNIEnv *env, const std::vector & fromVector) { + jfloatArray ret = env->NewFloatArray(fromVector.size()); + if (NULL == ret) return NULL; + env->SetFloatArrayRegion(ret, 0, fromVector.size(), fromVector.data()); + return ret; +} + extern "C" { JNIEXPORT jboolean JNICALL @@ -60,16 +76,25 @@ Java_com_ethicalml_kompute_KomputeJni_initVulkan(JNIEnv *env, jobject thiz) { } -JNIEXPORT jstring JNICALL -Java_com_ethicalml_kompute_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { +JNIEXPORT jfloatArray JNICALL +Java_com_ethicalml_kompute_KomputeJni_kompute( + JNIEnv *env, + jobject thiz, + jfloatArray xiJFloatArr, + jfloatArray xjJFloatArr, + jfloatArray yJFloatArr) { LOGI("Creating manager"); + std::vector xiVector = jfloatArrayToVector(env, xiJFloatArr); + std::vector xjVector = jfloatArrayToVector(env, xjJFloatArr); + std::vector yVector = jfloatArrayToVector(env, yJFloatArr); + kp::Manager mgr; - auto tensorA = mgr.buildTensor({0,1,2}); - auto tensorB = mgr.buildTensor({0,1,2}); - auto tensorC = mgr.buildTensor({1,2,3}); + auto tensorA = mgr.buildTensor(xiVector); + auto tensorB = mgr.buildTensor(xjVector); + auto tensorC = mgr.buildTensor(yVector); LOGI("Result before:"); for(const float & i : tensorC->data()) { @@ -84,6 +109,6 @@ Java_com_ethicalml_kompute_KomputeJni_stringFromJNI(JNIEnv *env, jobject thiz) { LOGI("%f ", i); } - return env->NewStringUTF("Result is: "); + return vectorToJFloatArray(env, tensorC->data()); } } diff --git a/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt b/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt index e306cf5b2..d6e44e482 100755 --- a/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt +++ b/examples/android/android-simple/app/src/main/java/com/ethicalml/kompute/KomputeJni.kt @@ -18,6 +18,10 @@ package com.ethicalml.kompute import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity +import android.widget.Toast +import android.view.View +import android.widget.EditText +import android.widget.TextView import com.ethicalml.kompute.databinding.ActivityKomputeJniBinding class KomputeJni : AppCompatActivity() { @@ -34,14 +38,42 @@ class KomputeJni : AppCompatActivity() { binding.komputeGifView.getSettings().setLoadWithOverviewMode(true) val successVulkanInit = initVulkan() + if (successVulkanInit) { + Toast.makeText(applicationContext, "Vulkan Loaded SUCCESS", Toast.LENGTH_SHORT).show() + } else { + binding.KomputeButton.isEnabled = false + Toast.makeText(applicationContext, "Vulkan Load FAILED", Toast.LENGTH_SHORT).show() + } Log.i("KomputeJni", "Vulkan Result: " + successVulkanInit) - binding.komputeJniTextview.text = stringFromJNI() + binding.komputeJniTextview.text = "N/A" + } + + fun KomputeButtonOnClick(v: View) { + +// val binding = ActivityKomputeJniBinding.inflate(layoutInflater) +// setContentView(binding.root) + + val xiEditText = findViewById(R.id.XIEditText) + val xjEditText = findViewById(R.id.XJEditText) + val yEditText = findViewById(R.id.YEditText) + val komputeJniTextview = findViewById(R.id.kompute_jni_textview) + + val xi = xiEditText.text.removeSurrounding("[", "]").split(",").map { it.toFloat() }.toFloatArray() + val xj = xjEditText.text.removeSurrounding("[", "]").split(",").map { it.toFloat() }.toFloatArray() + val y = yEditText.text.removeSurrounding("[", "]").split(",").map { it.toFloat() }.toFloatArray() + + val out = kompute(xi, xj, y) + + Log.i("KomputeJni", "RESULT:") + Log.i("KomputeJni", out.contentToString()) + + komputeJniTextview.text = out.contentToString() } external fun initVulkan(): Boolean - external fun stringFromJNI(): String + external fun kompute(xi: FloatArray, xj: FloatArray, y: FloatArray): FloatArray companion object { init { diff --git a/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml b/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml index 26294546e..0cbb0cb97 100644 --- a/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml +++ b/examples/android/android-simple/app/src/main/res/layout/activity_kompute_jni.xml @@ -10,10 +10,11 @@ + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:layout_editor_absoluteX="1dp"> + android:text="[ 1, 2, 3 ]" /> + + + + + + + + + + + + + + + + + + + + + + +

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