├── .gitignore ├── test ├── cmake_using_installed_headers │ ├── CMakeLists.txt │ └── main.c ├── cmake_using_subdir_headers │ ├── CMakeLists.txt │ └── main.c ├── cmake_using_subdir_static │ ├── CMakeLists.txt │ └── main.c ├── cmake_cpp_namespace │ ├── main.cpp │ └── CMakeLists.txt ├── cmake_using_source_directly │ ├── main.c │ └── CMakeLists.txt └── run_tests.sh ├── cmake └── volkConfig.cmake.in ├── .github └── workflows │ ├── update.yml │ └── build.yml ├── LICENSE.md ├── CMakeLists.txt ├── README.md ├── generate.py └── volk.h /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | CMakeLists.txt.user 3 | -------------------------------------------------------------------------------- /test/cmake_using_installed_headers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5...3.30) 2 | project(volk_test LANGUAGES C) 3 | 4 | # Include volk from a CMake package config. 5 | # CMAKE_PREFIX_PATH or volk_DIR must be set properly. 6 | find_package(volk CONFIG REQUIRED) 7 | 8 | add_executable(volk_test main.c) 9 | target_link_libraries(volk_test PRIVATE volk::volk_headers) 10 | -------------------------------------------------------------------------------- /test/cmake_using_subdir_headers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Include the volk target through add_subdirectory. 2 | 3 | cmake_minimum_required(VERSION 3.5...3.30) 4 | project(volk_test LANGUAGES C) 5 | 6 | # Include volk as part of the build tree to make the target known. 7 | # The two-argument version of add_subdirectory allows adding non-subdirs. 8 | add_subdirectory(../.. volk) 9 | 10 | add_executable(volk_test main.c) 11 | target_link_libraries(volk_test PRIVATE volk_headers) 12 | -------------------------------------------------------------------------------- /cmake/volkConfig.cmake.in: -------------------------------------------------------------------------------- 1 | get_filename_component(volk_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) 2 | 3 | if(NOT TARGET volk::volk) 4 | include("${volk_CMAKE_DIR}/volkTargets.cmake") 5 | endif() 6 | 7 | # Mirror the default behaviour of the respective option. 8 | if(NOT DEFINED VOLK_PULL_IN_VULKAN) 9 | set(VOLK_PULL_IN_VULKAN ON) 10 | endif() 11 | 12 | if(VOLK_PULL_IN_VULKAN) 13 | find_package(Vulkan QUIET) 14 | if(TARGET Vulkan::Vulkan) 15 | add_dependencies(volk::volk Vulkan::Vulkan) 16 | add_dependencies(volk::volk_headers Vulkan::Vulkan) 17 | elseif(DEFINED ENV{VULKAN_SDK}) 18 | target_include_directories(volk::volk INTERFACE "$ENV{VULKAN_SDK}/include") 19 | target_include_directories(volk::volk_headers INTERFACE "$ENV{VULKAN_SDK}/include") 20 | endif() 21 | endif() 22 | -------------------------------------------------------------------------------- /test/cmake_using_subdir_static/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Include the volk target through add_subdirectory, use the static lib target. 2 | # We must set platform defines. 3 | # By default, Vulkan is pulled in as transitive dependency if found. 4 | 5 | cmake_minimum_required(VERSION 3.5...3.30) 6 | project(volk_test LANGUAGES C) 7 | 8 | # Set a suitable platform define to compile volk with. 9 | if(CMAKE_SYSTEM_NAME STREQUAL Windows) 10 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_WIN32_KHR) 11 | elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) 12 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_XLIB_KHR) 13 | elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) 14 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_MACOS_MVK) 15 | endif() 16 | 17 | # Include volk as part of the build tree to make the target known. 18 | # The two-argument version of add_subdirectory allows adding non-subdirs. 19 | add_subdirectory(../.. volk) 20 | 21 | add_executable(volk_test main.c) 22 | target_link_libraries(volk_test PRIVATE volk) 23 | -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | name: update 2 | 3 | on: 4 | schedule: 5 | - cron: '0 16 * * *' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | update: 10 | if: github.repository == 'zeux/volk' 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | with: 15 | ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} 16 | - name: update 17 | run: | 18 | python3 generate.py >version.txt 19 | echo "VOLK_VERSION=`cat version.txt`" >> $GITHUB_ENV 20 | rm version.txt 21 | - name: create pr 22 | uses: peter-evans/create-pull-request@v6 23 | with: 24 | branch: update/${{env.VOLK_VERSION}} 25 | delete-branch: true 26 | commit-message: Update to 1.4.${{env.VOLK_VERSION}} 27 | title: Update to 1.4.${{env.VOLK_VERSION}} 28 | author: GitHub 29 | - name: enable pr automerge 30 | run: | 31 | sleep 60 32 | gh pr merge --merge --auto ${{env.PULL_REQUEST_NUMBER}} 33 | env: 34 | GH_TOKEN: ${{ github.token }} 35 | continue-on-error: true 36 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018-2025 Arseny Kapoulkine 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /test/cmake_cpp_namespace/main.cpp: -------------------------------------------------------------------------------- 1 | #include "volk.h" 2 | 3 | #include "stdio.h" 4 | #include "stdlib.h" 5 | 6 | int main() 7 | { 8 | VkResult r; 9 | uint32_t version; 10 | void* ptr; 11 | 12 | /* This won't compile if the appropriate Vulkan platform define isn't set. */ 13 | ptr = 14 | #if defined(_WIN32) 15 | &vkCreateWin32SurfaceKHR; 16 | #elif defined(__linux__) || defined(__unix__) 17 | &vkCreateXlibSurfaceKHR; 18 | #elif defined(__APPLE__) 19 | &vkCreateMacOSSurfaceMVK; 20 | #else 21 | /* Platform not recogized for testing. */ 22 | NULL; 23 | #endif 24 | 25 | /* Try to initialize volk. This might not work on CI builds, but the 26 | * above should have compiled at least. */ 27 | r = volkInitialize(); 28 | if (r != VK_SUCCESS) { 29 | printf("volkInitialize failed!\n"); 30 | return -1; 31 | } 32 | 33 | version = volkGetInstanceVersion(); 34 | printf("Vulkan version %d.%d.%d initialized.\n", 35 | VK_VERSION_MAJOR(version), 36 | VK_VERSION_MINOR(version), 37 | VK_VERSION_PATCH(version)); 38 | 39 | return 0; 40 | } 41 | 42 | -------------------------------------------------------------------------------- /test/cmake_using_source_directly/main.c: -------------------------------------------------------------------------------- 1 | #include "volk.h" 2 | 3 | #include "stdio.h" 4 | #include "stdlib.h" 5 | 6 | int main() 7 | { 8 | VkResult r; 9 | uint32_t version; 10 | void* ptr; 11 | 12 | /* This won't compile if the appropriate Vulkan platform define isn't set. */ 13 | ptr = 14 | #if defined(_WIN32) 15 | &vkCreateWin32SurfaceKHR; 16 | #elif defined(__linux__) || defined(__unix__) 17 | &vkCreateXlibSurfaceKHR; 18 | #elif defined(__APPLE__) 19 | &vkCreateMacOSSurfaceMVK; 20 | #else 21 | /* Platform not recogized for testing. */ 22 | NULL; 23 | #endif 24 | 25 | /* Try to initialize volk. This might not work on CI builds, but the 26 | * above should have compiled at least. */ 27 | r = volkInitialize(); 28 | if (r != VK_SUCCESS) { 29 | printf("volkInitialize failed!\n"); 30 | return -1; 31 | } 32 | 33 | version = volkGetInstanceVersion(); 34 | printf("Vulkan version %d.%d.%d initialized.\n", 35 | VK_VERSION_MAJOR(version), 36 | VK_VERSION_MINOR(version), 37 | VK_VERSION_PATCH(version)); 38 | 39 | return 0; 40 | } 41 | 42 | -------------------------------------------------------------------------------- /test/cmake_using_subdir_static/main.c: -------------------------------------------------------------------------------- 1 | #include "volk.h" 2 | 3 | #include "stdio.h" 4 | #include "stdlib.h" 5 | 6 | int main() 7 | { 8 | VkResult r; 9 | uint32_t version; 10 | void* ptr; 11 | 12 | /* This won't compile if the appropriate Vulkan platform define isn't set. */ 13 | ptr = 14 | #if defined(_WIN32) 15 | &vkCreateWin32SurfaceKHR; 16 | #elif defined(__linux__) || defined(__unix__) 17 | &vkCreateXlibSurfaceKHR; 18 | #elif defined(__APPLE__) 19 | &vkCreateMacOSSurfaceMVK; 20 | #else 21 | /* Platform not recogized for testing. */ 22 | NULL; 23 | #endif 24 | 25 | /* Try to initialize volk. This might not work on CI builds, but the 26 | * above should have compiled at least. */ 27 | r = volkInitialize(); 28 | if (r != VK_SUCCESS) { 29 | printf("volkInitialize failed!\n"); 30 | return -1; 31 | } 32 | 33 | version = volkGetInstanceVersion(); 34 | printf("Vulkan version %d.%d.%d initialized.\n", 35 | VK_VERSION_MAJOR(version), 36 | VK_VERSION_MINOR(version), 37 | VK_VERSION_PATCH(version)); 38 | 39 | return 0; 40 | } 41 | 42 | -------------------------------------------------------------------------------- /test/cmake_cpp_namespace/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Include the volk target through add_subdirectory, use the static lib target. 2 | # We must set platform defines. 3 | # By default, Vulkan is pulled in as transitive dependency if found. 4 | # Also use C++ namespace feature to make it so that volk doesn't override vk* symbols 5 | 6 | cmake_minimum_required(VERSION 3.5...3.30) 7 | project(volk_test LANGUAGES CXX) 8 | 9 | # Set a suitable platform define to compile volk with. 10 | if(CMAKE_SYSTEM_NAME STREQUAL Windows) 11 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_WIN32_KHR) 12 | elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) 13 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_XLIB_KHR) 14 | elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) 15 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_MACOS_MVK) 16 | endif() 17 | 18 | # Enable volk C++ namespace feature; this only works when volk is compiled and used from C++ 19 | set(VOLK_NAMESPACE ON) 20 | 21 | # Include volk as part of the build tree to make the target known. 22 | # The two-argument version of add_subdirectory allows adding non-subdirs. 23 | add_subdirectory(../.. volk) 24 | 25 | add_executable(volk_test main.cpp) 26 | target_link_libraries(volk_test PRIVATE volk) 27 | -------------------------------------------------------------------------------- /test/cmake_using_subdir_headers/main.c: -------------------------------------------------------------------------------- 1 | /* Set platform defines at build time for volk to pick up. */ 2 | #if defined(_WIN32) 3 | # define VK_USE_PLATFORM_WIN32_KHR 4 | #elif defined(__linux__) || defined(__unix__) 5 | # define VK_USE_PLATFORM_XLIB_KHR 6 | #elif defined(__APPLE__) 7 | # define VK_USE_PLATFORM_MACOS_MVK 8 | #else 9 | # error "Platform not supported by this example." 10 | #endif 11 | 12 | #define VOLK_IMPLEMENTATION 13 | #include "volk.h" 14 | 15 | #include "stdio.h" 16 | #include "stdlib.h" 17 | 18 | int main() 19 | { 20 | VkResult r; 21 | uint32_t version; 22 | void* ptr; 23 | 24 | /* This won't compile if the appropriate Vulkan platform define isn't set. */ 25 | ptr = 26 | #if defined(_WIN32) 27 | &vkCreateWin32SurfaceKHR; 28 | #elif defined(__linux__) || defined(__unix__) 29 | &vkCreateXlibSurfaceKHR; 30 | #elif defined(__APPLE__) 31 | &vkCreateMacOSSurfaceMVK; 32 | #else 33 | /* Platform not recogized for testing. */ 34 | NULL; 35 | #endif 36 | 37 | /* Try to initialize volk. This might not work on CI builds, but the 38 | * above should have compiled at least. */ 39 | r = volkInitialize(); 40 | if (r != VK_SUCCESS) { 41 | printf("volkInitialize failed!\n"); 42 | return -1; 43 | } 44 | 45 | version = volkGetInstanceVersion(); 46 | printf("Vulkan version %d.%d.%d initialized.\n", 47 | VK_VERSION_MAJOR(version), 48 | VK_VERSION_MINOR(version), 49 | VK_VERSION_PATCH(version)); 50 | 51 | return 0; 52 | } 53 | 54 | -------------------------------------------------------------------------------- /test/cmake_using_installed_headers/main.c: -------------------------------------------------------------------------------- 1 | /* Set platform defines at build time for volk to pick up. */ 2 | #if defined(_WIN32) 3 | # define VK_USE_PLATFORM_WIN32_KHR 4 | #elif defined(__linux__) || defined(__unix__) 5 | # define VK_USE_PLATFORM_XLIB_KHR 6 | #elif defined(__APPLE__) 7 | # define VK_USE_PLATFORM_MACOS_MVK 8 | #else 9 | # error "Platform not supported by this example." 10 | #endif 11 | 12 | #define VOLK_IMPLEMENTATION 13 | #include "volk.h" 14 | 15 | #include "stdio.h" 16 | #include "stdlib.h" 17 | 18 | int main() 19 | { 20 | VkResult r; 21 | uint32_t version; 22 | void* ptr; 23 | 24 | /* This won't compile if the appropriate Vulkan platform define isn't set. */ 25 | ptr = 26 | #if defined(_WIN32) 27 | &vkCreateWin32SurfaceKHR; 28 | #elif defined(__linux__) || defined(__unix__) 29 | &vkCreateXlibSurfaceKHR; 30 | #elif defined(__APPLE__) 31 | &vkCreateMacOSSurfaceMVK; 32 | #else 33 | /* Platform not recogized for testing. */ 34 | NULL; 35 | #endif 36 | 37 | /* Try to initialize volk. This might not work on CI builds, but the 38 | * above should have compiled at least. */ 39 | r = volkInitialize(); 40 | if (r != VK_SUCCESS) { 41 | printf("volkInitialize failed!\n"); 42 | return -1; 43 | } 44 | 45 | version = volkGetInstanceVersion(); 46 | printf("Vulkan version %d.%d.%d initialized.\n", 47 | VK_VERSION_MAJOR(version), 48 | VK_VERSION_MINOR(version), 49 | VK_VERSION_PATCH(version)); 50 | 51 | 52 | return 0; 53 | } 54 | 55 | -------------------------------------------------------------------------------- /test/cmake_using_source_directly/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Compiles the volk sources as part of a user project. 2 | # Volk comes with a volk.c for this purpose. 3 | # Note that for volk to properly handle platform defines, 4 | # those have to be set at build time. 5 | # Also note that this way the Vulkan headers must 6 | # handled by the user project as well as linking to dl on 7 | # non-Windows platforms. 8 | # For these reasons it's recommended to use one of 9 | # the other ways to include volk (see the other examples). 10 | 11 | cmake_minimum_required(VERSION 3.5...3.30) 12 | project(volk_test LANGUAGES C) 13 | 14 | add_executable(volk_test main.c ../../volk.c) 15 | 16 | # Set include path for volk.h 17 | target_include_directories(volk_test PRIVATE ../..) 18 | 19 | # Set suitable platform defines 20 | if(CMAKE_SYSTEM_NAME STREQUAL Windows) 21 | target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_WIN32_KHR) 22 | elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) 23 | target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_XLIB_KHR) 24 | elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) 25 | target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_MACOS_MVK) 26 | endif() 27 | 28 | # Link requires libraries 29 | if(NOT WIN32) 30 | target_link_libraries(volk_test PRIVATE dl) 31 | endif() 32 | 33 | # Get Vulkan dependency 34 | find_package(Vulkan QUIET) 35 | if(TARGET Vulkan::Vulkan) 36 | # Note: We don't use target_link_libraries for Vulkan::Vulkan to avoid a static dependency on libvulkan1 37 | target_include_directories(volk_test PRIVATE ${Vulkan_INCLUDE_DIRS}) 38 | elseif(DEFINED ENV{VULKAN_SDK}) 39 | target_include_directories(volk_test PRIVATE "$ENV{VULKAN_SDK}/include") 40 | endif() 41 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | strategy: 8 | matrix: 9 | os: [ubuntu, macos, windows] 10 | name: ${{matrix.os}} 11 | runs-on: ${{matrix.os}}-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: actions/checkout@v4 15 | with: 16 | repository: KhronosGroup/Vulkan-Headers 17 | ref: main 18 | path: Vulkan-Headers 19 | fetch-depth: 0 20 | fetch-tags: true 21 | - name: move sdk 22 | shell: bash 23 | run: | 24 | mv Vulkan-Headers ~/Vulkan-Headers 25 | - name: install deps for tests 26 | run: sudo apt update && sudo apt install -y xorg-dev 27 | if: matrix.os == 'ubuntu' 28 | - name: build main 29 | shell: bash 30 | run: | 31 | export VULKAN_SDK=~/Vulkan-Headers 32 | git -C ~/Vulkan-Headers checkout main 33 | test/run_tests.sh 34 | - name: build 1.1.101 35 | shell: bash 36 | run: | 37 | export VULKAN_SDK=~/Vulkan-Headers 38 | git -C ~/Vulkan-Headers checkout sdk-1.1.101 39 | test/run_tests.sh 40 | - name: build 1.2.131 41 | shell: bash 42 | run: | 43 | export VULKAN_SDK=~/Vulkan-Headers 44 | git -C ~/Vulkan-Headers checkout sdk-1.2.131 45 | test/run_tests.sh 46 | - name: build 1.2.182 47 | shell: bash 48 | run: | 49 | export VULKAN_SDK=~/Vulkan-Headers 50 | git -C ~/Vulkan-Headers checkout sdk-1.2.182 51 | test/run_tests.sh 52 | - name: build 1.3.204 53 | shell: bash 54 | run: | 55 | export VULKAN_SDK=~/Vulkan-Headers 56 | git -C ~/Vulkan-Headers checkout sdk-1.3.204 57 | test/run_tests.sh 58 | - name: build 1.3.239 59 | shell: bash 60 | run: | 61 | export VULKAN_SDK=~/Vulkan-Headers 62 | git -C ~/Vulkan-Headers checkout sdk-1.3.239 63 | test/run_tests.sh 64 | - name: build 1.3.268 65 | shell: bash 66 | run: | 67 | export VULKAN_SDK=~/Vulkan-Headers 68 | git -C ~/Vulkan-Headers checkout vulkan-sdk-1.3.268 69 | test/run_tests.sh 70 | - name: build 1.3.296 71 | shell: bash 72 | run: | 73 | export VULKAN_SDK=~/Vulkan-Headers 74 | git -C ~/Vulkan-Headers checkout vulkan-sdk-1.3.296 75 | test/run_tests.sh 76 | -------------------------------------------------------------------------------- /test/run_tests.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function reset_build { 4 | for DIR in "_build" "_installed" 5 | do 6 | if [ -d $DIR ]; then 7 | rm -rf $DIR 8 | fi 9 | mkdir -p $DIR 10 | done 11 | } 12 | function run_volk_test { 13 | for FILE in "./volk_test" "./volk_test.exe" "Debug/volk_test.exe" "Release/volk_test.exe" 14 | do 15 | if [ -f $FILE ]; then 16 | echo "Running test:" 17 | $FILE 18 | RC=$? 19 | break 20 | fi 21 | done 22 | echo "volk_test return code: $RC" 23 | } 24 | 25 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 26 | pushd $SCRIPT_DIR/.. 27 | 28 | reset_build 29 | pushd _build 30 | cmake -DCMAKE_INSTALL_PREFIX=../_installed -DVOLK_INSTALL=ON .. || exit 1 31 | cmake --build . --target install || exit 1 32 | popd 33 | 34 | echo 35 | echo "cmake_using_source_directly =======================================>" 36 | echo 37 | 38 | pushd test/cmake_using_source_directly 39 | reset_build 40 | pushd _build 41 | cmake .. || exit 1 42 | cmake --build . || exit 1 43 | run_volk_test 44 | popd 45 | popd 46 | 47 | echo 48 | echo "cmake_using_subdir_static =======================================>" 49 | echo 50 | 51 | pushd test/cmake_using_subdir_static 52 | reset_build 53 | pushd _build 54 | cmake .. || exit 1 55 | cmake --build . || exit 1 56 | run_volk_test 57 | popd 58 | popd 59 | 60 | echo 61 | echo "cmake_using_subdir_headers =======================================>" 62 | echo 63 | 64 | pushd test/cmake_using_subdir_headers 65 | reset_build 66 | pushd _build 67 | cmake .. || exit 1 68 | cmake --build . || exit 1 69 | run_volk_test 70 | popd 71 | popd 72 | 73 | echo 74 | echo "cmake_using_installed_headers =======================================>" 75 | echo 76 | 77 | pushd test/cmake_using_installed_headers 78 | reset_build 79 | pushd _build 80 | cmake -DCMAKE_INSTALL_PREFIX=../../../_installed/lib/cmake .. || exit 1 81 | cmake --build . || exit 1 82 | run_volk_test 83 | popd 84 | popd 85 | 86 | echo 87 | echo "cmake_cpp_namespace =================================================>" 88 | echo 89 | 90 | pushd test/cmake_cpp_namespace 91 | reset_build 92 | pushd _build 93 | cmake .. || exit 1 94 | cmake --build . || exit 1 95 | run_volk_test 96 | popd 97 | popd 98 | 99 | popd 100 | 101 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5...3.30) 2 | 3 | project(volk VERSION 4 | # VOLK_GENERATE_VERSION 5 | 337 6 | # VOLK_GENERATE_VERSION 7 | LANGUAGES C 8 | ) 9 | 10 | # CMake 3.12 changes the default behaviour of option() to leave local variables 11 | # unchanged if they exist (which we want), but we must work with older CMake versions. 12 | if(NOT DEFINED VOLK_STATIC_DEFINES) 13 | set(VOLK_STATIC_DEFINES "" CACHE STRING "Additional defines for building the volk static library, e.g. Vulkan platform defines") 14 | endif() 15 | if(NOT DEFINED VOLK_PULL_IN_VULKAN) 16 | option(VOLK_PULL_IN_VULKAN "Vulkan as a transitive dependency" ON) 17 | endif() 18 | if(NOT DEFINED VOLK_INSTALL) 19 | option(VOLK_INSTALL "Create installation targets" OFF) 20 | endif() 21 | if(NOT DEFINED VOLK_NAMESPACE) 22 | option(VOLK_NAMESPACE "Use C++ namespace for vk* functions" OFF) 23 | endif() 24 | if(NOT DEFINED VOLK_HEADERS_ONLY) 25 | option(VOLK_HEADERS_ONLY "Add interface library only" OFF) 26 | endif() 27 | if(NOT DEFINED VULKAN_HEADERS_INSTALL_DIR) 28 | set(VULKAN_HEADERS_INSTALL_DIR "" CACHE PATH "Where to get the Vulkan headers") 29 | endif() 30 | 31 | # ----------------------------------------------------- 32 | # Static library 33 | 34 | if(NOT VOLK_HEADERS_ONLY OR VOLK_INSTALL) 35 | add_library(volk STATIC volk.h volk.c) 36 | add_library(volk::volk ALIAS volk) 37 | target_include_directories(volk PUBLIC 38 | $ 39 | $ 40 | ) 41 | if(VOLK_NAMESPACE) 42 | target_compile_definitions(volk PUBLIC VOLK_NAMESPACE) 43 | set_source_files_properties(volk.c PROPERTIES LANGUAGE CXX) 44 | endif() 45 | if(VOLK_STATIC_DEFINES) 46 | target_compile_definitions(volk PUBLIC ${VOLK_STATIC_DEFINES}) 47 | endif() 48 | if (NOT WIN32) 49 | target_link_libraries(volk PUBLIC ${CMAKE_DL_LIBS}) 50 | endif() 51 | endif() 52 | 53 | # ----------------------------------------------------- 54 | # Interface library 55 | 56 | add_library(volk_headers INTERFACE) 57 | add_library(volk::volk_headers ALIAS volk_headers) 58 | target_include_directories(volk_headers INTERFACE 59 | $ 60 | $ 61 | ) 62 | if (NOT WIN32) 63 | target_link_libraries(volk_headers INTERFACE ${CMAKE_DL_LIBS}) 64 | endif() 65 | 66 | # ----------------------------------------------------- 67 | # Vulkan transitive dependency 68 | 69 | if(VOLK_PULL_IN_VULKAN) 70 | # Try an explicit CMake variable first, then any Vulkan paths 71 | # discovered by FindVulkan.cmake, then the $VULKAN_SDK environment 72 | # variable if nothing else works. 73 | if(VULKAN_HEADERS_INSTALL_DIR) 74 | message("volk: using VULKAN_HEADERS_INSTALL_DIR option") 75 | set(VOLK_INCLUDES "${VULKAN_HEADERS_INSTALL_DIR}/include") 76 | else() 77 | # If CMake has the FindVulkan module and it works, use it. 78 | find_package(Vulkan QUIET) 79 | if(Vulkan_INCLUDE_DIRS) 80 | message("volk: using Vulkan_INCLUDE_DIRS from FindVulkan module") 81 | set(VOLK_INCLUDES "${Vulkan_INCLUDE_DIRS}") 82 | elseif(DEFINED ENV{VULKAN_SDK}) 83 | message("volk: using VULKAN_SDK environment variable") 84 | set(VOLK_INCLUDES "$ENV{VULKAN_SDK}/include") 85 | elseif(TARGET Vulkan-Headers) 86 | message("volk: using Vulkan-Headers include directories") 87 | get_target_property(VOLK_INCLUDES Vulkan-Headers INTERFACE_INCLUDE_DIRECTORIES) 88 | endif() 89 | endif() 90 | 91 | if(VOLK_INCLUDES) 92 | if(TARGET volk) 93 | target_include_directories(volk PUBLIC "${VOLK_INCLUDES}") 94 | endif() 95 | target_include_directories(volk_headers INTERFACE "${VOLK_INCLUDES}") 96 | endif() 97 | endif() 98 | 99 | # ----------------------------------------------------- 100 | # Installation 101 | 102 | if(VOLK_INSTALL) 103 | 104 | include(GNUInstallDirs) 105 | set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/volk) 106 | 107 | # Install files 108 | install(FILES volk.h volk.c DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 109 | 110 | # Install library target and add it and any dependencies to export set. 111 | install(TARGETS volk volk_headers 112 | EXPORT volk-targets 113 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 114 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 115 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 116 | ) 117 | 118 | # Actually write exported config w/ imported targets 119 | install(EXPORT volk-targets 120 | FILE volkTargets.cmake 121 | NAMESPACE volk:: 122 | DESTINATION ${INSTALL_CONFIGDIR} 123 | ) 124 | 125 | # Create a ConfigVersion.cmake file: 126 | include(CMakePackageConfigHelpers) 127 | write_basic_package_version_file( 128 | ${CMAKE_CURRENT_BINARY_DIR}/volkConfigVersion.cmake 129 | COMPATIBILITY AnyNewerVersion 130 | ) 131 | 132 | # Configure config file 133 | configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/volkConfig.cmake.in 134 | ${CMAKE_CURRENT_BINARY_DIR}/volkConfig.cmake 135 | INSTALL_DESTINATION ${INSTALL_CONFIGDIR} 136 | ) 137 | 138 | # Install the fully generated config and configVersion files 139 | install(FILES 140 | ${CMAKE_CURRENT_BINARY_DIR}/volkConfig.cmake 141 | ${CMAKE_CURRENT_BINARY_DIR}/volkConfigVersion.cmake 142 | DESTINATION ${INSTALL_CONFIGDIR} 143 | ) 144 | 145 | endif() 146 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🐺 volk [![Build Status](https://github.com/zeux/volk/workflows/build/badge.svg)](https://github.com/zeux/volk/actions) 2 | 3 | ## Purpose 4 | 5 | volk is a meta-loader for Vulkan. It allows you to dynamically load entrypoints required to use Vulkan 6 | without linking to vulkan-1.dll or statically linking Vulkan loader. Additionally, volk simplifies the use of Vulkan extensions by automatically loading all associated entrypoints. Finally, volk enables loading 7 | Vulkan entrypoints directly from the driver which can increase performance by skipping loader dispatch overhead. 8 | 9 | volk is written in C89 and supports Windows, Linux, Android and macOS (via MoltenVK). 10 | 11 | ## Building 12 | 13 | There are multiple ways to use volk in your project: 14 | 15 | 1. You can add `volk.c` to your build system. Note that the usual preprocessor defines that enable Vulkan's platform-specific functions (VK_USE_PLATFORM_WIN32_KHR, VK_USE_PLATFORM_XLIB_KHR, VK_USE_PLATFORM_MACOS_MVK, etc) must be passed as desired to the compiler when building `volk.c`. 16 | 2. You can use provided CMake files, with the usage detailed below. 17 | 3. You can use volk in header-only fashion. Include `volk.h` wherever you want to use Vulkan functions. In exactly one source file, define `VOLK_IMPLEMENTATION` before including `volk.h`. Do not build `volk.c` at all in this case - however, `volk.c` must still be in the same directory as `volk.h`. This method of integrating volk makes it possible to set the platform defines mentioned above with arbitrary (preprocessor) logic in your code. 18 | 19 | ## Basic usage 20 | 21 | To use volk, you have to include `volk.h` instead of `vulkan/vulkan.h`; this is necessary to use function definitions from volk. 22 | 23 | If some files in your application include `vulkan/vulkan.h` and don't include `volk.h`, this can result in symbol conflicts; consider defining `VK_NO_PROTOTYPES` when compiling code that uses Vulkan to make sure this doesn't happen. It's also important to make sure that `vulkan-1` is not linked into the application, as this results in symbol name conflicts as well. 24 | 25 | To initialize volk, call this function first: 26 | 27 | ```c++ 28 | VkResult volkInitialize(); 29 | ``` 30 | 31 | This will attempt to load Vulkan loader from the system; if this function returns `VK_SUCCESS` you can proceed to create Vulkan instance. 32 | If this function fails, this means Vulkan loader isn't installed on your system. 33 | 34 | After creating the Vulkan instance using Vulkan API, call this function: 35 | 36 | ```c++ 37 | void volkLoadInstance(VkInstance instance); 38 | ``` 39 | 40 | This function will load all required Vulkan entrypoints, including all extensions; you can use Vulkan from here on as usual. 41 | 42 | ## Optimizing device calls 43 | 44 | If you use volk as described in the previous section, all device-related function calls, such as `vkCmdDraw`, will go through Vulkan loader dispatch code. 45 | This allows you to transparently support multiple VkDevice objects in the same application, but comes at a price of dispatch overhead which can be as high as 7% depending on the driver and application. 46 | 47 | To avoid this, you have two options: 48 | 49 | 1. For applications that use just one VkDevice object, load device-related Vulkan entrypoints directly from the driver with this function: 50 | 51 | ```c++ 52 | void volkLoadDevice(VkDevice device); 53 | ``` 54 | 55 | 2. For applications that use multiple VkDevice objects, load device-related Vulkan entrypoints into a table: 56 | 57 | ```c++ 58 | void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device); 59 | ``` 60 | 61 | The second option requires you to change the application code to store one `VolkDeviceTable` per `VkDevice` and call functions from this table instead. 62 | 63 | Device entrypoints are loaded using `vkGetDeviceProcAddr`; when no layers are present, this commonly results in most function pointers pointing directly at the driver functions, minimizing the call overhead. When layers are loaded, the entrypoints will point at the implementations in the first applicable layer, so this is compatible with any layers including validation layers. 64 | 65 | Since `volkLoadDevice` overwrites some function pointers with device-specific versions, you can choose to use `volkLoadInstanceOnly` instead of `volkLoadInstance`; when using table-based interface this can also help enforce the usage of the function tables as `volkLoadInstanceOnly` will leave device-specific functions as `NULL`. 66 | 67 | ## CMake support 68 | 69 | If your project uses CMake, volk provides you with targets corresponding to the different use cases: 70 | 71 | 1. Target `volk` is a static library. Any platform defines can be passed to the compiler by setting `VOLK_STATIC_DEFINES`. Example: 72 | ```cmake 73 | if (WIN32) 74 | set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_WIN32_KHR) 75 | elseif() 76 | ... 77 | endif() 78 | add_subdirectory(volk) 79 | target_link_library(my_application PRIVATE volk) 80 | ``` 81 | 2. Target `volk_headers` is an interface target for the header-only style. Example: 82 | ```cmake 83 | add_subdirectory(volk) 84 | target_link_library(my_application PRIVATE volk_headers) 85 | ``` 86 | and in the code: 87 | ```c 88 | /* ...any logic setting VK_USE_PLATFORM_WIN32_KHR and friends... */ 89 | #define VOLK_IMPLEMENTATION 90 | #include "volk.h" 91 | ``` 92 | 93 | The above example use `add_subdirectory` to include volk into CMake's build tree. This is a good choice if you copy the volk files into your project tree or as a git submodule. 94 | 95 | volk also supports installation and config-file packages. Installation is disabled by default (so as to not pollute user projects with install rules), and can be enabled by passing `-DVOLK_INSTALL=ON` to CMake. Once installed, do something like `find_package(volk CONFIG REQUIRED)` in your project's CMakeLists.txt. The imported volk targets are called `volk::volk` and `volk::volk_headers`. 96 | 97 | ## Configuration 98 | 99 | By default, volk is compiled as a C library and exposes all Vulkan function pointers as globals. This can result in symbol conflicts if some libraries in the application are still linking to Vulkan libraries directly. While generally speaking it's desirable to not mix & match volk with direct usage of Vulkan - for example, mixed usage means the application still links directly to Vulkan libraries and will fail to launch if Vulkan is not available on the user's system - it's possible to enable `VOLK_NAMESPACE` CMake option (or `VOLK_NAMESPACE` define when building volk manually), which places all volk symbols into `volk::` namespace. This requires compiling `volk.c` in C++ mode, which happens automatically when using CMake, but doesn'trequire any other changes. 100 | 101 | Device level functions can be hidden by defining `VOLK_NO_DEVICE_PROTOTYPES`. When using `volkLoadInstanceOnly` and `volkLoadDeviceTable` the device level functions are never loaded and when not used correctly would trigger a runtime error. By hiding the device prototypes mistakes can be checked by the compiler. 102 | 103 | ## License 104 | 105 | This library is available to anybody free of charge, under the terms of MIT License (see LICENSE.md). 106 | -------------------------------------------------------------------------------- /generate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # This file is part of volk library; see volk.h for version/license details 3 | 4 | from collections import OrderedDict 5 | import re 6 | import sys 7 | import urllib 8 | import xml.etree.ElementTree as etree 9 | import urllib.request 10 | import zlib 11 | 12 | cmdversions = { 13 | "vkCmdSetDiscardRectangleEnableEXT": 2, 14 | "vkCmdSetDiscardRectangleModeEXT": 2, 15 | "vkCmdSetExclusiveScissorEnableNV": 2, 16 | "vkGetImageViewAddressNVX": 2, 17 | "vkGetImageViewHandle64NVX": 3, 18 | "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI": 2, 19 | } 20 | 21 | def parse_xml(path): 22 | file = urllib.request.urlopen(path) if path.startswith("http") else open(path, 'r') 23 | with file: 24 | tree = etree.parse(file) 25 | return tree 26 | 27 | def patch_file(path, blocks): 28 | result = [] 29 | block = None 30 | 31 | with open(path, 'r') as file: 32 | for line in file.readlines(): 33 | if block: 34 | if line == block: 35 | result.append(line) 36 | block = None 37 | else: 38 | result.append(line) 39 | # C comment marker 40 | if line.strip().startswith('/* VOLK_GENERATE_'): 41 | block = line 42 | result.append(blocks[line.strip()[17:-3]]) 43 | # Shell/CMake comment marker 44 | elif line.strip().startswith('# VOLK_GENERATE_'): 45 | block = line 46 | result.append(blocks[line.strip()[16:]]) 47 | 48 | with open(path, 'w', newline='\n') as file: 49 | for line in result: 50 | file.write(line) 51 | 52 | def is_descendant_type(types, name, base): 53 | if name == base: 54 | return True 55 | type = types.get(name) 56 | if type is None: 57 | return False 58 | parents = type.get('parent') 59 | if not parents: 60 | return False 61 | return any([is_descendant_type(types, parent, base) for parent in parents.split(',')]) 62 | 63 | def defined(key): 64 | return 'defined(' + key + ')' 65 | 66 | def cdepends(key): 67 | return re.sub(r'[a-zA-Z0-9_]+', lambda m: defined(m.group(0)), key).replace(',', ' || ').replace('+', ' && ') 68 | 69 | if __name__ == "__main__": 70 | specpath = "https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/main/xml/vk.xml" 71 | 72 | if len(sys.argv) > 1: 73 | specpath = sys.argv[1] 74 | 75 | spec = parse_xml(specpath) 76 | 77 | block_keys = ('INSTANCE_TABLE', 'DEVICE_TABLE', 'PROTOTYPES_H', 'PROTOTYPES_H_DEVICE', 'PROTOTYPES_C', 'LOAD_LOADER', 'LOAD_INSTANCE', 'LOAD_INSTANCE_TABLE', 'LOAD_DEVICE', 'LOAD_DEVICE_TABLE') 78 | 79 | blocks = {} 80 | 81 | version = spec.find('types/type[name="VK_HEADER_VERSION"]') 82 | blocks['VERSION'] = version.find('name').tail.strip() + '\n' 83 | blocks['VERSION_DEFINE'] = '#define VOLK_HEADER_VERSION ' + version.find('name').tail.strip() + '\n' 84 | 85 | command_groups = OrderedDict() 86 | instance_commands = set() 87 | 88 | for feature in spec.findall('feature'): 89 | api = feature.get('api') 90 | if 'vulkan' not in api.split(','): 91 | continue 92 | name = feature.get('name') 93 | name = re.sub(r'VK_(BASE|COMPUTE|GRAPHICS)_VERSION_', 'VK_VERSION_', name) # strip Vulkan Base prefixes for compatibility 94 | key = defined(name) 95 | cmdrefs = feature.findall('require/command') 96 | command_groups.setdefault(key, []).extend([cmdref.get('name') for cmdref in cmdrefs]) 97 | 98 | for ext in sorted(spec.findall('extensions/extension'), key=lambda ext: ext.get('name')): 99 | supported = ext.get('supported') 100 | if 'vulkan' not in supported.split(','): 101 | continue 102 | name = ext.get('name') 103 | type = ext.get('type') 104 | for req in ext.findall('require'): 105 | key = defined(name) 106 | if req.get('feature'): # old-style XML depends specification 107 | for i in req.get('feature').split(','): 108 | key += ' && ' + defined(i) 109 | if req.get('extension'): # old-style XML depends specification 110 | for i in req.get('extension').split(','): 111 | key += ' && ' + defined(i) 112 | if req.get('depends'): # new-style XML depends specification 113 | dep = cdepends(req.get('depends')) 114 | key += ' && ' + ('(' + dep + ')' if '||' in dep else dep) 115 | cmdrefs = req.findall('command') 116 | for cmdref in cmdrefs: 117 | ver = cmdversions.get(cmdref.get('name')) 118 | if ver: 119 | command_groups.setdefault(key + ' && ' + name.upper() + '_SPEC_VERSION >= ' + str(ver), []).append(cmdref.get('name')) 120 | else: 121 | command_groups.setdefault(key, []).append(cmdref.get('name')) 122 | if type == 'instance': 123 | for cmdref in cmdrefs: 124 | instance_commands.add(cmdref.get('name')) 125 | 126 | commands_to_groups = OrderedDict() 127 | 128 | for (group, cmdnames) in command_groups.items(): 129 | for name in cmdnames: 130 | commands_to_groups.setdefault(name, []).append(group) 131 | 132 | for (group, cmdnames) in command_groups.items(): 133 | command_groups[group] = [name for name in cmdnames if len(commands_to_groups[name]) == 1] 134 | 135 | for (name, groups) in commands_to_groups.items(): 136 | if len(groups) == 1: 137 | continue 138 | key = ' || '.join(['(' + g + ')' for g in groups]) 139 | command_groups.setdefault(key, []).append(name) 140 | 141 | commands = {} 142 | 143 | for cmd in spec.findall('commands/command'): 144 | if not cmd.get('alias'): 145 | name = cmd.findtext('proto/name') 146 | commands[name] = cmd 147 | 148 | for cmd in spec.findall('commands/command'): 149 | if cmd.get('alias'): 150 | name = cmd.get('name') 151 | commands[name] = commands[cmd.get('alias')] 152 | 153 | types = {} 154 | 155 | for type in spec.findall('types/type'): 156 | name = type.findtext('name') 157 | if name: 158 | types[name] = type 159 | 160 | for key in block_keys: 161 | blocks[key] = '' 162 | 163 | devp = {} 164 | instp = {} 165 | 166 | for (group, cmdnames) in command_groups.items(): 167 | ifdef = '#if ' + group + '\n' 168 | 169 | for key in block_keys: 170 | blocks[key] += ifdef 171 | 172 | devt = 0 173 | devo = len(blocks['DEVICE_TABLE']) 174 | instt = 0 175 | insto = len(blocks['INSTANCE_TABLE']) 176 | 177 | for name in sorted(cmdnames): 178 | cmd = commands[name] 179 | type = cmd.findtext('param[1]/type') 180 | 181 | if name == 'vkGetInstanceProcAddr': 182 | type = '' 183 | if name == 'vkGetDeviceProcAddr': 184 | type = 'VkInstance' 185 | 186 | extern_fn = 'extern PFN_' + name + ' ' + name + ';\n' 187 | load_fn = '\t' + name + ' = (PFN_' + name + ')load(context, "' + name + '");\n' 188 | def_table = '\tPFN_' + name + ' ' + name + ';\n' 189 | load_table = '\ttable->' + name + ' = (PFN_' + name + ')load(context, "' + name + '");\n' 190 | 191 | if is_descendant_type(types, type, 'VkDevice') and name not in instance_commands: 192 | blocks['LOAD_DEVICE'] += load_fn 193 | blocks['DEVICE_TABLE'] += def_table 194 | blocks['LOAD_DEVICE_TABLE'] += load_table 195 | blocks['PROTOTYPES_H_DEVICE'] += extern_fn 196 | devt += 1 197 | elif is_descendant_type(types, type, 'VkInstance'): 198 | blocks['LOAD_INSTANCE'] += load_fn 199 | blocks['PROTOTYPES_H'] += extern_fn 200 | blocks['INSTANCE_TABLE'] += def_table 201 | blocks['LOAD_INSTANCE_TABLE'] += load_table 202 | instt += 1 203 | elif type != '': 204 | blocks['LOAD_LOADER'] += load_fn 205 | blocks['PROTOTYPES_H'] += extern_fn 206 | else: 207 | blocks['PROTOTYPES_H'] += extern_fn 208 | 209 | blocks['PROTOTYPES_C'] += 'PFN_' + name + ' ' + name + ';\n' 210 | 211 | for key in block_keys: 212 | if blocks[key].endswith(ifdef): 213 | blocks[key] = blocks[key][:-len(ifdef)] 214 | elif key == 'DEVICE_TABLE': 215 | devh = zlib.crc32(blocks[key][devo:].encode()) 216 | assert(devh not in devp) 217 | devp[devh] = True 218 | 219 | blocks[key] += '#else\n' 220 | blocks[key] += f'\tPFN_vkVoidFunction padding_{devh:x}[{devt}];\n' 221 | blocks[key] += '#endif /* ' + group + ' */\n' 222 | elif key == 'INSTANCE_TABLE': 223 | insth = zlib.crc32(blocks[key][insto:].encode()) 224 | assert(insth not in instp) 225 | instp[insth] = True 226 | 227 | blocks[key] += '#else\n' 228 | blocks[key] += f'\tPFN_vkVoidFunction padding_{insth:x}[{instt}];\n' 229 | blocks[key] += '#endif /* ' + group + ' */\n' 230 | else: 231 | blocks[key] += '#endif /* ' + group + ' */\n' 232 | 233 | patch_file('volk.h', blocks) 234 | patch_file('volk.c', blocks) 235 | patch_file('CMakeLists.txt', blocks) 236 | 237 | print(version.find('name').tail.strip()) 238 | -------------------------------------------------------------------------------- /volk.h: -------------------------------------------------------------------------------- 1 | /** 2 | * volk 3 | * 4 | * Copyright (C) 2018-2025, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) 5 | * Report bugs and download new versions at https://github.com/zeux/volk 6 | * 7 | * This library is distributed under the MIT License. See notice at the end of this file. 8 | */ 9 | /* clang-format off */ 10 | #ifndef VOLK_H_ 11 | #define VOLK_H_ 12 | 13 | #if defined(VOLK_NAMESPACE) && !defined(__cplusplus) 14 | #error VOLK_NAMESPACE is only supported in C++ 15 | #endif 16 | 17 | #if defined(VULKAN_H_) && !defined(VK_NO_PROTOTYPES) 18 | # error To use volk, you need to define VK_NO_PROTOTYPES before including vulkan.h 19 | #endif 20 | 21 | /* VOLK_GENERATE_VERSION_DEFINE */ 22 | #define VOLK_HEADER_VERSION 337 23 | /* VOLK_GENERATE_VERSION_DEFINE */ 24 | 25 | #ifndef VK_NO_PROTOTYPES 26 | # define VK_NO_PROTOTYPES 27 | #endif 28 | 29 | #ifndef VULKAN_H_ 30 | # ifdef VOLK_VULKAN_H_PATH 31 | # include VOLK_VULKAN_H_PATH 32 | # else /* Platform headers included below */ 33 | # include 34 | # include 35 | # endif 36 | #endif 37 | 38 | #ifdef __cplusplus 39 | #ifdef VOLK_NAMESPACE 40 | namespace volk { 41 | #else 42 | extern "C" { 43 | #endif 44 | #endif 45 | 46 | struct VolkInstanceTable; 47 | struct VolkDeviceTable; 48 | 49 | /** 50 | * Initialize library by loading Vulkan loader; call this function before creating the Vulkan instance. 51 | * 52 | * Returns VK_SUCCESS on success and VK_ERROR_INITIALIZATION_FAILED otherwise. 53 | */ 54 | VkResult volkInitialize(void); 55 | 56 | /** 57 | * Initialize library by providing a custom handler to load global symbols. 58 | * 59 | * This function can be used instead of volkInitialize. 60 | * The handler function pointer will be asked to load global Vulkan symbols which require no instance 61 | * (such as vkCreateInstance, vkEnumerateInstance* and vkEnumerateInstanceVersion if available). 62 | */ 63 | void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler); 64 | 65 | /** 66 | * Finalize library by unloading Vulkan loader and resetting global symbols to NULL. 67 | * 68 | * This function does not need to be called on process exit (as loader will be unloaded automatically) or if volkInitialize failed. 69 | * In general this function is optional to call but may be useful in rare cases eg if volk needs to be reinitialized multiple times. 70 | */ 71 | void volkFinalize(void); 72 | 73 | /** 74 | * Get Vulkan instance version supported by the Vulkan loader, or 0 if Vulkan isn't supported 75 | * 76 | * Returns 0 if volkInitialize wasn't called or failed. 77 | */ 78 | uint32_t volkGetInstanceVersion(void); 79 | 80 | /** 81 | * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance. 82 | */ 83 | void volkLoadInstance(VkInstance instance); 84 | 85 | /** 86 | * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance. 87 | * Skips loading device-based function pointers, requires usage of volkLoadDevice afterwards. 88 | */ 89 | void volkLoadInstanceOnly(VkInstance instance); 90 | 91 | /** 92 | * Load global function pointers using application-created VkDevice; call this function after creating the Vulkan device. 93 | * 94 | * Note: this is not suitable for applications that want to use multiple VkDevice objects concurrently. 95 | */ 96 | void volkLoadDevice(VkDevice device); 97 | 98 | /** 99 | * Return last VkInstance for which global function pointers have been loaded via volkLoadInstance(), 100 | * or VK_NULL_HANDLE if volkLoadInstance() has not been called. 101 | */ 102 | VkInstance volkGetLoadedInstance(void); 103 | 104 | /** 105 | * Return last VkDevice for which global function pointers have been loaded via volkLoadDevice(), 106 | * or VK_NULL_HANDLE if volkLoadDevice() has not been called. 107 | */ 108 | VkDevice volkGetLoadedDevice(void); 109 | 110 | /** 111 | * Load function pointers using application-created VkInstance into a table. 112 | * Application should use function pointers from that table instead of using global function pointers. 113 | */ 114 | void volkLoadInstanceTable(struct VolkInstanceTable* table, VkInstance instance); 115 | 116 | /** 117 | * Load function pointers using application-created VkDevice into a table. 118 | * Application should use function pointers from that table instead of using global function pointers. 119 | */ 120 | void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device); 121 | 122 | #ifdef __cplusplus 123 | } // extern "C" / namespace volk 124 | #endif 125 | 126 | /* Instead of directly including vulkan.h, we include platform-specific parts of the SDK manually 127 | * This is necessary to avoid including platform headers in some cases (which vulkan.h does unconditionally) 128 | * and replace them with forward declarations, which makes build times faster and avoids macro conflicts. 129 | * 130 | * Note that we only replace platform-specific headers when the headers are known to be problematic: very large 131 | * or slow to compile (Windows), or introducing unprefixed macros which can cause conflicts (Windows, Xlib). 132 | */ 133 | #if !defined(VULKAN_H_) && !defined(VOLK_VULKAN_H_PATH) 134 | 135 | #ifdef VK_USE_PLATFORM_ANDROID_KHR 136 | #include 137 | #endif 138 | 139 | #ifdef VK_USE_PLATFORM_FUCHSIA 140 | #include 141 | #include 142 | #endif 143 | 144 | #ifdef VK_USE_PLATFORM_IOS_MVK 145 | #include 146 | #endif 147 | 148 | #ifdef VK_USE_PLATFORM_MACOS_MVK 149 | #include 150 | #endif 151 | 152 | #ifdef VK_USE_PLATFORM_METAL_EXT 153 | #include 154 | #endif 155 | 156 | #ifdef VK_USE_PLATFORM_VI_NN 157 | #include 158 | #endif 159 | 160 | #ifdef VK_USE_PLATFORM_WAYLAND_KHR 161 | #include 162 | #endif 163 | 164 | #ifdef VK_USE_PLATFORM_WIN32_KHR 165 | typedef unsigned long DWORD; 166 | typedef const wchar_t* LPCWSTR; 167 | typedef void* HANDLE; 168 | typedef struct HINSTANCE__* HINSTANCE; 169 | typedef struct HWND__* HWND; 170 | typedef struct HMONITOR__* HMONITOR; 171 | typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES; 172 | #include 173 | #endif 174 | 175 | #ifdef VK_USE_PLATFORM_XCB_KHR 176 | #include 177 | #include 178 | #endif 179 | 180 | #ifdef VK_USE_PLATFORM_XLIB_KHR 181 | typedef struct _XDisplay Display; 182 | typedef unsigned long Window; 183 | typedef unsigned long VisualID; 184 | #include 185 | #endif 186 | 187 | #ifdef VK_USE_PLATFORM_DIRECTFB_EXT 188 | #include 189 | #include 190 | #endif 191 | 192 | #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 193 | typedef struct _XDisplay Display; 194 | typedef unsigned long RROutput; 195 | #include 196 | #endif 197 | 198 | #ifdef VK_USE_PLATFORM_GGP 199 | #include 200 | #include 201 | #endif 202 | 203 | #ifdef VK_USE_PLATFORM_SCREEN_QNX 204 | #include 205 | #include 206 | #endif 207 | 208 | #ifdef VK_USE_PLATFORM_SCI 209 | #include 210 | #include 211 | #include 212 | #endif 213 | 214 | #ifdef VK_ENABLE_BETA_EXTENSIONS 215 | #include 216 | #endif 217 | 218 | #endif 219 | 220 | #ifdef __cplusplus 221 | #ifdef VOLK_NAMESPACE 222 | namespace volk { 223 | #else 224 | extern "C" { 225 | #endif 226 | #endif 227 | 228 | /** 229 | * Instance-specific function pointer table 230 | */ 231 | struct VolkInstanceTable 232 | { 233 | /* VOLK_GENERATE_INSTANCE_TABLE */ 234 | #if defined(VK_VERSION_1_0) 235 | PFN_vkCreateDevice vkCreateDevice; 236 | PFN_vkDestroyInstance vkDestroyInstance; 237 | PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 238 | PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; 239 | PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 240 | PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 241 | PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; 242 | PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 243 | PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; 244 | PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 245 | PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 246 | PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 247 | PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; 248 | #else 249 | PFN_vkVoidFunction padding_f34b07f4[13]; 250 | #endif /* defined(VK_VERSION_1_0) */ 251 | #if defined(VK_VERSION_1_1) 252 | PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; 253 | PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; 254 | PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; 255 | PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; 256 | PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; 257 | PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; 258 | PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; 259 | PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; 260 | PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; 261 | PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; 262 | PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; 263 | #else 264 | PFN_vkVoidFunction padding_73de037b[11]; 265 | #endif /* defined(VK_VERSION_1_1) */ 266 | #if defined(VK_VERSION_1_3) 267 | PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties; 268 | #else 269 | PFN_vkVoidFunction padding_60958868[1]; 270 | #endif /* defined(VK_VERSION_1_3) */ 271 | #if defined(VK_ARM_data_graph) 272 | PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM; 273 | PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM; 274 | #else 275 | PFN_vkVoidFunction padding_15920a35[2]; 276 | #endif /* defined(VK_ARM_data_graph) */ 277 | #if defined(VK_ARM_performance_counters_by_region) 278 | PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM; 279 | #else 280 | PFN_vkVoidFunction padding_4fd09193[1]; 281 | #endif /* defined(VK_ARM_performance_counters_by_region) */ 282 | #if defined(VK_ARM_tensors) 283 | PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM vkGetPhysicalDeviceExternalTensorPropertiesARM; 284 | #else 285 | PFN_vkVoidFunction padding_4622403f[1]; 286 | #endif /* defined(VK_ARM_tensors) */ 287 | #if defined(VK_EXT_acquire_drm_display) 288 | PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; 289 | PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; 290 | #else 291 | PFN_vkVoidFunction padding_8e427d62[2]; 292 | #endif /* defined(VK_EXT_acquire_drm_display) */ 293 | #if defined(VK_EXT_acquire_xlib_display) 294 | PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; 295 | PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; 296 | #else 297 | PFN_vkVoidFunction padding_6e6f0a05[2]; 298 | #endif /* defined(VK_EXT_acquire_xlib_display) */ 299 | #if defined(VK_EXT_calibrated_timestamps) 300 | PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; 301 | #else 302 | PFN_vkVoidFunction padding_61710136[1]; 303 | #endif /* defined(VK_EXT_calibrated_timestamps) */ 304 | #if defined(VK_EXT_debug_report) 305 | PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 306 | PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; 307 | PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 308 | #else 309 | PFN_vkVoidFunction padding_250c28de[3]; 310 | #endif /* defined(VK_EXT_debug_report) */ 311 | #if defined(VK_EXT_debug_utils) 312 | PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; 313 | PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; 314 | PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; 315 | PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; 316 | PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; 317 | PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; 318 | PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; 319 | PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; 320 | PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; 321 | PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; 322 | PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; 323 | #else 324 | PFN_vkVoidFunction padding_3e2e81f7[11]; 325 | #endif /* defined(VK_EXT_debug_utils) */ 326 | #if defined(VK_EXT_direct_mode_display) 327 | PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 328 | #else 329 | PFN_vkVoidFunction padding_899830c3[1]; 330 | #endif /* defined(VK_EXT_direct_mode_display) */ 331 | #if defined(VK_EXT_directfb_surface) 332 | PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT; 333 | PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT; 334 | #else 335 | PFN_vkVoidFunction padding_f7e0f7b1[2]; 336 | #endif /* defined(VK_EXT_directfb_surface) */ 337 | #if defined(VK_EXT_display_surface_counter) 338 | PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; 339 | #else 340 | PFN_vkVoidFunction padding_8bff43f7[1]; 341 | #endif /* defined(VK_EXT_display_surface_counter) */ 342 | #if defined(VK_EXT_full_screen_exclusive) 343 | PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT; 344 | #else 345 | PFN_vkVoidFunction padding_ff6b086[1]; 346 | #endif /* defined(VK_EXT_full_screen_exclusive) */ 347 | #if defined(VK_EXT_headless_surface) 348 | PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; 349 | #else 350 | PFN_vkVoidFunction padding_f8cab9e0[1]; 351 | #endif /* defined(VK_EXT_headless_surface) */ 352 | #if defined(VK_EXT_metal_surface) 353 | PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT; 354 | #else 355 | PFN_vkVoidFunction padding_1c6d079a[1]; 356 | #endif /* defined(VK_EXT_metal_surface) */ 357 | #if defined(VK_EXT_sample_locations) 358 | PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; 359 | #else 360 | PFN_vkVoidFunction padding_fd7ffce7[1]; 361 | #endif /* defined(VK_EXT_sample_locations) */ 362 | #if defined(VK_EXT_tooling_info) 363 | PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; 364 | #else 365 | PFN_vkVoidFunction padding_99aa5ee9[1]; 366 | #endif /* defined(VK_EXT_tooling_info) */ 367 | #if defined(VK_FUCHSIA_imagepipe_surface) 368 | PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; 369 | #else 370 | PFN_vkVoidFunction padding_6db35e8f[1]; 371 | #endif /* defined(VK_FUCHSIA_imagepipe_surface) */ 372 | #if defined(VK_GGP_stream_descriptor_surface) 373 | PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; 374 | #else 375 | PFN_vkVoidFunction padding_cc96d0ec[1]; 376 | #endif /* defined(VK_GGP_stream_descriptor_surface) */ 377 | #if defined(VK_KHR_android_surface) 378 | PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; 379 | #else 380 | PFN_vkVoidFunction padding_ab4fe82c[1]; 381 | #endif /* defined(VK_KHR_android_surface) */ 382 | #if defined(VK_KHR_calibrated_timestamps) 383 | PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR; 384 | #else 385 | PFN_vkVoidFunction padding_663b2fa0[1]; 386 | #endif /* defined(VK_KHR_calibrated_timestamps) */ 387 | #if defined(VK_KHR_cooperative_matrix) 388 | PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; 389 | #else 390 | PFN_vkVoidFunction padding_59e376cc[1]; 391 | #endif /* defined(VK_KHR_cooperative_matrix) */ 392 | #if defined(VK_KHR_device_group_creation) 393 | PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; 394 | #else 395 | PFN_vkVoidFunction padding_6db81211[1]; 396 | #endif /* defined(VK_KHR_device_group_creation) */ 397 | #if defined(VK_KHR_display) 398 | PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; 399 | PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 400 | PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 401 | PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 402 | PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; 403 | PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 404 | PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 405 | #else 406 | PFN_vkVoidFunction padding_cce37eaf[7]; 407 | #endif /* defined(VK_KHR_display) */ 408 | #if defined(VK_KHR_external_fence_capabilities) 409 | PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; 410 | #else 411 | PFN_vkVoidFunction padding_b2076412[1]; 412 | #endif /* defined(VK_KHR_external_fence_capabilities) */ 413 | #if defined(VK_KHR_external_memory_capabilities) 414 | PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; 415 | #else 416 | PFN_vkVoidFunction padding_f167e378[1]; 417 | #endif /* defined(VK_KHR_external_memory_capabilities) */ 418 | #if defined(VK_KHR_external_semaphore_capabilities) 419 | PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; 420 | #else 421 | PFN_vkVoidFunction padding_acdaf099[1]; 422 | #endif /* defined(VK_KHR_external_semaphore_capabilities) */ 423 | #if defined(VK_KHR_fragment_shading_rate) 424 | PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; 425 | #else 426 | PFN_vkVoidFunction padding_d59cae82[1]; 427 | #endif /* defined(VK_KHR_fragment_shading_rate) */ 428 | #if defined(VK_KHR_get_display_properties2) 429 | PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; 430 | PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; 431 | PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; 432 | PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; 433 | #else 434 | PFN_vkVoidFunction padding_46c0938b[4]; 435 | #endif /* defined(VK_KHR_get_display_properties2) */ 436 | #if defined(VK_KHR_get_physical_device_properties2) 437 | PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; 438 | PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; 439 | PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; 440 | PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; 441 | PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; 442 | PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; 443 | PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; 444 | #else 445 | PFN_vkVoidFunction padding_5fac460e[7]; 446 | #endif /* defined(VK_KHR_get_physical_device_properties2) */ 447 | #if defined(VK_KHR_get_surface_capabilities2) 448 | PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; 449 | PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; 450 | #else 451 | PFN_vkVoidFunction padding_3baff606[2]; 452 | #endif /* defined(VK_KHR_get_surface_capabilities2) */ 453 | #if defined(VK_KHR_performance_query) 454 | PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; 455 | PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; 456 | #else 457 | PFN_vkVoidFunction padding_1b45ef8f[2]; 458 | #endif /* defined(VK_KHR_performance_query) */ 459 | #if defined(VK_KHR_surface) 460 | PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 461 | PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 462 | PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 463 | PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 464 | PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 465 | #else 466 | PFN_vkVoidFunction padding_8f1ea665[5]; 467 | #endif /* defined(VK_KHR_surface) */ 468 | #if defined(VK_KHR_video_encode_queue) 469 | PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; 470 | #else 471 | PFN_vkVoidFunction padding_f0a3114[1]; 472 | #endif /* defined(VK_KHR_video_encode_queue) */ 473 | #if defined(VK_KHR_video_queue) 474 | PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR; 475 | PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR; 476 | #else 477 | PFN_vkVoidFunction padding_12d937aa[2]; 478 | #endif /* defined(VK_KHR_video_queue) */ 479 | #if defined(VK_KHR_wayland_surface) 480 | PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; 481 | PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; 482 | #else 483 | PFN_vkVoidFunction padding_92436324[2]; 484 | #endif /* defined(VK_KHR_wayland_surface) */ 485 | #if defined(VK_KHR_win32_surface) 486 | PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; 487 | PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; 488 | #else 489 | PFN_vkVoidFunction padding_b8dcaf56[2]; 490 | #endif /* defined(VK_KHR_win32_surface) */ 491 | #if defined(VK_KHR_xcb_surface) 492 | PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; 493 | PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; 494 | #else 495 | PFN_vkVoidFunction padding_b6b79326[2]; 496 | #endif /* defined(VK_KHR_xcb_surface) */ 497 | #if defined(VK_KHR_xlib_surface) 498 | PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; 499 | PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; 500 | #else 501 | PFN_vkVoidFunction padding_c5e2b5db[2]; 502 | #endif /* defined(VK_KHR_xlib_surface) */ 503 | #if defined(VK_MVK_ios_surface) 504 | PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; 505 | #else 506 | PFN_vkVoidFunction padding_52f99096[1]; 507 | #endif /* defined(VK_MVK_ios_surface) */ 508 | #if defined(VK_MVK_macos_surface) 509 | PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; 510 | #else 511 | PFN_vkVoidFunction padding_1d7ced9a[1]; 512 | #endif /* defined(VK_MVK_macos_surface) */ 513 | #if defined(VK_NN_vi_surface) 514 | PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; 515 | #else 516 | PFN_vkVoidFunction padding_d9ec3901[1]; 517 | #endif /* defined(VK_NN_vi_surface) */ 518 | #if defined(VK_NV_acquire_winrt_display) 519 | PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV; 520 | PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV; 521 | #else 522 | PFN_vkVoidFunction padding_41c66e6[2]; 523 | #endif /* defined(VK_NV_acquire_winrt_display) */ 524 | #if defined(VK_NV_cooperative_matrix) 525 | PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; 526 | #else 527 | PFN_vkVoidFunction padding_ee7fcfc8[1]; 528 | #endif /* defined(VK_NV_cooperative_matrix) */ 529 | #if defined(VK_NV_cooperative_matrix2) 530 | PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; 531 | #else 532 | PFN_vkVoidFunction padding_2ec091f4[1]; 533 | #endif /* defined(VK_NV_cooperative_matrix2) */ 534 | #if defined(VK_NV_cooperative_vector) 535 | PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV vkGetPhysicalDeviceCooperativeVectorPropertiesNV; 536 | #else 537 | PFN_vkVoidFunction padding_50d51145[1]; 538 | #endif /* defined(VK_NV_cooperative_vector) */ 539 | #if defined(VK_NV_coverage_reduction_mode) 540 | PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; 541 | #else 542 | PFN_vkVoidFunction padding_9a9f15ac[1]; 543 | #endif /* defined(VK_NV_coverage_reduction_mode) */ 544 | #if defined(VK_NV_external_memory_capabilities) 545 | PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; 546 | #else 547 | PFN_vkVoidFunction padding_988145[1]; 548 | #endif /* defined(VK_NV_external_memory_capabilities) */ 549 | #if defined(VK_NV_optical_flow) 550 | PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV; 551 | #else 552 | PFN_vkVoidFunction padding_46a4b95[1]; 553 | #endif /* defined(VK_NV_optical_flow) */ 554 | #if defined(VK_OHOS_surface) 555 | PFN_vkCreateSurfaceOHOS vkCreateSurfaceOHOS; 556 | #else 557 | PFN_vkVoidFunction padding_b94570ee[1]; 558 | #endif /* defined(VK_OHOS_surface) */ 559 | #if defined(VK_QNX_screen_surface) 560 | PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; 561 | PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; 562 | #else 563 | PFN_vkVoidFunction padding_9b43b57c[2]; 564 | #endif /* defined(VK_QNX_screen_surface) */ 565 | #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) 566 | PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; 567 | #else 568 | PFN_vkVoidFunction padding_a8092b55[1]; 569 | #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ 570 | /* VOLK_GENERATE_INSTANCE_TABLE */ 571 | }; 572 | 573 | /** 574 | * Device-specific function pointer table 575 | */ 576 | struct VolkDeviceTable 577 | { 578 | /* VOLK_GENERATE_DEVICE_TABLE */ 579 | #if defined(VK_VERSION_1_0) 580 | PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 581 | PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 582 | PFN_vkAllocateMemory vkAllocateMemory; 583 | PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 584 | PFN_vkBindBufferMemory vkBindBufferMemory; 585 | PFN_vkBindImageMemory vkBindImageMemory; 586 | PFN_vkCmdBeginQuery vkCmdBeginQuery; 587 | PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 588 | PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 589 | PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 590 | PFN_vkCmdBindPipeline vkCmdBindPipeline; 591 | PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 592 | PFN_vkCmdBlitImage vkCmdBlitImage; 593 | PFN_vkCmdClearAttachments vkCmdClearAttachments; 594 | PFN_vkCmdClearColorImage vkCmdClearColorImage; 595 | PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 596 | PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 597 | PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 598 | PFN_vkCmdCopyImage vkCmdCopyImage; 599 | PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 600 | PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 601 | PFN_vkCmdDispatch vkCmdDispatch; 602 | PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 603 | PFN_vkCmdDraw vkCmdDraw; 604 | PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 605 | PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 606 | PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 607 | PFN_vkCmdEndQuery vkCmdEndQuery; 608 | PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 609 | PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 610 | PFN_vkCmdFillBuffer vkCmdFillBuffer; 611 | PFN_vkCmdNextSubpass vkCmdNextSubpass; 612 | PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 613 | PFN_vkCmdPushConstants vkCmdPushConstants; 614 | PFN_vkCmdResetEvent vkCmdResetEvent; 615 | PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 616 | PFN_vkCmdResolveImage vkCmdResolveImage; 617 | PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 618 | PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 619 | PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 620 | PFN_vkCmdSetEvent vkCmdSetEvent; 621 | PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 622 | PFN_vkCmdSetScissor vkCmdSetScissor; 623 | PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 624 | PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 625 | PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 626 | PFN_vkCmdSetViewport vkCmdSetViewport; 627 | PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 628 | PFN_vkCmdWaitEvents vkCmdWaitEvents; 629 | PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 630 | PFN_vkCreateBuffer vkCreateBuffer; 631 | PFN_vkCreateBufferView vkCreateBufferView; 632 | PFN_vkCreateCommandPool vkCreateCommandPool; 633 | PFN_vkCreateComputePipelines vkCreateComputePipelines; 634 | PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 635 | PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 636 | PFN_vkCreateEvent vkCreateEvent; 637 | PFN_vkCreateFence vkCreateFence; 638 | PFN_vkCreateFramebuffer vkCreateFramebuffer; 639 | PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 640 | PFN_vkCreateImage vkCreateImage; 641 | PFN_vkCreateImageView vkCreateImageView; 642 | PFN_vkCreatePipelineCache vkCreatePipelineCache; 643 | PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 644 | PFN_vkCreateQueryPool vkCreateQueryPool; 645 | PFN_vkCreateRenderPass vkCreateRenderPass; 646 | PFN_vkCreateSampler vkCreateSampler; 647 | PFN_vkCreateSemaphore vkCreateSemaphore; 648 | PFN_vkCreateShaderModule vkCreateShaderModule; 649 | PFN_vkDestroyBuffer vkDestroyBuffer; 650 | PFN_vkDestroyBufferView vkDestroyBufferView; 651 | PFN_vkDestroyCommandPool vkDestroyCommandPool; 652 | PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 653 | PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 654 | PFN_vkDestroyDevice vkDestroyDevice; 655 | PFN_vkDestroyEvent vkDestroyEvent; 656 | PFN_vkDestroyFence vkDestroyFence; 657 | PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 658 | PFN_vkDestroyImage vkDestroyImage; 659 | PFN_vkDestroyImageView vkDestroyImageView; 660 | PFN_vkDestroyPipeline vkDestroyPipeline; 661 | PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 662 | PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 663 | PFN_vkDestroyQueryPool vkDestroyQueryPool; 664 | PFN_vkDestroyRenderPass vkDestroyRenderPass; 665 | PFN_vkDestroySampler vkDestroySampler; 666 | PFN_vkDestroySemaphore vkDestroySemaphore; 667 | PFN_vkDestroyShaderModule vkDestroyShaderModule; 668 | PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 669 | PFN_vkEndCommandBuffer vkEndCommandBuffer; 670 | PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 671 | PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 672 | PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 673 | PFN_vkFreeMemory vkFreeMemory; 674 | PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 675 | PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 676 | PFN_vkGetDeviceQueue vkGetDeviceQueue; 677 | PFN_vkGetEventStatus vkGetEventStatus; 678 | PFN_vkGetFenceStatus vkGetFenceStatus; 679 | PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 680 | PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 681 | PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 682 | PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 683 | PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 684 | PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 685 | PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 686 | PFN_vkMapMemory vkMapMemory; 687 | PFN_vkMergePipelineCaches vkMergePipelineCaches; 688 | PFN_vkQueueBindSparse vkQueueBindSparse; 689 | PFN_vkQueueSubmit vkQueueSubmit; 690 | PFN_vkQueueWaitIdle vkQueueWaitIdle; 691 | PFN_vkResetCommandBuffer vkResetCommandBuffer; 692 | PFN_vkResetCommandPool vkResetCommandPool; 693 | PFN_vkResetDescriptorPool vkResetDescriptorPool; 694 | PFN_vkResetEvent vkResetEvent; 695 | PFN_vkResetFences vkResetFences; 696 | PFN_vkSetEvent vkSetEvent; 697 | PFN_vkUnmapMemory vkUnmapMemory; 698 | PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 699 | PFN_vkWaitForFences vkWaitForFences; 700 | #else 701 | PFN_vkVoidFunction padding_6ce80d51[120]; 702 | #endif /* defined(VK_VERSION_1_0) */ 703 | #if defined(VK_VERSION_1_1) 704 | PFN_vkBindBufferMemory2 vkBindBufferMemory2; 705 | PFN_vkBindImageMemory2 vkBindImageMemory2; 706 | PFN_vkCmdDispatchBase vkCmdDispatchBase; 707 | PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; 708 | PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; 709 | PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; 710 | PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; 711 | PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; 712 | PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; 713 | PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; 714 | PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; 715 | PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; 716 | PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; 717 | PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; 718 | PFN_vkTrimCommandPool vkTrimCommandPool; 719 | PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; 720 | #else 721 | PFN_vkVoidFunction padding_1ec56847[16]; 722 | #endif /* defined(VK_VERSION_1_1) */ 723 | #if defined(VK_VERSION_1_2) 724 | PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; 725 | PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; 726 | PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; 727 | PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; 728 | PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; 729 | PFN_vkCreateRenderPass2 vkCreateRenderPass2; 730 | PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; 731 | PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; 732 | PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; 733 | PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; 734 | PFN_vkResetQueryPool vkResetQueryPool; 735 | PFN_vkSignalSemaphore vkSignalSemaphore; 736 | PFN_vkWaitSemaphores vkWaitSemaphores; 737 | #else 738 | PFN_vkVoidFunction padding_a3e00662[13]; 739 | #endif /* defined(VK_VERSION_1_2) */ 740 | #if defined(VK_VERSION_1_3) 741 | PFN_vkCmdBeginRendering vkCmdBeginRendering; 742 | PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; 743 | PFN_vkCmdBlitImage2 vkCmdBlitImage2; 744 | PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; 745 | PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; 746 | PFN_vkCmdCopyImage2 vkCmdCopyImage2; 747 | PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; 748 | PFN_vkCmdEndRendering vkCmdEndRendering; 749 | PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; 750 | PFN_vkCmdResetEvent2 vkCmdResetEvent2; 751 | PFN_vkCmdResolveImage2 vkCmdResolveImage2; 752 | PFN_vkCmdSetCullMode vkCmdSetCullMode; 753 | PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; 754 | PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; 755 | PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; 756 | PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; 757 | PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; 758 | PFN_vkCmdSetEvent2 vkCmdSetEvent2; 759 | PFN_vkCmdSetFrontFace vkCmdSetFrontFace; 760 | PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; 761 | PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; 762 | PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; 763 | PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; 764 | PFN_vkCmdSetStencilOp vkCmdSetStencilOp; 765 | PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; 766 | PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; 767 | PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; 768 | PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; 769 | PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; 770 | PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; 771 | PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; 772 | PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; 773 | PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; 774 | PFN_vkGetPrivateData vkGetPrivateData; 775 | PFN_vkQueueSubmit2 vkQueueSubmit2; 776 | PFN_vkSetPrivateData vkSetPrivateData; 777 | #else 778 | PFN_vkVoidFunction padding_ee798a88[36]; 779 | #endif /* defined(VK_VERSION_1_3) */ 780 | #if defined(VK_VERSION_1_4) 781 | PFN_vkCmdBindDescriptorSets2 vkCmdBindDescriptorSets2; 782 | PFN_vkCmdBindIndexBuffer2 vkCmdBindIndexBuffer2; 783 | PFN_vkCmdPushConstants2 vkCmdPushConstants2; 784 | PFN_vkCmdPushDescriptorSet vkCmdPushDescriptorSet; 785 | PFN_vkCmdPushDescriptorSet2 vkCmdPushDescriptorSet2; 786 | PFN_vkCmdPushDescriptorSetWithTemplate vkCmdPushDescriptorSetWithTemplate; 787 | PFN_vkCmdPushDescriptorSetWithTemplate2 vkCmdPushDescriptorSetWithTemplate2; 788 | PFN_vkCmdSetLineStipple vkCmdSetLineStipple; 789 | PFN_vkCmdSetRenderingAttachmentLocations vkCmdSetRenderingAttachmentLocations; 790 | PFN_vkCmdSetRenderingInputAttachmentIndices vkCmdSetRenderingInputAttachmentIndices; 791 | PFN_vkCopyImageToImage vkCopyImageToImage; 792 | PFN_vkCopyImageToMemory vkCopyImageToMemory; 793 | PFN_vkCopyMemoryToImage vkCopyMemoryToImage; 794 | PFN_vkGetDeviceImageSubresourceLayout vkGetDeviceImageSubresourceLayout; 795 | PFN_vkGetImageSubresourceLayout2 vkGetImageSubresourceLayout2; 796 | PFN_vkGetRenderingAreaGranularity vkGetRenderingAreaGranularity; 797 | PFN_vkMapMemory2 vkMapMemory2; 798 | PFN_vkTransitionImageLayout vkTransitionImageLayout; 799 | PFN_vkUnmapMemory2 vkUnmapMemory2; 800 | #else 801 | PFN_vkVoidFunction padding_82585fa3[19]; 802 | #endif /* defined(VK_VERSION_1_4) */ 803 | #if defined(VK_AMDX_shader_enqueue) 804 | PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; 805 | PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; 806 | PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; 807 | PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; 808 | PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; 809 | PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; 810 | PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; 811 | #else 812 | PFN_vkVoidFunction padding_9d3e2bba[7]; 813 | #endif /* defined(VK_AMDX_shader_enqueue) */ 814 | #if defined(VK_AMD_anti_lag) 815 | PFN_vkAntiLagUpdateAMD vkAntiLagUpdateAMD; 816 | #else 817 | PFN_vkVoidFunction padding_cf792fb4[1]; 818 | #endif /* defined(VK_AMD_anti_lag) */ 819 | #if defined(VK_AMD_buffer_marker) 820 | PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; 821 | #else 822 | PFN_vkVoidFunction padding_7836e92f[1]; 823 | #endif /* defined(VK_AMD_buffer_marker) */ 824 | #if defined(VK_AMD_buffer_marker) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) 825 | PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; 826 | #else 827 | PFN_vkVoidFunction padding_bbf9b7bb[1]; 828 | #endif /* defined(VK_AMD_buffer_marker) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) */ 829 | #if defined(VK_AMD_display_native_hdr) 830 | PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; 831 | #else 832 | PFN_vkVoidFunction padding_6b81b2fb[1]; 833 | #endif /* defined(VK_AMD_display_native_hdr) */ 834 | #if defined(VK_AMD_draw_indirect_count) 835 | PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; 836 | PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; 837 | #else 838 | PFN_vkVoidFunction padding_fbfa9964[2]; 839 | #endif /* defined(VK_AMD_draw_indirect_count) */ 840 | #if defined(VK_AMD_shader_info) 841 | PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; 842 | #else 843 | PFN_vkVoidFunction padding_bfb754b[1]; 844 | #endif /* defined(VK_AMD_shader_info) */ 845 | #if defined(VK_ANDROID_external_memory_android_hardware_buffer) 846 | PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; 847 | PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; 848 | #else 849 | PFN_vkVoidFunction padding_c67b1beb[2]; 850 | #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ 851 | #if defined(VK_ARM_data_graph) 852 | PFN_vkBindDataGraphPipelineSessionMemoryARM vkBindDataGraphPipelineSessionMemoryARM; 853 | PFN_vkCmdDispatchDataGraphARM vkCmdDispatchDataGraphARM; 854 | PFN_vkCreateDataGraphPipelineSessionARM vkCreateDataGraphPipelineSessionARM; 855 | PFN_vkCreateDataGraphPipelinesARM vkCreateDataGraphPipelinesARM; 856 | PFN_vkDestroyDataGraphPipelineSessionARM vkDestroyDataGraphPipelineSessionARM; 857 | PFN_vkGetDataGraphPipelineAvailablePropertiesARM vkGetDataGraphPipelineAvailablePropertiesARM; 858 | PFN_vkGetDataGraphPipelinePropertiesARM vkGetDataGraphPipelinePropertiesARM; 859 | PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM vkGetDataGraphPipelineSessionBindPointRequirementsARM; 860 | PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM vkGetDataGraphPipelineSessionMemoryRequirementsARM; 861 | #else 862 | PFN_vkVoidFunction padding_894d85d8[9]; 863 | #endif /* defined(VK_ARM_data_graph) */ 864 | #if defined(VK_ARM_tensors) 865 | PFN_vkBindTensorMemoryARM vkBindTensorMemoryARM; 866 | PFN_vkCmdCopyTensorARM vkCmdCopyTensorARM; 867 | PFN_vkCreateTensorARM vkCreateTensorARM; 868 | PFN_vkCreateTensorViewARM vkCreateTensorViewARM; 869 | PFN_vkDestroyTensorARM vkDestroyTensorARM; 870 | PFN_vkDestroyTensorViewARM vkDestroyTensorViewARM; 871 | PFN_vkGetDeviceTensorMemoryRequirementsARM vkGetDeviceTensorMemoryRequirementsARM; 872 | PFN_vkGetTensorMemoryRequirementsARM vkGetTensorMemoryRequirementsARM; 873 | #else 874 | PFN_vkVoidFunction padding_df67a729[8]; 875 | #endif /* defined(VK_ARM_tensors) */ 876 | #if defined(VK_ARM_tensors) && defined(VK_EXT_descriptor_buffer) 877 | PFN_vkGetTensorOpaqueCaptureDescriptorDataARM vkGetTensorOpaqueCaptureDescriptorDataARM; 878 | PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM vkGetTensorViewOpaqueCaptureDescriptorDataARM; 879 | #else 880 | PFN_vkVoidFunction padding_9483bf7e[2]; 881 | #endif /* defined(VK_ARM_tensors) && defined(VK_EXT_descriptor_buffer) */ 882 | #if defined(VK_EXT_attachment_feedback_loop_dynamic_state) 883 | PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; 884 | #else 885 | PFN_vkVoidFunction padding_760a41f5[1]; 886 | #endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ 887 | #if defined(VK_EXT_buffer_device_address) 888 | PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; 889 | #else 890 | PFN_vkVoidFunction padding_3b69d885[1]; 891 | #endif /* defined(VK_EXT_buffer_device_address) */ 892 | #if defined(VK_EXT_calibrated_timestamps) 893 | PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; 894 | #else 895 | PFN_vkVoidFunction padding_d0981c89[1]; 896 | #endif /* defined(VK_EXT_calibrated_timestamps) */ 897 | #if defined(VK_EXT_color_write_enable) 898 | PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; 899 | #else 900 | PFN_vkVoidFunction padding_d301ecc3[1]; 901 | #endif /* defined(VK_EXT_color_write_enable) */ 902 | #if defined(VK_EXT_conditional_rendering) 903 | PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; 904 | PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; 905 | #else 906 | PFN_vkVoidFunction padding_ab532c18[2]; 907 | #endif /* defined(VK_EXT_conditional_rendering) */ 908 | #if defined(VK_EXT_custom_resolve) && (defined(VK_KHR_dynamic_rendering) || defined(VK_VERSION_1_3)) 909 | PFN_vkCmdBeginCustomResolveEXT vkCmdBeginCustomResolveEXT; 910 | #else 911 | PFN_vkVoidFunction padding_962e418a[1]; 912 | #endif /* defined(VK_EXT_custom_resolve) && (defined(VK_KHR_dynamic_rendering) || defined(VK_VERSION_1_3)) */ 913 | #if defined(VK_EXT_debug_marker) 914 | PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 915 | PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 916 | PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 917 | PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 918 | PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 919 | #else 920 | PFN_vkVoidFunction padding_89986968[5]; 921 | #endif /* defined(VK_EXT_debug_marker) */ 922 | #if defined(VK_EXT_depth_bias_control) 923 | PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; 924 | #else 925 | PFN_vkVoidFunction padding_bcddab4d[1]; 926 | #endif /* defined(VK_EXT_depth_bias_control) */ 927 | #if defined(VK_EXT_descriptor_buffer) 928 | PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; 929 | PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; 930 | PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; 931 | PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; 932 | PFN_vkGetDescriptorEXT vkGetDescriptorEXT; 933 | PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; 934 | PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; 935 | PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; 936 | PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; 937 | PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; 938 | #else 939 | PFN_vkVoidFunction padding_80aa973c[10]; 940 | #endif /* defined(VK_EXT_descriptor_buffer) */ 941 | #if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) 942 | PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; 943 | #else 944 | PFN_vkVoidFunction padding_98d0fb33[1]; 945 | #endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ 946 | #if defined(VK_EXT_device_fault) 947 | PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; 948 | #else 949 | PFN_vkVoidFunction padding_55095419[1]; 950 | #endif /* defined(VK_EXT_device_fault) */ 951 | #if defined(VK_EXT_device_generated_commands) 952 | PFN_vkCmdExecuteGeneratedCommandsEXT vkCmdExecuteGeneratedCommandsEXT; 953 | PFN_vkCmdPreprocessGeneratedCommandsEXT vkCmdPreprocessGeneratedCommandsEXT; 954 | PFN_vkCreateIndirectCommandsLayoutEXT vkCreateIndirectCommandsLayoutEXT; 955 | PFN_vkCreateIndirectExecutionSetEXT vkCreateIndirectExecutionSetEXT; 956 | PFN_vkDestroyIndirectCommandsLayoutEXT vkDestroyIndirectCommandsLayoutEXT; 957 | PFN_vkDestroyIndirectExecutionSetEXT vkDestroyIndirectExecutionSetEXT; 958 | PFN_vkGetGeneratedCommandsMemoryRequirementsEXT vkGetGeneratedCommandsMemoryRequirementsEXT; 959 | PFN_vkUpdateIndirectExecutionSetPipelineEXT vkUpdateIndirectExecutionSetPipelineEXT; 960 | PFN_vkUpdateIndirectExecutionSetShaderEXT vkUpdateIndirectExecutionSetShaderEXT; 961 | #else 962 | PFN_vkVoidFunction padding_7ba7ebaa[9]; 963 | #endif /* defined(VK_EXT_device_generated_commands) */ 964 | #if defined(VK_EXT_discard_rectangles) 965 | PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 966 | #else 967 | PFN_vkVoidFunction padding_d6355c2[1]; 968 | #endif /* defined(VK_EXT_discard_rectangles) */ 969 | #if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 970 | PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; 971 | PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; 972 | #else 973 | PFN_vkVoidFunction padding_7bb44f77[2]; 974 | #endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ 975 | #if defined(VK_EXT_display_control) 976 | PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 977 | PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 978 | PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 979 | PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 980 | #else 981 | PFN_vkVoidFunction padding_d30dfaaf[4]; 982 | #endif /* defined(VK_EXT_display_control) */ 983 | #if defined(VK_EXT_external_memory_host) 984 | PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; 985 | #else 986 | PFN_vkVoidFunction padding_357656e9[1]; 987 | #endif /* defined(VK_EXT_external_memory_host) */ 988 | #if defined(VK_EXT_external_memory_metal) 989 | PFN_vkGetMemoryMetalHandleEXT vkGetMemoryMetalHandleEXT; 990 | PFN_vkGetMemoryMetalHandlePropertiesEXT vkGetMemoryMetalHandlePropertiesEXT; 991 | #else 992 | PFN_vkVoidFunction padding_37d43fb[2]; 993 | #endif /* defined(VK_EXT_external_memory_metal) */ 994 | #if defined(VK_EXT_fragment_density_map_offset) 995 | PFN_vkCmdEndRendering2EXT vkCmdEndRendering2EXT; 996 | #else 997 | PFN_vkVoidFunction padding_9c90cf11[1]; 998 | #endif /* defined(VK_EXT_fragment_density_map_offset) */ 999 | #if defined(VK_EXT_full_screen_exclusive) 1000 | PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; 1001 | PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; 1002 | #else 1003 | PFN_vkVoidFunction padding_3859df46[2]; 1004 | #endif /* defined(VK_EXT_full_screen_exclusive) */ 1005 | #if defined(VK_EXT_full_screen_exclusive) && (defined(VK_KHR_device_group) || defined(VK_VERSION_1_1)) 1006 | PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; 1007 | #else 1008 | PFN_vkVoidFunction padding_e5b48b5b[1]; 1009 | #endif /* defined(VK_EXT_full_screen_exclusive) && (defined(VK_KHR_device_group) || defined(VK_VERSION_1_1)) */ 1010 | #if defined(VK_EXT_hdr_metadata) 1011 | PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 1012 | #else 1013 | PFN_vkVoidFunction padding_ca6d733c[1]; 1014 | #endif /* defined(VK_EXT_hdr_metadata) */ 1015 | #if defined(VK_EXT_host_image_copy) 1016 | PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; 1017 | PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; 1018 | PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; 1019 | PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; 1020 | #else 1021 | PFN_vkVoidFunction padding_dd6d9b61[4]; 1022 | #endif /* defined(VK_EXT_host_image_copy) */ 1023 | #if defined(VK_EXT_host_query_reset) 1024 | PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; 1025 | #else 1026 | PFN_vkVoidFunction padding_34e58bd3[1]; 1027 | #endif /* defined(VK_EXT_host_query_reset) */ 1028 | #if defined(VK_EXT_image_drm_format_modifier) 1029 | PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; 1030 | #else 1031 | PFN_vkVoidFunction padding_eb50dc14[1]; 1032 | #endif /* defined(VK_EXT_image_drm_format_modifier) */ 1033 | #if defined(VK_EXT_line_rasterization) 1034 | PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; 1035 | #else 1036 | PFN_vkVoidFunction padding_8a212c37[1]; 1037 | #endif /* defined(VK_EXT_line_rasterization) */ 1038 | #if defined(VK_EXT_memory_decompression) 1039 | PFN_vkCmdDecompressMemoryEXT vkCmdDecompressMemoryEXT; 1040 | PFN_vkCmdDecompressMemoryIndirectCountEXT vkCmdDecompressMemoryIndirectCountEXT; 1041 | #else 1042 | PFN_vkVoidFunction padding_c3b649ee[2]; 1043 | #endif /* defined(VK_EXT_memory_decompression) */ 1044 | #if defined(VK_EXT_mesh_shader) 1045 | PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; 1046 | PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; 1047 | #else 1048 | PFN_vkVoidFunction padding_f65e838[2]; 1049 | #endif /* defined(VK_EXT_mesh_shader) */ 1050 | #if defined(VK_EXT_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) 1051 | PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; 1052 | #else 1053 | PFN_vkVoidFunction padding_dcbaac2f[1]; 1054 | #endif /* defined(VK_EXT_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) */ 1055 | #if defined(VK_EXT_metal_objects) 1056 | PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; 1057 | #else 1058 | PFN_vkVoidFunction padding_df21f735[1]; 1059 | #endif /* defined(VK_EXT_metal_objects) */ 1060 | #if defined(VK_EXT_multi_draw) 1061 | PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; 1062 | PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; 1063 | #else 1064 | PFN_vkVoidFunction padding_ce8b93b6[2]; 1065 | #endif /* defined(VK_EXT_multi_draw) */ 1066 | #if defined(VK_EXT_opacity_micromap) 1067 | PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; 1068 | PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; 1069 | PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; 1070 | PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; 1071 | PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; 1072 | PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; 1073 | PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; 1074 | PFN_vkCopyMicromapEXT vkCopyMicromapEXT; 1075 | PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; 1076 | PFN_vkCreateMicromapEXT vkCreateMicromapEXT; 1077 | PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; 1078 | PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; 1079 | PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; 1080 | PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; 1081 | #else 1082 | PFN_vkVoidFunction padding_fa41e53c[14]; 1083 | #endif /* defined(VK_EXT_opacity_micromap) */ 1084 | #if defined(VK_EXT_pageable_device_local_memory) 1085 | PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; 1086 | #else 1087 | PFN_vkVoidFunction padding_b2d2c2d7[1]; 1088 | #endif /* defined(VK_EXT_pageable_device_local_memory) */ 1089 | #if defined(VK_EXT_pipeline_properties) 1090 | PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; 1091 | #else 1092 | PFN_vkVoidFunction padding_11313020[1]; 1093 | #endif /* defined(VK_EXT_pipeline_properties) */ 1094 | #if defined(VK_EXT_present_timing) 1095 | PFN_vkGetPastPresentationTimingEXT vkGetPastPresentationTimingEXT; 1096 | PFN_vkGetSwapchainTimeDomainPropertiesEXT vkGetSwapchainTimeDomainPropertiesEXT; 1097 | PFN_vkGetSwapchainTimingPropertiesEXT vkGetSwapchainTimingPropertiesEXT; 1098 | PFN_vkSetSwapchainPresentTimingQueueSizeEXT vkSetSwapchainPresentTimingQueueSizeEXT; 1099 | #else 1100 | PFN_vkVoidFunction padding_8751feb5[4]; 1101 | #endif /* defined(VK_EXT_present_timing) */ 1102 | #if defined(VK_EXT_private_data) 1103 | PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; 1104 | PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; 1105 | PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; 1106 | PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; 1107 | #else 1108 | PFN_vkVoidFunction padding_108010f[4]; 1109 | #endif /* defined(VK_EXT_private_data) */ 1110 | #if defined(VK_EXT_sample_locations) 1111 | PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; 1112 | #else 1113 | PFN_vkVoidFunction padding_26f9079f[1]; 1114 | #endif /* defined(VK_EXT_sample_locations) */ 1115 | #if defined(VK_EXT_shader_module_identifier) 1116 | PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; 1117 | PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; 1118 | #else 1119 | PFN_vkVoidFunction padding_e10c8f86[2]; 1120 | #endif /* defined(VK_EXT_shader_module_identifier) */ 1121 | #if defined(VK_EXT_shader_object) 1122 | PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; 1123 | PFN_vkCreateShadersEXT vkCreateShadersEXT; 1124 | PFN_vkDestroyShaderEXT vkDestroyShaderEXT; 1125 | PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; 1126 | #else 1127 | PFN_vkVoidFunction padding_374f3e18[4]; 1128 | #endif /* defined(VK_EXT_shader_object) */ 1129 | #if defined(VK_EXT_swapchain_maintenance1) 1130 | PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; 1131 | #else 1132 | PFN_vkVoidFunction padding_ea55bf74[1]; 1133 | #endif /* defined(VK_EXT_swapchain_maintenance1) */ 1134 | #if defined(VK_EXT_transform_feedback) 1135 | PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; 1136 | PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; 1137 | PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; 1138 | PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; 1139 | PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; 1140 | PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; 1141 | #else 1142 | PFN_vkVoidFunction padding_36980658[6]; 1143 | #endif /* defined(VK_EXT_transform_feedback) */ 1144 | #if defined(VK_EXT_validation_cache) 1145 | PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; 1146 | PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; 1147 | PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; 1148 | PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; 1149 | #else 1150 | PFN_vkVoidFunction padding_b4f2df29[4]; 1151 | #endif /* defined(VK_EXT_validation_cache) */ 1152 | #if defined(VK_FUCHSIA_buffer_collection) 1153 | PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; 1154 | PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; 1155 | PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; 1156 | PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; 1157 | PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; 1158 | #else 1159 | PFN_vkVoidFunction padding_8eaa27bc[5]; 1160 | #endif /* defined(VK_FUCHSIA_buffer_collection) */ 1161 | #if defined(VK_FUCHSIA_external_memory) 1162 | PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; 1163 | PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; 1164 | #else 1165 | PFN_vkVoidFunction padding_e3cb8a67[2]; 1166 | #endif /* defined(VK_FUCHSIA_external_memory) */ 1167 | #if defined(VK_FUCHSIA_external_semaphore) 1168 | PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; 1169 | PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; 1170 | #else 1171 | PFN_vkVoidFunction padding_3df6f656[2]; 1172 | #endif /* defined(VK_FUCHSIA_external_semaphore) */ 1173 | #if defined(VK_GOOGLE_display_timing) 1174 | PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 1175 | PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 1176 | #else 1177 | PFN_vkVoidFunction padding_2a6f50cd[2]; 1178 | #endif /* defined(VK_GOOGLE_display_timing) */ 1179 | #if defined(VK_HUAWEI_cluster_culling_shader) 1180 | PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; 1181 | PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; 1182 | #else 1183 | PFN_vkVoidFunction padding_75b97be6[2]; 1184 | #endif /* defined(VK_HUAWEI_cluster_culling_shader) */ 1185 | #if defined(VK_HUAWEI_invocation_mask) 1186 | PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; 1187 | #else 1188 | PFN_vkVoidFunction padding_c3a4569f[1]; 1189 | #endif /* defined(VK_HUAWEI_invocation_mask) */ 1190 | #if defined(VK_HUAWEI_subpass_shading) && VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION >= 2 1191 | PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; 1192 | #else 1193 | PFN_vkVoidFunction padding_2e923f32[1]; 1194 | #endif /* defined(VK_HUAWEI_subpass_shading) && VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION >= 2 */ 1195 | #if defined(VK_HUAWEI_subpass_shading) 1196 | PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; 1197 | #else 1198 | PFN_vkVoidFunction padding_f766fdf5[1]; 1199 | #endif /* defined(VK_HUAWEI_subpass_shading) */ 1200 | #if defined(VK_INTEL_performance_query) 1201 | PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; 1202 | PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; 1203 | PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; 1204 | PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; 1205 | PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; 1206 | PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; 1207 | PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; 1208 | PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; 1209 | PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; 1210 | #else 1211 | PFN_vkVoidFunction padding_495a0a0b[9]; 1212 | #endif /* defined(VK_INTEL_performance_query) */ 1213 | #if defined(VK_KHR_acceleration_structure) 1214 | PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; 1215 | PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; 1216 | PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; 1217 | PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; 1218 | PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; 1219 | PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; 1220 | PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; 1221 | PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; 1222 | PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; 1223 | PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; 1224 | PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; 1225 | PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; 1226 | PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; 1227 | PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; 1228 | PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; 1229 | PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; 1230 | #else 1231 | PFN_vkVoidFunction padding_5a999b78[16]; 1232 | #endif /* defined(VK_KHR_acceleration_structure) */ 1233 | #if defined(VK_KHR_bind_memory2) 1234 | PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; 1235 | PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; 1236 | #else 1237 | PFN_vkVoidFunction padding_ed8481f5[2]; 1238 | #endif /* defined(VK_KHR_bind_memory2) */ 1239 | #if defined(VK_KHR_buffer_device_address) 1240 | PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; 1241 | PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; 1242 | PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; 1243 | #else 1244 | PFN_vkVoidFunction padding_178fdf81[3]; 1245 | #endif /* defined(VK_KHR_buffer_device_address) */ 1246 | #if defined(VK_KHR_calibrated_timestamps) 1247 | PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR; 1248 | #else 1249 | PFN_vkVoidFunction padding_8fd6f40d[1]; 1250 | #endif /* defined(VK_KHR_calibrated_timestamps) */ 1251 | #if defined(VK_KHR_copy_commands2) 1252 | PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; 1253 | PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; 1254 | PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; 1255 | PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; 1256 | PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; 1257 | PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; 1258 | #else 1259 | PFN_vkVoidFunction padding_4c841ff2[6]; 1260 | #endif /* defined(VK_KHR_copy_commands2) */ 1261 | #if defined(VK_KHR_copy_memory_indirect) 1262 | PFN_vkCmdCopyMemoryIndirectKHR vkCmdCopyMemoryIndirectKHR; 1263 | PFN_vkCmdCopyMemoryToImageIndirectKHR vkCmdCopyMemoryToImageIndirectKHR; 1264 | #else 1265 | PFN_vkVoidFunction padding_95995957[2]; 1266 | #endif /* defined(VK_KHR_copy_memory_indirect) */ 1267 | #if defined(VK_KHR_create_renderpass2) 1268 | PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; 1269 | PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; 1270 | PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; 1271 | PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; 1272 | #else 1273 | PFN_vkVoidFunction padding_2a0a8727[4]; 1274 | #endif /* defined(VK_KHR_create_renderpass2) */ 1275 | #if defined(VK_KHR_deferred_host_operations) 1276 | PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; 1277 | PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; 1278 | PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; 1279 | PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; 1280 | PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; 1281 | #else 1282 | PFN_vkVoidFunction padding_346287bb[5]; 1283 | #endif /* defined(VK_KHR_deferred_host_operations) */ 1284 | #if defined(VK_KHR_descriptor_update_template) 1285 | PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; 1286 | PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; 1287 | PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; 1288 | #else 1289 | PFN_vkVoidFunction padding_3d63aec0[3]; 1290 | #endif /* defined(VK_KHR_descriptor_update_template) */ 1291 | #if defined(VK_KHR_device_group) 1292 | PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; 1293 | PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; 1294 | PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; 1295 | #else 1296 | PFN_vkVoidFunction padding_5ebe16bd[3]; 1297 | #endif /* defined(VK_KHR_device_group) */ 1298 | #if defined(VK_KHR_display_swapchain) 1299 | PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 1300 | #else 1301 | PFN_vkVoidFunction padding_12099367[1]; 1302 | #endif /* defined(VK_KHR_display_swapchain) */ 1303 | #if defined(VK_KHR_draw_indirect_count) 1304 | PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; 1305 | PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; 1306 | #else 1307 | PFN_vkVoidFunction padding_7b5bc4c1[2]; 1308 | #endif /* defined(VK_KHR_draw_indirect_count) */ 1309 | #if defined(VK_KHR_dynamic_rendering) 1310 | PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; 1311 | PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; 1312 | #else 1313 | PFN_vkVoidFunction padding_b80f75a5[2]; 1314 | #endif /* defined(VK_KHR_dynamic_rendering) */ 1315 | #if defined(VK_KHR_dynamic_rendering_local_read) 1316 | PFN_vkCmdSetRenderingAttachmentLocationsKHR vkCmdSetRenderingAttachmentLocationsKHR; 1317 | PFN_vkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHR; 1318 | #else 1319 | PFN_vkVoidFunction padding_b1510532[2]; 1320 | #endif /* defined(VK_KHR_dynamic_rendering_local_read) */ 1321 | #if defined(VK_KHR_external_fence_fd) 1322 | PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 1323 | PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 1324 | #else 1325 | PFN_vkVoidFunction padding_a2c787d5[2]; 1326 | #endif /* defined(VK_KHR_external_fence_fd) */ 1327 | #if defined(VK_KHR_external_fence_win32) 1328 | PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; 1329 | PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; 1330 | #else 1331 | PFN_vkVoidFunction padding_55d8e6a9[2]; 1332 | #endif /* defined(VK_KHR_external_fence_win32) */ 1333 | #if defined(VK_KHR_external_memory_fd) 1334 | PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 1335 | PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; 1336 | #else 1337 | PFN_vkVoidFunction padding_982d9e19[2]; 1338 | #endif /* defined(VK_KHR_external_memory_fd) */ 1339 | #if defined(VK_KHR_external_memory_win32) 1340 | PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; 1341 | PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; 1342 | #else 1343 | PFN_vkVoidFunction padding_4af9e25a[2]; 1344 | #endif /* defined(VK_KHR_external_memory_win32) */ 1345 | #if defined(VK_KHR_external_semaphore_fd) 1346 | PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; 1347 | PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 1348 | #else 1349 | PFN_vkVoidFunction padding_2237b7cf[2]; 1350 | #endif /* defined(VK_KHR_external_semaphore_fd) */ 1351 | #if defined(VK_KHR_external_semaphore_win32) 1352 | PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; 1353 | PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; 1354 | #else 1355 | PFN_vkVoidFunction padding_c18dea52[2]; 1356 | #endif /* defined(VK_KHR_external_semaphore_win32) */ 1357 | #if defined(VK_KHR_fragment_shading_rate) 1358 | PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; 1359 | #else 1360 | PFN_vkVoidFunction padding_f91b0a90[1]; 1361 | #endif /* defined(VK_KHR_fragment_shading_rate) */ 1362 | #if defined(VK_KHR_get_memory_requirements2) 1363 | PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; 1364 | PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; 1365 | PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; 1366 | #else 1367 | PFN_vkVoidFunction padding_79d9c5c4[3]; 1368 | #endif /* defined(VK_KHR_get_memory_requirements2) */ 1369 | #if defined(VK_KHR_line_rasterization) 1370 | PFN_vkCmdSetLineStippleKHR vkCmdSetLineStippleKHR; 1371 | #else 1372 | PFN_vkVoidFunction padding_83c2939[1]; 1373 | #endif /* defined(VK_KHR_line_rasterization) */ 1374 | #if defined(VK_KHR_maintenance1) 1375 | PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; 1376 | #else 1377 | PFN_vkVoidFunction padding_4b372c56[1]; 1378 | #endif /* defined(VK_KHR_maintenance1) */ 1379 | #if defined(VK_KHR_maintenance10) 1380 | PFN_vkCmdEndRendering2KHR vkCmdEndRendering2KHR; 1381 | #else 1382 | PFN_vkVoidFunction padding_c866e6ce[1]; 1383 | #endif /* defined(VK_KHR_maintenance10) */ 1384 | #if defined(VK_KHR_maintenance3) 1385 | PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; 1386 | #else 1387 | PFN_vkVoidFunction padding_5ea7858d[1]; 1388 | #endif /* defined(VK_KHR_maintenance3) */ 1389 | #if defined(VK_KHR_maintenance4) 1390 | PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; 1391 | PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; 1392 | PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; 1393 | #else 1394 | PFN_vkVoidFunction padding_8e2d4198[3]; 1395 | #endif /* defined(VK_KHR_maintenance4) */ 1396 | #if defined(VK_KHR_maintenance5) 1397 | PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; 1398 | PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; 1399 | PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; 1400 | PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; 1401 | #else 1402 | PFN_vkVoidFunction padding_37040339[4]; 1403 | #endif /* defined(VK_KHR_maintenance5) */ 1404 | #if defined(VK_KHR_maintenance6) 1405 | PFN_vkCmdBindDescriptorSets2KHR vkCmdBindDescriptorSets2KHR; 1406 | PFN_vkCmdPushConstants2KHR vkCmdPushConstants2KHR; 1407 | #else 1408 | PFN_vkVoidFunction padding_442955d8[2]; 1409 | #endif /* defined(VK_KHR_maintenance6) */ 1410 | #if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) 1411 | PFN_vkCmdPushDescriptorSet2KHR vkCmdPushDescriptorSet2KHR; 1412 | PFN_vkCmdPushDescriptorSetWithTemplate2KHR vkCmdPushDescriptorSetWithTemplate2KHR; 1413 | #else 1414 | PFN_vkVoidFunction padding_80e8513f[2]; 1415 | #endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ 1416 | #if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) 1417 | PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; 1418 | PFN_vkCmdSetDescriptorBufferOffsets2EXT vkCmdSetDescriptorBufferOffsets2EXT; 1419 | #else 1420 | PFN_vkVoidFunction padding_2816b9cd[2]; 1421 | #endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ 1422 | #if defined(VK_KHR_map_memory2) 1423 | PFN_vkMapMemory2KHR vkMapMemory2KHR; 1424 | PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; 1425 | #else 1426 | PFN_vkVoidFunction padding_5a6d8986[2]; 1427 | #endif /* defined(VK_KHR_map_memory2) */ 1428 | #if defined(VK_KHR_performance_query) 1429 | PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; 1430 | PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; 1431 | #else 1432 | PFN_vkVoidFunction padding_76f2673b[2]; 1433 | #endif /* defined(VK_KHR_performance_query) */ 1434 | #if defined(VK_KHR_pipeline_binary) 1435 | PFN_vkCreatePipelineBinariesKHR vkCreatePipelineBinariesKHR; 1436 | PFN_vkDestroyPipelineBinaryKHR vkDestroyPipelineBinaryKHR; 1437 | PFN_vkGetPipelineBinaryDataKHR vkGetPipelineBinaryDataKHR; 1438 | PFN_vkGetPipelineKeyKHR vkGetPipelineKeyKHR; 1439 | PFN_vkReleaseCapturedPipelineDataKHR vkReleaseCapturedPipelineDataKHR; 1440 | #else 1441 | PFN_vkVoidFunction padding_65232810[5]; 1442 | #endif /* defined(VK_KHR_pipeline_binary) */ 1443 | #if defined(VK_KHR_pipeline_executable_properties) 1444 | PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; 1445 | PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; 1446 | PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; 1447 | #else 1448 | PFN_vkVoidFunction padding_f7629b1e[3]; 1449 | #endif /* defined(VK_KHR_pipeline_executable_properties) */ 1450 | #if defined(VK_KHR_present_wait) 1451 | PFN_vkWaitForPresentKHR vkWaitForPresentKHR; 1452 | #else 1453 | PFN_vkVoidFunction padding_b16cbe03[1]; 1454 | #endif /* defined(VK_KHR_present_wait) */ 1455 | #if defined(VK_KHR_present_wait2) 1456 | PFN_vkWaitForPresent2KHR vkWaitForPresent2KHR; 1457 | #else 1458 | PFN_vkVoidFunction padding_7401483a[1]; 1459 | #endif /* defined(VK_KHR_present_wait2) */ 1460 | #if defined(VK_KHR_push_descriptor) 1461 | PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 1462 | #else 1463 | PFN_vkVoidFunction padding_8f7712ad[1]; 1464 | #endif /* defined(VK_KHR_push_descriptor) */ 1465 | #if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) 1466 | PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; 1467 | #else 1468 | PFN_vkVoidFunction padding_dd5f9b4a[1]; 1469 | #endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ 1470 | #if defined(VK_KHR_ray_tracing_pipeline) 1471 | PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; 1472 | PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; 1473 | PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; 1474 | PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; 1475 | PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; 1476 | PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; 1477 | PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; 1478 | #else 1479 | PFN_vkVoidFunction padding_af99aedc[7]; 1480 | #endif /* defined(VK_KHR_ray_tracing_pipeline) */ 1481 | #if defined(VK_KHR_sampler_ycbcr_conversion) 1482 | PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; 1483 | PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; 1484 | #else 1485 | PFN_vkVoidFunction padding_88e61b30[2]; 1486 | #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ 1487 | #if defined(VK_KHR_shared_presentable_image) 1488 | PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; 1489 | #else 1490 | PFN_vkVoidFunction padding_1ff3379[1]; 1491 | #endif /* defined(VK_KHR_shared_presentable_image) */ 1492 | #if defined(VK_KHR_swapchain) 1493 | PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 1494 | PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 1495 | PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 1496 | PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 1497 | PFN_vkQueuePresentKHR vkQueuePresentKHR; 1498 | #else 1499 | PFN_vkVoidFunction padding_a1de893b[5]; 1500 | #endif /* defined(VK_KHR_swapchain) */ 1501 | #if defined(VK_KHR_swapchain_maintenance1) 1502 | PFN_vkReleaseSwapchainImagesKHR vkReleaseSwapchainImagesKHR; 1503 | #else 1504 | PFN_vkVoidFunction padding_e032d5c4[1]; 1505 | #endif /* defined(VK_KHR_swapchain_maintenance1) */ 1506 | #if defined(VK_KHR_synchronization2) 1507 | PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; 1508 | PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; 1509 | PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; 1510 | PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; 1511 | PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; 1512 | PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; 1513 | #else 1514 | PFN_vkVoidFunction padding_e85bf128[6]; 1515 | #endif /* defined(VK_KHR_synchronization2) */ 1516 | #if defined(VK_KHR_timeline_semaphore) 1517 | PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; 1518 | PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; 1519 | PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; 1520 | #else 1521 | PFN_vkVoidFunction padding_c799d931[3]; 1522 | #endif /* defined(VK_KHR_timeline_semaphore) */ 1523 | #if defined(VK_KHR_video_decode_queue) 1524 | PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; 1525 | #else 1526 | PFN_vkVoidFunction padding_7a7cc7ad[1]; 1527 | #endif /* defined(VK_KHR_video_decode_queue) */ 1528 | #if defined(VK_KHR_video_encode_queue) 1529 | PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; 1530 | PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; 1531 | #else 1532 | PFN_vkVoidFunction padding_f2997fb4[2]; 1533 | #endif /* defined(VK_KHR_video_encode_queue) */ 1534 | #if defined(VK_KHR_video_queue) 1535 | PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; 1536 | PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; 1537 | PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; 1538 | PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; 1539 | PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; 1540 | PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; 1541 | PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; 1542 | PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; 1543 | PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; 1544 | PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; 1545 | #else 1546 | PFN_vkVoidFunction padding_98fb7016[10]; 1547 | #endif /* defined(VK_KHR_video_queue) */ 1548 | #if defined(VK_NVX_binary_import) 1549 | PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; 1550 | PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; 1551 | PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; 1552 | PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; 1553 | PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; 1554 | #else 1555 | PFN_vkVoidFunction padding_eb54309b[5]; 1556 | #endif /* defined(VK_NVX_binary_import) */ 1557 | #if defined(VK_NVX_image_view_handle) 1558 | PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; 1559 | #else 1560 | PFN_vkVoidFunction padding_887f6736[1]; 1561 | #endif /* defined(VK_NVX_image_view_handle) */ 1562 | #if defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 3 1563 | PFN_vkGetImageViewHandle64NVX vkGetImageViewHandle64NVX; 1564 | #else 1565 | PFN_vkVoidFunction padding_64ad40e2[1]; 1566 | #endif /* defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 3 */ 1567 | #if defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 2 1568 | PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; 1569 | #else 1570 | PFN_vkVoidFunction padding_d290479a[1]; 1571 | #endif /* defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 2 */ 1572 | #if defined(VK_NV_clip_space_w_scaling) 1573 | PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 1574 | #else 1575 | PFN_vkVoidFunction padding_88d7eb2e[1]; 1576 | #endif /* defined(VK_NV_clip_space_w_scaling) */ 1577 | #if defined(VK_NV_cluster_acceleration_structure) 1578 | PFN_vkCmdBuildClusterAccelerationStructureIndirectNV vkCmdBuildClusterAccelerationStructureIndirectNV; 1579 | PFN_vkGetClusterAccelerationStructureBuildSizesNV vkGetClusterAccelerationStructureBuildSizesNV; 1580 | #else 1581 | PFN_vkVoidFunction padding_60e35395[2]; 1582 | #endif /* defined(VK_NV_cluster_acceleration_structure) */ 1583 | #if defined(VK_NV_compute_occupancy_priority) 1584 | PFN_vkCmdSetComputeOccupancyPriorityNV vkCmdSetComputeOccupancyPriorityNV; 1585 | #else 1586 | PFN_vkVoidFunction padding_488584ea[1]; 1587 | #endif /* defined(VK_NV_compute_occupancy_priority) */ 1588 | #if defined(VK_NV_cooperative_vector) 1589 | PFN_vkCmdConvertCooperativeVectorMatrixNV vkCmdConvertCooperativeVectorMatrixNV; 1590 | PFN_vkConvertCooperativeVectorMatrixNV vkConvertCooperativeVectorMatrixNV; 1591 | #else 1592 | PFN_vkVoidFunction padding_f4a887d0[2]; 1593 | #endif /* defined(VK_NV_cooperative_vector) */ 1594 | #if defined(VK_NV_copy_memory_indirect) 1595 | PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; 1596 | PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; 1597 | #else 1598 | PFN_vkVoidFunction padding_9536230e[2]; 1599 | #endif /* defined(VK_NV_copy_memory_indirect) */ 1600 | #if defined(VK_NV_cuda_kernel_launch) 1601 | PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; 1602 | PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; 1603 | PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; 1604 | PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; 1605 | PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; 1606 | PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; 1607 | #else 1608 | PFN_vkVoidFunction padding_2eabdf3b[6]; 1609 | #endif /* defined(VK_NV_cuda_kernel_launch) */ 1610 | #if defined(VK_NV_device_diagnostic_checkpoints) 1611 | PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; 1612 | PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; 1613 | #else 1614 | PFN_vkVoidFunction padding_adaa5a21[2]; 1615 | #endif /* defined(VK_NV_device_diagnostic_checkpoints) */ 1616 | #if defined(VK_NV_device_diagnostic_checkpoints) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) 1617 | PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; 1618 | #else 1619 | PFN_vkVoidFunction padding_c776633d[1]; 1620 | #endif /* defined(VK_NV_device_diagnostic_checkpoints) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) */ 1621 | #if defined(VK_NV_device_generated_commands) 1622 | PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; 1623 | PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; 1624 | PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; 1625 | PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; 1626 | PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; 1627 | PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; 1628 | #else 1629 | PFN_vkVoidFunction padding_4c7e4395[6]; 1630 | #endif /* defined(VK_NV_device_generated_commands) */ 1631 | #if defined(VK_NV_device_generated_commands_compute) 1632 | PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; 1633 | PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; 1634 | PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; 1635 | #else 1636 | PFN_vkVoidFunction padding_5195094c[3]; 1637 | #endif /* defined(VK_NV_device_generated_commands_compute) */ 1638 | #if defined(VK_NV_external_compute_queue) 1639 | PFN_vkCreateExternalComputeQueueNV vkCreateExternalComputeQueueNV; 1640 | PFN_vkDestroyExternalComputeQueueNV vkDestroyExternalComputeQueueNV; 1641 | PFN_vkGetExternalComputeQueueDataNV vkGetExternalComputeQueueDataNV; 1642 | #else 1643 | PFN_vkVoidFunction padding_4f947e0b[3]; 1644 | #endif /* defined(VK_NV_external_compute_queue) */ 1645 | #if defined(VK_NV_external_memory_rdma) 1646 | PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; 1647 | #else 1648 | PFN_vkVoidFunction padding_920e405[1]; 1649 | #endif /* defined(VK_NV_external_memory_rdma) */ 1650 | #if defined(VK_NV_external_memory_win32) 1651 | PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; 1652 | #else 1653 | PFN_vkVoidFunction padding_c13d6f3a[1]; 1654 | #endif /* defined(VK_NV_external_memory_win32) */ 1655 | #if defined(VK_NV_fragment_shading_rate_enums) 1656 | PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; 1657 | #else 1658 | PFN_vkVoidFunction padding_4979ca14[1]; 1659 | #endif /* defined(VK_NV_fragment_shading_rate_enums) */ 1660 | #if defined(VK_NV_low_latency2) 1661 | PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; 1662 | PFN_vkLatencySleepNV vkLatencySleepNV; 1663 | PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; 1664 | PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; 1665 | PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; 1666 | #else 1667 | PFN_vkVoidFunction padding_fabf8b19[5]; 1668 | #endif /* defined(VK_NV_low_latency2) */ 1669 | #if defined(VK_NV_memory_decompression) 1670 | PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; 1671 | PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; 1672 | #else 1673 | PFN_vkVoidFunction padding_706009[2]; 1674 | #endif /* defined(VK_NV_memory_decompression) */ 1675 | #if defined(VK_NV_mesh_shader) 1676 | PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; 1677 | PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; 1678 | #else 1679 | PFN_vkVoidFunction padding_ac232758[2]; 1680 | #endif /* defined(VK_NV_mesh_shader) */ 1681 | #if defined(VK_NV_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) 1682 | PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; 1683 | #else 1684 | PFN_vkVoidFunction padding_53495be7[1]; 1685 | #endif /* defined(VK_NV_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) */ 1686 | #if defined(VK_NV_optical_flow) 1687 | PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; 1688 | PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; 1689 | PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; 1690 | PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; 1691 | #else 1692 | PFN_vkVoidFunction padding_f67571eb[4]; 1693 | #endif /* defined(VK_NV_optical_flow) */ 1694 | #if defined(VK_NV_partitioned_acceleration_structure) 1695 | PFN_vkCmdBuildPartitionedAccelerationStructuresNV vkCmdBuildPartitionedAccelerationStructuresNV; 1696 | PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV vkGetPartitionedAccelerationStructuresBuildSizesNV; 1697 | #else 1698 | PFN_vkVoidFunction padding_d27c8c6d[2]; 1699 | #endif /* defined(VK_NV_partitioned_acceleration_structure) */ 1700 | #if defined(VK_NV_ray_tracing) 1701 | PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; 1702 | PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; 1703 | PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; 1704 | PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; 1705 | PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; 1706 | PFN_vkCompileDeferredNV vkCompileDeferredNV; 1707 | PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; 1708 | PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; 1709 | PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; 1710 | PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; 1711 | PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; 1712 | PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; 1713 | #else 1714 | PFN_vkVoidFunction padding_feefbeac[12]; 1715 | #endif /* defined(VK_NV_ray_tracing) */ 1716 | #if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 1717 | PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; 1718 | #else 1719 | PFN_vkVoidFunction padding_e3c24f80[1]; 1720 | #endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ 1721 | #if defined(VK_NV_scissor_exclusive) 1722 | PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; 1723 | #else 1724 | PFN_vkVoidFunction padding_8e88d86c[1]; 1725 | #endif /* defined(VK_NV_scissor_exclusive) */ 1726 | #if defined(VK_NV_shading_rate_image) 1727 | PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; 1728 | PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; 1729 | PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; 1730 | #else 1731 | PFN_vkVoidFunction padding_92a0767f[3]; 1732 | #endif /* defined(VK_NV_shading_rate_image) */ 1733 | #if defined(VK_OHOS_external_memory) 1734 | PFN_vkGetMemoryNativeBufferOHOS vkGetMemoryNativeBufferOHOS; 1735 | PFN_vkGetNativeBufferPropertiesOHOS vkGetNativeBufferPropertiesOHOS; 1736 | #else 1737 | PFN_vkVoidFunction padding_9c703846[2]; 1738 | #endif /* defined(VK_OHOS_external_memory) */ 1739 | #if defined(VK_QCOM_tile_memory_heap) 1740 | PFN_vkCmdBindTileMemoryQCOM vkCmdBindTileMemoryQCOM; 1741 | #else 1742 | PFN_vkVoidFunction padding_e2d55d04[1]; 1743 | #endif /* defined(VK_QCOM_tile_memory_heap) */ 1744 | #if defined(VK_QCOM_tile_properties) 1745 | PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; 1746 | PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; 1747 | #else 1748 | PFN_vkVoidFunction padding_be12e32[2]; 1749 | #endif /* defined(VK_QCOM_tile_properties) */ 1750 | #if defined(VK_QCOM_tile_shading) 1751 | PFN_vkCmdBeginPerTileExecutionQCOM vkCmdBeginPerTileExecutionQCOM; 1752 | PFN_vkCmdDispatchTileQCOM vkCmdDispatchTileQCOM; 1753 | PFN_vkCmdEndPerTileExecutionQCOM vkCmdEndPerTileExecutionQCOM; 1754 | #else 1755 | PFN_vkVoidFunction padding_fcd9e1df[3]; 1756 | #endif /* defined(VK_QCOM_tile_shading) */ 1757 | #if defined(VK_QNX_external_memory_screen_buffer) 1758 | PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; 1759 | #else 1760 | PFN_vkVoidFunction padding_1c27735d[1]; 1761 | #endif /* defined(VK_QNX_external_memory_screen_buffer) */ 1762 | #if defined(VK_VALVE_descriptor_set_host_mapping) 1763 | PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; 1764 | PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; 1765 | #else 1766 | PFN_vkVoidFunction padding_fd71e4c6[2]; 1767 | #endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ 1768 | #if (defined(VK_EXT_depth_clamp_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clamp_control)) 1769 | PFN_vkCmdSetDepthClampRangeEXT vkCmdSetDepthClampRangeEXT; 1770 | #else 1771 | PFN_vkVoidFunction padding_faa18a61[1]; 1772 | #endif /* (defined(VK_EXT_depth_clamp_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clamp_control)) */ 1773 | #if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) 1774 | PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; 1775 | PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; 1776 | PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; 1777 | PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; 1778 | PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; 1779 | PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; 1780 | PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; 1781 | PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; 1782 | PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; 1783 | PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; 1784 | PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; 1785 | PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; 1786 | #else 1787 | PFN_vkVoidFunction padding_3e8c720f[12]; 1788 | #endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ 1789 | #if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) 1790 | PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; 1791 | PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; 1792 | PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; 1793 | PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; 1794 | PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; 1795 | #else 1796 | PFN_vkVoidFunction padding_b93e02a6[5]; 1797 | #endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ 1798 | #if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) 1799 | PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; 1800 | PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; 1801 | PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; 1802 | PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; 1803 | PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; 1804 | PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; 1805 | PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; 1806 | PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; 1807 | PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; 1808 | PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; 1809 | #else 1810 | PFN_vkVoidFunction padding_ab566e7e[10]; 1811 | #endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ 1812 | #if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) 1813 | PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; 1814 | #else 1815 | PFN_vkVoidFunction padding_6730ed0c[1]; 1816 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ 1817 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) 1818 | PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; 1819 | #else 1820 | PFN_vkVoidFunction padding_d3ebb335[1]; 1821 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ 1822 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) 1823 | PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; 1824 | PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; 1825 | #else 1826 | PFN_vkVoidFunction padding_a21758f4[2]; 1827 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ 1828 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) 1829 | PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; 1830 | #else 1831 | PFN_vkVoidFunction padding_a498a838[1]; 1832 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ 1833 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) 1834 | PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; 1835 | #else 1836 | PFN_vkVoidFunction padding_67db38de[1]; 1837 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ 1838 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) 1839 | PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; 1840 | #else 1841 | PFN_vkVoidFunction padding_fbea7481[1]; 1842 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ 1843 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) 1844 | PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; 1845 | #else 1846 | PFN_vkVoidFunction padding_3a8ec90e[1]; 1847 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ 1848 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) 1849 | PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; 1850 | PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; 1851 | #else 1852 | PFN_vkVoidFunction padding_29cdb756[2]; 1853 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ 1854 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) 1855 | PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; 1856 | #else 1857 | PFN_vkVoidFunction padding_815a7240[1]; 1858 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ 1859 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) 1860 | PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; 1861 | #else 1862 | PFN_vkVoidFunction padding_d1f00511[1]; 1863 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ 1864 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) 1865 | PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; 1866 | #else 1867 | PFN_vkVoidFunction padding_7a73d553[1]; 1868 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ 1869 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) 1870 | PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; 1871 | PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; 1872 | #else 1873 | PFN_vkVoidFunction padding_6045fb8c[2]; 1874 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ 1875 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) 1876 | PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; 1877 | PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; 1878 | PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; 1879 | #else 1880 | PFN_vkVoidFunction padding_bdc35c80[3]; 1881 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ 1882 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) 1883 | PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; 1884 | #else 1885 | PFN_vkVoidFunction padding_9a5cd6e8[1]; 1886 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ 1887 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) 1888 | PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; 1889 | #else 1890 | PFN_vkVoidFunction padding_3ee17e96[1]; 1891 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ 1892 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) 1893 | PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; 1894 | #else 1895 | PFN_vkVoidFunction padding_263d525a[1]; 1896 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ 1897 | #if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) 1898 | PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; 1899 | #else 1900 | PFN_vkVoidFunction padding_ecddace1[1]; 1901 | #endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ 1902 | #if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) 1903 | PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; 1904 | #else 1905 | PFN_vkVoidFunction padding_d83e1de1[1]; 1906 | #endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ 1907 | #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && (defined(VK_VERSION_1_1) || defined(VK_KHR_descriptor_update_template))) 1908 | PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 1909 | #else 1910 | PFN_vkVoidFunction padding_60f8358a[1]; 1911 | #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && (defined(VK_VERSION_1_1) || defined(VK_KHR_descriptor_update_template))) */ 1912 | #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) 1913 | PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; 1914 | PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; 1915 | #else 1916 | PFN_vkVoidFunction padding_460290c6[2]; 1917 | #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ 1918 | #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) 1919 | PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; 1920 | #else 1921 | PFN_vkVoidFunction padding_cffc198[1]; 1922 | #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ 1923 | /* VOLK_GENERATE_DEVICE_TABLE */ 1924 | }; 1925 | 1926 | /* VOLK_GENERATE_PROTOTYPES_H */ 1927 | #if defined(VK_VERSION_1_0) 1928 | extern PFN_vkCreateDevice vkCreateDevice; 1929 | extern PFN_vkCreateInstance vkCreateInstance; 1930 | extern PFN_vkDestroyInstance vkDestroyInstance; 1931 | extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 1932 | extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; 1933 | extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; 1934 | extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; 1935 | extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 1936 | extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 1937 | extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; 1938 | extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; 1939 | extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 1940 | extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; 1941 | extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 1942 | extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 1943 | extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 1944 | extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; 1945 | #endif /* defined(VK_VERSION_1_0) */ 1946 | #if defined(VK_VERSION_1_1) 1947 | extern PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; 1948 | extern PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; 1949 | extern PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; 1950 | extern PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; 1951 | extern PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; 1952 | extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; 1953 | extern PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; 1954 | extern PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; 1955 | extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; 1956 | extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; 1957 | extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; 1958 | extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; 1959 | #endif /* defined(VK_VERSION_1_1) */ 1960 | #if defined(VK_VERSION_1_3) 1961 | extern PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties; 1962 | #endif /* defined(VK_VERSION_1_3) */ 1963 | #if defined(VK_ARM_data_graph) 1964 | extern PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM; 1965 | extern PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM; 1966 | #endif /* defined(VK_ARM_data_graph) */ 1967 | #if defined(VK_ARM_performance_counters_by_region) 1968 | extern PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM; 1969 | #endif /* defined(VK_ARM_performance_counters_by_region) */ 1970 | #if defined(VK_ARM_tensors) 1971 | extern PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM vkGetPhysicalDeviceExternalTensorPropertiesARM; 1972 | #endif /* defined(VK_ARM_tensors) */ 1973 | #if defined(VK_EXT_acquire_drm_display) 1974 | extern PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; 1975 | extern PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; 1976 | #endif /* defined(VK_EXT_acquire_drm_display) */ 1977 | #if defined(VK_EXT_acquire_xlib_display) 1978 | extern PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; 1979 | extern PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; 1980 | #endif /* defined(VK_EXT_acquire_xlib_display) */ 1981 | #if defined(VK_EXT_calibrated_timestamps) 1982 | extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; 1983 | #endif /* defined(VK_EXT_calibrated_timestamps) */ 1984 | #if defined(VK_EXT_debug_report) 1985 | extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 1986 | extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; 1987 | extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 1988 | #endif /* defined(VK_EXT_debug_report) */ 1989 | #if defined(VK_EXT_debug_utils) 1990 | extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; 1991 | extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; 1992 | extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; 1993 | extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; 1994 | extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; 1995 | extern PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; 1996 | extern PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; 1997 | extern PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; 1998 | extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; 1999 | extern PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; 2000 | extern PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; 2001 | #endif /* defined(VK_EXT_debug_utils) */ 2002 | #if defined(VK_EXT_direct_mode_display) 2003 | extern PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 2004 | #endif /* defined(VK_EXT_direct_mode_display) */ 2005 | #if defined(VK_EXT_directfb_surface) 2006 | extern PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT; 2007 | extern PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT; 2008 | #endif /* defined(VK_EXT_directfb_surface) */ 2009 | #if defined(VK_EXT_display_surface_counter) 2010 | extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; 2011 | #endif /* defined(VK_EXT_display_surface_counter) */ 2012 | #if defined(VK_EXT_full_screen_exclusive) 2013 | extern PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT; 2014 | #endif /* defined(VK_EXT_full_screen_exclusive) */ 2015 | #if defined(VK_EXT_headless_surface) 2016 | extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; 2017 | #endif /* defined(VK_EXT_headless_surface) */ 2018 | #if defined(VK_EXT_metal_surface) 2019 | extern PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT; 2020 | #endif /* defined(VK_EXT_metal_surface) */ 2021 | #if defined(VK_EXT_sample_locations) 2022 | extern PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; 2023 | #endif /* defined(VK_EXT_sample_locations) */ 2024 | #if defined(VK_EXT_tooling_info) 2025 | extern PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; 2026 | #endif /* defined(VK_EXT_tooling_info) */ 2027 | #if defined(VK_FUCHSIA_imagepipe_surface) 2028 | extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; 2029 | #endif /* defined(VK_FUCHSIA_imagepipe_surface) */ 2030 | #if defined(VK_GGP_stream_descriptor_surface) 2031 | extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; 2032 | #endif /* defined(VK_GGP_stream_descriptor_surface) */ 2033 | #if defined(VK_KHR_android_surface) 2034 | extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; 2035 | #endif /* defined(VK_KHR_android_surface) */ 2036 | #if defined(VK_KHR_calibrated_timestamps) 2037 | extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR; 2038 | #endif /* defined(VK_KHR_calibrated_timestamps) */ 2039 | #if defined(VK_KHR_cooperative_matrix) 2040 | extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; 2041 | #endif /* defined(VK_KHR_cooperative_matrix) */ 2042 | #if defined(VK_KHR_device_group_creation) 2043 | extern PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; 2044 | #endif /* defined(VK_KHR_device_group_creation) */ 2045 | #if defined(VK_KHR_display) 2046 | extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; 2047 | extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 2048 | extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 2049 | extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 2050 | extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; 2051 | extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 2052 | extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 2053 | #endif /* defined(VK_KHR_display) */ 2054 | #if defined(VK_KHR_external_fence_capabilities) 2055 | extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; 2056 | #endif /* defined(VK_KHR_external_fence_capabilities) */ 2057 | #if defined(VK_KHR_external_memory_capabilities) 2058 | extern PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; 2059 | #endif /* defined(VK_KHR_external_memory_capabilities) */ 2060 | #if defined(VK_KHR_external_semaphore_capabilities) 2061 | extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; 2062 | #endif /* defined(VK_KHR_external_semaphore_capabilities) */ 2063 | #if defined(VK_KHR_fragment_shading_rate) 2064 | extern PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; 2065 | #endif /* defined(VK_KHR_fragment_shading_rate) */ 2066 | #if defined(VK_KHR_get_display_properties2) 2067 | extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; 2068 | extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; 2069 | extern PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; 2070 | extern PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; 2071 | #endif /* defined(VK_KHR_get_display_properties2) */ 2072 | #if defined(VK_KHR_get_physical_device_properties2) 2073 | extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; 2074 | extern PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; 2075 | extern PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; 2076 | extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; 2077 | extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; 2078 | extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; 2079 | extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; 2080 | #endif /* defined(VK_KHR_get_physical_device_properties2) */ 2081 | #if defined(VK_KHR_get_surface_capabilities2) 2082 | extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; 2083 | extern PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; 2084 | #endif /* defined(VK_KHR_get_surface_capabilities2) */ 2085 | #if defined(VK_KHR_performance_query) 2086 | extern PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; 2087 | extern PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; 2088 | #endif /* defined(VK_KHR_performance_query) */ 2089 | #if defined(VK_KHR_surface) 2090 | extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 2091 | extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 2092 | extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 2093 | extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 2094 | extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 2095 | #endif /* defined(VK_KHR_surface) */ 2096 | #if defined(VK_KHR_video_encode_queue) 2097 | extern PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; 2098 | #endif /* defined(VK_KHR_video_encode_queue) */ 2099 | #if defined(VK_KHR_video_queue) 2100 | extern PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR; 2101 | extern PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR; 2102 | #endif /* defined(VK_KHR_video_queue) */ 2103 | #if defined(VK_KHR_wayland_surface) 2104 | extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; 2105 | extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; 2106 | #endif /* defined(VK_KHR_wayland_surface) */ 2107 | #if defined(VK_KHR_win32_surface) 2108 | extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; 2109 | extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; 2110 | #endif /* defined(VK_KHR_win32_surface) */ 2111 | #if defined(VK_KHR_xcb_surface) 2112 | extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; 2113 | extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; 2114 | #endif /* defined(VK_KHR_xcb_surface) */ 2115 | #if defined(VK_KHR_xlib_surface) 2116 | extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; 2117 | extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; 2118 | #endif /* defined(VK_KHR_xlib_surface) */ 2119 | #if defined(VK_MVK_ios_surface) 2120 | extern PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; 2121 | #endif /* defined(VK_MVK_ios_surface) */ 2122 | #if defined(VK_MVK_macos_surface) 2123 | extern PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; 2124 | #endif /* defined(VK_MVK_macos_surface) */ 2125 | #if defined(VK_NN_vi_surface) 2126 | extern PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; 2127 | #endif /* defined(VK_NN_vi_surface) */ 2128 | #if defined(VK_NV_acquire_winrt_display) 2129 | extern PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV; 2130 | extern PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV; 2131 | #endif /* defined(VK_NV_acquire_winrt_display) */ 2132 | #if defined(VK_NV_cooperative_matrix) 2133 | extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; 2134 | #endif /* defined(VK_NV_cooperative_matrix) */ 2135 | #if defined(VK_NV_cooperative_matrix2) 2136 | extern PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; 2137 | #endif /* defined(VK_NV_cooperative_matrix2) */ 2138 | #if defined(VK_NV_cooperative_vector) 2139 | extern PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV vkGetPhysicalDeviceCooperativeVectorPropertiesNV; 2140 | #endif /* defined(VK_NV_cooperative_vector) */ 2141 | #if defined(VK_NV_coverage_reduction_mode) 2142 | extern PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; 2143 | #endif /* defined(VK_NV_coverage_reduction_mode) */ 2144 | #if defined(VK_NV_external_memory_capabilities) 2145 | extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; 2146 | #endif /* defined(VK_NV_external_memory_capabilities) */ 2147 | #if defined(VK_NV_optical_flow) 2148 | extern PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV; 2149 | #endif /* defined(VK_NV_optical_flow) */ 2150 | #if defined(VK_OHOS_surface) 2151 | extern PFN_vkCreateSurfaceOHOS vkCreateSurfaceOHOS; 2152 | #endif /* defined(VK_OHOS_surface) */ 2153 | #if defined(VK_QNX_screen_surface) 2154 | extern PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; 2155 | extern PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; 2156 | #endif /* defined(VK_QNX_screen_surface) */ 2157 | #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) 2158 | extern PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; 2159 | #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ 2160 | /* VOLK_GENERATE_PROTOTYPES_H */ 2161 | 2162 | #ifndef VOLK_NO_DEVICE_PROTOTYPES 2163 | /* VOLK_GENERATE_PROTOTYPES_H_DEVICE */ 2164 | #if defined(VK_VERSION_1_0) 2165 | extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 2166 | extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 2167 | extern PFN_vkAllocateMemory vkAllocateMemory; 2168 | extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 2169 | extern PFN_vkBindBufferMemory vkBindBufferMemory; 2170 | extern PFN_vkBindImageMemory vkBindImageMemory; 2171 | extern PFN_vkCmdBeginQuery vkCmdBeginQuery; 2172 | extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 2173 | extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 2174 | extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 2175 | extern PFN_vkCmdBindPipeline vkCmdBindPipeline; 2176 | extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 2177 | extern PFN_vkCmdBlitImage vkCmdBlitImage; 2178 | extern PFN_vkCmdClearAttachments vkCmdClearAttachments; 2179 | extern PFN_vkCmdClearColorImage vkCmdClearColorImage; 2180 | extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 2181 | extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 2182 | extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 2183 | extern PFN_vkCmdCopyImage vkCmdCopyImage; 2184 | extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 2185 | extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 2186 | extern PFN_vkCmdDispatch vkCmdDispatch; 2187 | extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 2188 | extern PFN_vkCmdDraw vkCmdDraw; 2189 | extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 2190 | extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 2191 | extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 2192 | extern PFN_vkCmdEndQuery vkCmdEndQuery; 2193 | extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 2194 | extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 2195 | extern PFN_vkCmdFillBuffer vkCmdFillBuffer; 2196 | extern PFN_vkCmdNextSubpass vkCmdNextSubpass; 2197 | extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 2198 | extern PFN_vkCmdPushConstants vkCmdPushConstants; 2199 | extern PFN_vkCmdResetEvent vkCmdResetEvent; 2200 | extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 2201 | extern PFN_vkCmdResolveImage vkCmdResolveImage; 2202 | extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 2203 | extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 2204 | extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 2205 | extern PFN_vkCmdSetEvent vkCmdSetEvent; 2206 | extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 2207 | extern PFN_vkCmdSetScissor vkCmdSetScissor; 2208 | extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 2209 | extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 2210 | extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 2211 | extern PFN_vkCmdSetViewport vkCmdSetViewport; 2212 | extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 2213 | extern PFN_vkCmdWaitEvents vkCmdWaitEvents; 2214 | extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 2215 | extern PFN_vkCreateBuffer vkCreateBuffer; 2216 | extern PFN_vkCreateBufferView vkCreateBufferView; 2217 | extern PFN_vkCreateCommandPool vkCreateCommandPool; 2218 | extern PFN_vkCreateComputePipelines vkCreateComputePipelines; 2219 | extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 2220 | extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 2221 | extern PFN_vkCreateEvent vkCreateEvent; 2222 | extern PFN_vkCreateFence vkCreateFence; 2223 | extern PFN_vkCreateFramebuffer vkCreateFramebuffer; 2224 | extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 2225 | extern PFN_vkCreateImage vkCreateImage; 2226 | extern PFN_vkCreateImageView vkCreateImageView; 2227 | extern PFN_vkCreatePipelineCache vkCreatePipelineCache; 2228 | extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 2229 | extern PFN_vkCreateQueryPool vkCreateQueryPool; 2230 | extern PFN_vkCreateRenderPass vkCreateRenderPass; 2231 | extern PFN_vkCreateSampler vkCreateSampler; 2232 | extern PFN_vkCreateSemaphore vkCreateSemaphore; 2233 | extern PFN_vkCreateShaderModule vkCreateShaderModule; 2234 | extern PFN_vkDestroyBuffer vkDestroyBuffer; 2235 | extern PFN_vkDestroyBufferView vkDestroyBufferView; 2236 | extern PFN_vkDestroyCommandPool vkDestroyCommandPool; 2237 | extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 2238 | extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 2239 | extern PFN_vkDestroyDevice vkDestroyDevice; 2240 | extern PFN_vkDestroyEvent vkDestroyEvent; 2241 | extern PFN_vkDestroyFence vkDestroyFence; 2242 | extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 2243 | extern PFN_vkDestroyImage vkDestroyImage; 2244 | extern PFN_vkDestroyImageView vkDestroyImageView; 2245 | extern PFN_vkDestroyPipeline vkDestroyPipeline; 2246 | extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 2247 | extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 2248 | extern PFN_vkDestroyQueryPool vkDestroyQueryPool; 2249 | extern PFN_vkDestroyRenderPass vkDestroyRenderPass; 2250 | extern PFN_vkDestroySampler vkDestroySampler; 2251 | extern PFN_vkDestroySemaphore vkDestroySemaphore; 2252 | extern PFN_vkDestroyShaderModule vkDestroyShaderModule; 2253 | extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 2254 | extern PFN_vkEndCommandBuffer vkEndCommandBuffer; 2255 | extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 2256 | extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 2257 | extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 2258 | extern PFN_vkFreeMemory vkFreeMemory; 2259 | extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 2260 | extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 2261 | extern PFN_vkGetDeviceQueue vkGetDeviceQueue; 2262 | extern PFN_vkGetEventStatus vkGetEventStatus; 2263 | extern PFN_vkGetFenceStatus vkGetFenceStatus; 2264 | extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 2265 | extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 2266 | extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 2267 | extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 2268 | extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 2269 | extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 2270 | extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 2271 | extern PFN_vkMapMemory vkMapMemory; 2272 | extern PFN_vkMergePipelineCaches vkMergePipelineCaches; 2273 | extern PFN_vkQueueBindSparse vkQueueBindSparse; 2274 | extern PFN_vkQueueSubmit vkQueueSubmit; 2275 | extern PFN_vkQueueWaitIdle vkQueueWaitIdle; 2276 | extern PFN_vkResetCommandBuffer vkResetCommandBuffer; 2277 | extern PFN_vkResetCommandPool vkResetCommandPool; 2278 | extern PFN_vkResetDescriptorPool vkResetDescriptorPool; 2279 | extern PFN_vkResetEvent vkResetEvent; 2280 | extern PFN_vkResetFences vkResetFences; 2281 | extern PFN_vkSetEvent vkSetEvent; 2282 | extern PFN_vkUnmapMemory vkUnmapMemory; 2283 | extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 2284 | extern PFN_vkWaitForFences vkWaitForFences; 2285 | #endif /* defined(VK_VERSION_1_0) */ 2286 | #if defined(VK_VERSION_1_1) 2287 | extern PFN_vkBindBufferMemory2 vkBindBufferMemory2; 2288 | extern PFN_vkBindImageMemory2 vkBindImageMemory2; 2289 | extern PFN_vkCmdDispatchBase vkCmdDispatchBase; 2290 | extern PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; 2291 | extern PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; 2292 | extern PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; 2293 | extern PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; 2294 | extern PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; 2295 | extern PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; 2296 | extern PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; 2297 | extern PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; 2298 | extern PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; 2299 | extern PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; 2300 | extern PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; 2301 | extern PFN_vkTrimCommandPool vkTrimCommandPool; 2302 | extern PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; 2303 | #endif /* defined(VK_VERSION_1_1) */ 2304 | #if defined(VK_VERSION_1_2) 2305 | extern PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; 2306 | extern PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; 2307 | extern PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; 2308 | extern PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; 2309 | extern PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; 2310 | extern PFN_vkCreateRenderPass2 vkCreateRenderPass2; 2311 | extern PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; 2312 | extern PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; 2313 | extern PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; 2314 | extern PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; 2315 | extern PFN_vkResetQueryPool vkResetQueryPool; 2316 | extern PFN_vkSignalSemaphore vkSignalSemaphore; 2317 | extern PFN_vkWaitSemaphores vkWaitSemaphores; 2318 | #endif /* defined(VK_VERSION_1_2) */ 2319 | #if defined(VK_VERSION_1_3) 2320 | extern PFN_vkCmdBeginRendering vkCmdBeginRendering; 2321 | extern PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; 2322 | extern PFN_vkCmdBlitImage2 vkCmdBlitImage2; 2323 | extern PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; 2324 | extern PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; 2325 | extern PFN_vkCmdCopyImage2 vkCmdCopyImage2; 2326 | extern PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; 2327 | extern PFN_vkCmdEndRendering vkCmdEndRendering; 2328 | extern PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; 2329 | extern PFN_vkCmdResetEvent2 vkCmdResetEvent2; 2330 | extern PFN_vkCmdResolveImage2 vkCmdResolveImage2; 2331 | extern PFN_vkCmdSetCullMode vkCmdSetCullMode; 2332 | extern PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; 2333 | extern PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; 2334 | extern PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; 2335 | extern PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; 2336 | extern PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; 2337 | extern PFN_vkCmdSetEvent2 vkCmdSetEvent2; 2338 | extern PFN_vkCmdSetFrontFace vkCmdSetFrontFace; 2339 | extern PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; 2340 | extern PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; 2341 | extern PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; 2342 | extern PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; 2343 | extern PFN_vkCmdSetStencilOp vkCmdSetStencilOp; 2344 | extern PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; 2345 | extern PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; 2346 | extern PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; 2347 | extern PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; 2348 | extern PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; 2349 | extern PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; 2350 | extern PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; 2351 | extern PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; 2352 | extern PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; 2353 | extern PFN_vkGetPrivateData vkGetPrivateData; 2354 | extern PFN_vkQueueSubmit2 vkQueueSubmit2; 2355 | extern PFN_vkSetPrivateData vkSetPrivateData; 2356 | #endif /* defined(VK_VERSION_1_3) */ 2357 | #if defined(VK_VERSION_1_4) 2358 | extern PFN_vkCmdBindDescriptorSets2 vkCmdBindDescriptorSets2; 2359 | extern PFN_vkCmdBindIndexBuffer2 vkCmdBindIndexBuffer2; 2360 | extern PFN_vkCmdPushConstants2 vkCmdPushConstants2; 2361 | extern PFN_vkCmdPushDescriptorSet vkCmdPushDescriptorSet; 2362 | extern PFN_vkCmdPushDescriptorSet2 vkCmdPushDescriptorSet2; 2363 | extern PFN_vkCmdPushDescriptorSetWithTemplate vkCmdPushDescriptorSetWithTemplate; 2364 | extern PFN_vkCmdPushDescriptorSetWithTemplate2 vkCmdPushDescriptorSetWithTemplate2; 2365 | extern PFN_vkCmdSetLineStipple vkCmdSetLineStipple; 2366 | extern PFN_vkCmdSetRenderingAttachmentLocations vkCmdSetRenderingAttachmentLocations; 2367 | extern PFN_vkCmdSetRenderingInputAttachmentIndices vkCmdSetRenderingInputAttachmentIndices; 2368 | extern PFN_vkCopyImageToImage vkCopyImageToImage; 2369 | extern PFN_vkCopyImageToMemory vkCopyImageToMemory; 2370 | extern PFN_vkCopyMemoryToImage vkCopyMemoryToImage; 2371 | extern PFN_vkGetDeviceImageSubresourceLayout vkGetDeviceImageSubresourceLayout; 2372 | extern PFN_vkGetImageSubresourceLayout2 vkGetImageSubresourceLayout2; 2373 | extern PFN_vkGetRenderingAreaGranularity vkGetRenderingAreaGranularity; 2374 | extern PFN_vkMapMemory2 vkMapMemory2; 2375 | extern PFN_vkTransitionImageLayout vkTransitionImageLayout; 2376 | extern PFN_vkUnmapMemory2 vkUnmapMemory2; 2377 | #endif /* defined(VK_VERSION_1_4) */ 2378 | #if defined(VK_AMDX_shader_enqueue) 2379 | extern PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; 2380 | extern PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; 2381 | extern PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; 2382 | extern PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; 2383 | extern PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; 2384 | extern PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; 2385 | extern PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; 2386 | #endif /* defined(VK_AMDX_shader_enqueue) */ 2387 | #if defined(VK_AMD_anti_lag) 2388 | extern PFN_vkAntiLagUpdateAMD vkAntiLagUpdateAMD; 2389 | #endif /* defined(VK_AMD_anti_lag) */ 2390 | #if defined(VK_AMD_buffer_marker) 2391 | extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; 2392 | #endif /* defined(VK_AMD_buffer_marker) */ 2393 | #if defined(VK_AMD_buffer_marker) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) 2394 | extern PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; 2395 | #endif /* defined(VK_AMD_buffer_marker) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) */ 2396 | #if defined(VK_AMD_display_native_hdr) 2397 | extern PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; 2398 | #endif /* defined(VK_AMD_display_native_hdr) */ 2399 | #if defined(VK_AMD_draw_indirect_count) 2400 | extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; 2401 | extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; 2402 | #endif /* defined(VK_AMD_draw_indirect_count) */ 2403 | #if defined(VK_AMD_shader_info) 2404 | extern PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; 2405 | #endif /* defined(VK_AMD_shader_info) */ 2406 | #if defined(VK_ANDROID_external_memory_android_hardware_buffer) 2407 | extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; 2408 | extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; 2409 | #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ 2410 | #if defined(VK_ARM_data_graph) 2411 | extern PFN_vkBindDataGraphPipelineSessionMemoryARM vkBindDataGraphPipelineSessionMemoryARM; 2412 | extern PFN_vkCmdDispatchDataGraphARM vkCmdDispatchDataGraphARM; 2413 | extern PFN_vkCreateDataGraphPipelineSessionARM vkCreateDataGraphPipelineSessionARM; 2414 | extern PFN_vkCreateDataGraphPipelinesARM vkCreateDataGraphPipelinesARM; 2415 | extern PFN_vkDestroyDataGraphPipelineSessionARM vkDestroyDataGraphPipelineSessionARM; 2416 | extern PFN_vkGetDataGraphPipelineAvailablePropertiesARM vkGetDataGraphPipelineAvailablePropertiesARM; 2417 | extern PFN_vkGetDataGraphPipelinePropertiesARM vkGetDataGraphPipelinePropertiesARM; 2418 | extern PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM vkGetDataGraphPipelineSessionBindPointRequirementsARM; 2419 | extern PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM vkGetDataGraphPipelineSessionMemoryRequirementsARM; 2420 | #endif /* defined(VK_ARM_data_graph) */ 2421 | #if defined(VK_ARM_tensors) 2422 | extern PFN_vkBindTensorMemoryARM vkBindTensorMemoryARM; 2423 | extern PFN_vkCmdCopyTensorARM vkCmdCopyTensorARM; 2424 | extern PFN_vkCreateTensorARM vkCreateTensorARM; 2425 | extern PFN_vkCreateTensorViewARM vkCreateTensorViewARM; 2426 | extern PFN_vkDestroyTensorARM vkDestroyTensorARM; 2427 | extern PFN_vkDestroyTensorViewARM vkDestroyTensorViewARM; 2428 | extern PFN_vkGetDeviceTensorMemoryRequirementsARM vkGetDeviceTensorMemoryRequirementsARM; 2429 | extern PFN_vkGetTensorMemoryRequirementsARM vkGetTensorMemoryRequirementsARM; 2430 | #endif /* defined(VK_ARM_tensors) */ 2431 | #if defined(VK_ARM_tensors) && defined(VK_EXT_descriptor_buffer) 2432 | extern PFN_vkGetTensorOpaqueCaptureDescriptorDataARM vkGetTensorOpaqueCaptureDescriptorDataARM; 2433 | extern PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM vkGetTensorViewOpaqueCaptureDescriptorDataARM; 2434 | #endif /* defined(VK_ARM_tensors) && defined(VK_EXT_descriptor_buffer) */ 2435 | #if defined(VK_EXT_attachment_feedback_loop_dynamic_state) 2436 | extern PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; 2437 | #endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ 2438 | #if defined(VK_EXT_buffer_device_address) 2439 | extern PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; 2440 | #endif /* defined(VK_EXT_buffer_device_address) */ 2441 | #if defined(VK_EXT_calibrated_timestamps) 2442 | extern PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; 2443 | #endif /* defined(VK_EXT_calibrated_timestamps) */ 2444 | #if defined(VK_EXT_color_write_enable) 2445 | extern PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; 2446 | #endif /* defined(VK_EXT_color_write_enable) */ 2447 | #if defined(VK_EXT_conditional_rendering) 2448 | extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; 2449 | extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; 2450 | #endif /* defined(VK_EXT_conditional_rendering) */ 2451 | #if defined(VK_EXT_custom_resolve) && (defined(VK_KHR_dynamic_rendering) || defined(VK_VERSION_1_3)) 2452 | extern PFN_vkCmdBeginCustomResolveEXT vkCmdBeginCustomResolveEXT; 2453 | #endif /* defined(VK_EXT_custom_resolve) && (defined(VK_KHR_dynamic_rendering) || defined(VK_VERSION_1_3)) */ 2454 | #if defined(VK_EXT_debug_marker) 2455 | extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 2456 | extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 2457 | extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 2458 | extern PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 2459 | extern PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 2460 | #endif /* defined(VK_EXT_debug_marker) */ 2461 | #if defined(VK_EXT_depth_bias_control) 2462 | extern PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; 2463 | #endif /* defined(VK_EXT_depth_bias_control) */ 2464 | #if defined(VK_EXT_descriptor_buffer) 2465 | extern PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; 2466 | extern PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; 2467 | extern PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; 2468 | extern PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; 2469 | extern PFN_vkGetDescriptorEXT vkGetDescriptorEXT; 2470 | extern PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; 2471 | extern PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; 2472 | extern PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; 2473 | extern PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; 2474 | extern PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; 2475 | #endif /* defined(VK_EXT_descriptor_buffer) */ 2476 | #if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) 2477 | extern PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; 2478 | #endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ 2479 | #if defined(VK_EXT_device_fault) 2480 | extern PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; 2481 | #endif /* defined(VK_EXT_device_fault) */ 2482 | #if defined(VK_EXT_device_generated_commands) 2483 | extern PFN_vkCmdExecuteGeneratedCommandsEXT vkCmdExecuteGeneratedCommandsEXT; 2484 | extern PFN_vkCmdPreprocessGeneratedCommandsEXT vkCmdPreprocessGeneratedCommandsEXT; 2485 | extern PFN_vkCreateIndirectCommandsLayoutEXT vkCreateIndirectCommandsLayoutEXT; 2486 | extern PFN_vkCreateIndirectExecutionSetEXT vkCreateIndirectExecutionSetEXT; 2487 | extern PFN_vkDestroyIndirectCommandsLayoutEXT vkDestroyIndirectCommandsLayoutEXT; 2488 | extern PFN_vkDestroyIndirectExecutionSetEXT vkDestroyIndirectExecutionSetEXT; 2489 | extern PFN_vkGetGeneratedCommandsMemoryRequirementsEXT vkGetGeneratedCommandsMemoryRequirementsEXT; 2490 | extern PFN_vkUpdateIndirectExecutionSetPipelineEXT vkUpdateIndirectExecutionSetPipelineEXT; 2491 | extern PFN_vkUpdateIndirectExecutionSetShaderEXT vkUpdateIndirectExecutionSetShaderEXT; 2492 | #endif /* defined(VK_EXT_device_generated_commands) */ 2493 | #if defined(VK_EXT_discard_rectangles) 2494 | extern PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 2495 | #endif /* defined(VK_EXT_discard_rectangles) */ 2496 | #if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 2497 | extern PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; 2498 | extern PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; 2499 | #endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ 2500 | #if defined(VK_EXT_display_control) 2501 | extern PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 2502 | extern PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 2503 | extern PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 2504 | extern PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 2505 | #endif /* defined(VK_EXT_display_control) */ 2506 | #if defined(VK_EXT_external_memory_host) 2507 | extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; 2508 | #endif /* defined(VK_EXT_external_memory_host) */ 2509 | #if defined(VK_EXT_external_memory_metal) 2510 | extern PFN_vkGetMemoryMetalHandleEXT vkGetMemoryMetalHandleEXT; 2511 | extern PFN_vkGetMemoryMetalHandlePropertiesEXT vkGetMemoryMetalHandlePropertiesEXT; 2512 | #endif /* defined(VK_EXT_external_memory_metal) */ 2513 | #if defined(VK_EXT_fragment_density_map_offset) 2514 | extern PFN_vkCmdEndRendering2EXT vkCmdEndRendering2EXT; 2515 | #endif /* defined(VK_EXT_fragment_density_map_offset) */ 2516 | #if defined(VK_EXT_full_screen_exclusive) 2517 | extern PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; 2518 | extern PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; 2519 | #endif /* defined(VK_EXT_full_screen_exclusive) */ 2520 | #if defined(VK_EXT_full_screen_exclusive) && (defined(VK_KHR_device_group) || defined(VK_VERSION_1_1)) 2521 | extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; 2522 | #endif /* defined(VK_EXT_full_screen_exclusive) && (defined(VK_KHR_device_group) || defined(VK_VERSION_1_1)) */ 2523 | #if defined(VK_EXT_hdr_metadata) 2524 | extern PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 2525 | #endif /* defined(VK_EXT_hdr_metadata) */ 2526 | #if defined(VK_EXT_host_image_copy) 2527 | extern PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; 2528 | extern PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; 2529 | extern PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; 2530 | extern PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; 2531 | #endif /* defined(VK_EXT_host_image_copy) */ 2532 | #if defined(VK_EXT_host_query_reset) 2533 | extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; 2534 | #endif /* defined(VK_EXT_host_query_reset) */ 2535 | #if defined(VK_EXT_image_drm_format_modifier) 2536 | extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; 2537 | #endif /* defined(VK_EXT_image_drm_format_modifier) */ 2538 | #if defined(VK_EXT_line_rasterization) 2539 | extern PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; 2540 | #endif /* defined(VK_EXT_line_rasterization) */ 2541 | #if defined(VK_EXT_memory_decompression) 2542 | extern PFN_vkCmdDecompressMemoryEXT vkCmdDecompressMemoryEXT; 2543 | extern PFN_vkCmdDecompressMemoryIndirectCountEXT vkCmdDecompressMemoryIndirectCountEXT; 2544 | #endif /* defined(VK_EXT_memory_decompression) */ 2545 | #if defined(VK_EXT_mesh_shader) 2546 | extern PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; 2547 | extern PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; 2548 | #endif /* defined(VK_EXT_mesh_shader) */ 2549 | #if defined(VK_EXT_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) 2550 | extern PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; 2551 | #endif /* defined(VK_EXT_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) */ 2552 | #if defined(VK_EXT_metal_objects) 2553 | extern PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; 2554 | #endif /* defined(VK_EXT_metal_objects) */ 2555 | #if defined(VK_EXT_multi_draw) 2556 | extern PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; 2557 | extern PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; 2558 | #endif /* defined(VK_EXT_multi_draw) */ 2559 | #if defined(VK_EXT_opacity_micromap) 2560 | extern PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; 2561 | extern PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; 2562 | extern PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; 2563 | extern PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; 2564 | extern PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; 2565 | extern PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; 2566 | extern PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; 2567 | extern PFN_vkCopyMicromapEXT vkCopyMicromapEXT; 2568 | extern PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; 2569 | extern PFN_vkCreateMicromapEXT vkCreateMicromapEXT; 2570 | extern PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; 2571 | extern PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; 2572 | extern PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; 2573 | extern PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; 2574 | #endif /* defined(VK_EXT_opacity_micromap) */ 2575 | #if defined(VK_EXT_pageable_device_local_memory) 2576 | extern PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; 2577 | #endif /* defined(VK_EXT_pageable_device_local_memory) */ 2578 | #if defined(VK_EXT_pipeline_properties) 2579 | extern PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; 2580 | #endif /* defined(VK_EXT_pipeline_properties) */ 2581 | #if defined(VK_EXT_present_timing) 2582 | extern PFN_vkGetPastPresentationTimingEXT vkGetPastPresentationTimingEXT; 2583 | extern PFN_vkGetSwapchainTimeDomainPropertiesEXT vkGetSwapchainTimeDomainPropertiesEXT; 2584 | extern PFN_vkGetSwapchainTimingPropertiesEXT vkGetSwapchainTimingPropertiesEXT; 2585 | extern PFN_vkSetSwapchainPresentTimingQueueSizeEXT vkSetSwapchainPresentTimingQueueSizeEXT; 2586 | #endif /* defined(VK_EXT_present_timing) */ 2587 | #if defined(VK_EXT_private_data) 2588 | extern PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; 2589 | extern PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; 2590 | extern PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; 2591 | extern PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; 2592 | #endif /* defined(VK_EXT_private_data) */ 2593 | #if defined(VK_EXT_sample_locations) 2594 | extern PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; 2595 | #endif /* defined(VK_EXT_sample_locations) */ 2596 | #if defined(VK_EXT_shader_module_identifier) 2597 | extern PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; 2598 | extern PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; 2599 | #endif /* defined(VK_EXT_shader_module_identifier) */ 2600 | #if defined(VK_EXT_shader_object) 2601 | extern PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; 2602 | extern PFN_vkCreateShadersEXT vkCreateShadersEXT; 2603 | extern PFN_vkDestroyShaderEXT vkDestroyShaderEXT; 2604 | extern PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; 2605 | #endif /* defined(VK_EXT_shader_object) */ 2606 | #if defined(VK_EXT_swapchain_maintenance1) 2607 | extern PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; 2608 | #endif /* defined(VK_EXT_swapchain_maintenance1) */ 2609 | #if defined(VK_EXT_transform_feedback) 2610 | extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; 2611 | extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; 2612 | extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; 2613 | extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; 2614 | extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; 2615 | extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; 2616 | #endif /* defined(VK_EXT_transform_feedback) */ 2617 | #if defined(VK_EXT_validation_cache) 2618 | extern PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; 2619 | extern PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; 2620 | extern PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; 2621 | extern PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; 2622 | #endif /* defined(VK_EXT_validation_cache) */ 2623 | #if defined(VK_FUCHSIA_buffer_collection) 2624 | extern PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; 2625 | extern PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; 2626 | extern PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; 2627 | extern PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; 2628 | extern PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; 2629 | #endif /* defined(VK_FUCHSIA_buffer_collection) */ 2630 | #if defined(VK_FUCHSIA_external_memory) 2631 | extern PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; 2632 | extern PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; 2633 | #endif /* defined(VK_FUCHSIA_external_memory) */ 2634 | #if defined(VK_FUCHSIA_external_semaphore) 2635 | extern PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; 2636 | extern PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; 2637 | #endif /* defined(VK_FUCHSIA_external_semaphore) */ 2638 | #if defined(VK_GOOGLE_display_timing) 2639 | extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 2640 | extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 2641 | #endif /* defined(VK_GOOGLE_display_timing) */ 2642 | #if defined(VK_HUAWEI_cluster_culling_shader) 2643 | extern PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; 2644 | extern PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; 2645 | #endif /* defined(VK_HUAWEI_cluster_culling_shader) */ 2646 | #if defined(VK_HUAWEI_invocation_mask) 2647 | extern PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; 2648 | #endif /* defined(VK_HUAWEI_invocation_mask) */ 2649 | #if defined(VK_HUAWEI_subpass_shading) && VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION >= 2 2650 | extern PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; 2651 | #endif /* defined(VK_HUAWEI_subpass_shading) && VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION >= 2 */ 2652 | #if defined(VK_HUAWEI_subpass_shading) 2653 | extern PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; 2654 | #endif /* defined(VK_HUAWEI_subpass_shading) */ 2655 | #if defined(VK_INTEL_performance_query) 2656 | extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; 2657 | extern PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; 2658 | extern PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; 2659 | extern PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; 2660 | extern PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; 2661 | extern PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; 2662 | extern PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; 2663 | extern PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; 2664 | extern PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; 2665 | #endif /* defined(VK_INTEL_performance_query) */ 2666 | #if defined(VK_KHR_acceleration_structure) 2667 | extern PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; 2668 | extern PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; 2669 | extern PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; 2670 | extern PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; 2671 | extern PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; 2672 | extern PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; 2673 | extern PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; 2674 | extern PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; 2675 | extern PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; 2676 | extern PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; 2677 | extern PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; 2678 | extern PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; 2679 | extern PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; 2680 | extern PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; 2681 | extern PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; 2682 | extern PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; 2683 | #endif /* defined(VK_KHR_acceleration_structure) */ 2684 | #if defined(VK_KHR_bind_memory2) 2685 | extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; 2686 | extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; 2687 | #endif /* defined(VK_KHR_bind_memory2) */ 2688 | #if defined(VK_KHR_buffer_device_address) 2689 | extern PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; 2690 | extern PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; 2691 | extern PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; 2692 | #endif /* defined(VK_KHR_buffer_device_address) */ 2693 | #if defined(VK_KHR_calibrated_timestamps) 2694 | extern PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR; 2695 | #endif /* defined(VK_KHR_calibrated_timestamps) */ 2696 | #if defined(VK_KHR_copy_commands2) 2697 | extern PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; 2698 | extern PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; 2699 | extern PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; 2700 | extern PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; 2701 | extern PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; 2702 | extern PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; 2703 | #endif /* defined(VK_KHR_copy_commands2) */ 2704 | #if defined(VK_KHR_copy_memory_indirect) 2705 | extern PFN_vkCmdCopyMemoryIndirectKHR vkCmdCopyMemoryIndirectKHR; 2706 | extern PFN_vkCmdCopyMemoryToImageIndirectKHR vkCmdCopyMemoryToImageIndirectKHR; 2707 | #endif /* defined(VK_KHR_copy_memory_indirect) */ 2708 | #if defined(VK_KHR_create_renderpass2) 2709 | extern PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; 2710 | extern PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; 2711 | extern PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; 2712 | extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; 2713 | #endif /* defined(VK_KHR_create_renderpass2) */ 2714 | #if defined(VK_KHR_deferred_host_operations) 2715 | extern PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; 2716 | extern PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; 2717 | extern PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; 2718 | extern PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; 2719 | extern PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; 2720 | #endif /* defined(VK_KHR_deferred_host_operations) */ 2721 | #if defined(VK_KHR_descriptor_update_template) 2722 | extern PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; 2723 | extern PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; 2724 | extern PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; 2725 | #endif /* defined(VK_KHR_descriptor_update_template) */ 2726 | #if defined(VK_KHR_device_group) 2727 | extern PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; 2728 | extern PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; 2729 | extern PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; 2730 | #endif /* defined(VK_KHR_device_group) */ 2731 | #if defined(VK_KHR_display_swapchain) 2732 | extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 2733 | #endif /* defined(VK_KHR_display_swapchain) */ 2734 | #if defined(VK_KHR_draw_indirect_count) 2735 | extern PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; 2736 | extern PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; 2737 | #endif /* defined(VK_KHR_draw_indirect_count) */ 2738 | #if defined(VK_KHR_dynamic_rendering) 2739 | extern PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; 2740 | extern PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; 2741 | #endif /* defined(VK_KHR_dynamic_rendering) */ 2742 | #if defined(VK_KHR_dynamic_rendering_local_read) 2743 | extern PFN_vkCmdSetRenderingAttachmentLocationsKHR vkCmdSetRenderingAttachmentLocationsKHR; 2744 | extern PFN_vkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHR; 2745 | #endif /* defined(VK_KHR_dynamic_rendering_local_read) */ 2746 | #if defined(VK_KHR_external_fence_fd) 2747 | extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 2748 | extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 2749 | #endif /* defined(VK_KHR_external_fence_fd) */ 2750 | #if defined(VK_KHR_external_fence_win32) 2751 | extern PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; 2752 | extern PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; 2753 | #endif /* defined(VK_KHR_external_fence_win32) */ 2754 | #if defined(VK_KHR_external_memory_fd) 2755 | extern PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 2756 | extern PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; 2757 | #endif /* defined(VK_KHR_external_memory_fd) */ 2758 | #if defined(VK_KHR_external_memory_win32) 2759 | extern PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; 2760 | extern PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; 2761 | #endif /* defined(VK_KHR_external_memory_win32) */ 2762 | #if defined(VK_KHR_external_semaphore_fd) 2763 | extern PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; 2764 | extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 2765 | #endif /* defined(VK_KHR_external_semaphore_fd) */ 2766 | #if defined(VK_KHR_external_semaphore_win32) 2767 | extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; 2768 | extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; 2769 | #endif /* defined(VK_KHR_external_semaphore_win32) */ 2770 | #if defined(VK_KHR_fragment_shading_rate) 2771 | extern PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; 2772 | #endif /* defined(VK_KHR_fragment_shading_rate) */ 2773 | #if defined(VK_KHR_get_memory_requirements2) 2774 | extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; 2775 | extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; 2776 | extern PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; 2777 | #endif /* defined(VK_KHR_get_memory_requirements2) */ 2778 | #if defined(VK_KHR_line_rasterization) 2779 | extern PFN_vkCmdSetLineStippleKHR vkCmdSetLineStippleKHR; 2780 | #endif /* defined(VK_KHR_line_rasterization) */ 2781 | #if defined(VK_KHR_maintenance1) 2782 | extern PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; 2783 | #endif /* defined(VK_KHR_maintenance1) */ 2784 | #if defined(VK_KHR_maintenance10) 2785 | extern PFN_vkCmdEndRendering2KHR vkCmdEndRendering2KHR; 2786 | #endif /* defined(VK_KHR_maintenance10) */ 2787 | #if defined(VK_KHR_maintenance3) 2788 | extern PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; 2789 | #endif /* defined(VK_KHR_maintenance3) */ 2790 | #if defined(VK_KHR_maintenance4) 2791 | extern PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; 2792 | extern PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; 2793 | extern PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; 2794 | #endif /* defined(VK_KHR_maintenance4) */ 2795 | #if defined(VK_KHR_maintenance5) 2796 | extern PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; 2797 | extern PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; 2798 | extern PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; 2799 | extern PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; 2800 | #endif /* defined(VK_KHR_maintenance5) */ 2801 | #if defined(VK_KHR_maintenance6) 2802 | extern PFN_vkCmdBindDescriptorSets2KHR vkCmdBindDescriptorSets2KHR; 2803 | extern PFN_vkCmdPushConstants2KHR vkCmdPushConstants2KHR; 2804 | #endif /* defined(VK_KHR_maintenance6) */ 2805 | #if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) 2806 | extern PFN_vkCmdPushDescriptorSet2KHR vkCmdPushDescriptorSet2KHR; 2807 | extern PFN_vkCmdPushDescriptorSetWithTemplate2KHR vkCmdPushDescriptorSetWithTemplate2KHR; 2808 | #endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ 2809 | #if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) 2810 | extern PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; 2811 | extern PFN_vkCmdSetDescriptorBufferOffsets2EXT vkCmdSetDescriptorBufferOffsets2EXT; 2812 | #endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ 2813 | #if defined(VK_KHR_map_memory2) 2814 | extern PFN_vkMapMemory2KHR vkMapMemory2KHR; 2815 | extern PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; 2816 | #endif /* defined(VK_KHR_map_memory2) */ 2817 | #if defined(VK_KHR_performance_query) 2818 | extern PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; 2819 | extern PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; 2820 | #endif /* defined(VK_KHR_performance_query) */ 2821 | #if defined(VK_KHR_pipeline_binary) 2822 | extern PFN_vkCreatePipelineBinariesKHR vkCreatePipelineBinariesKHR; 2823 | extern PFN_vkDestroyPipelineBinaryKHR vkDestroyPipelineBinaryKHR; 2824 | extern PFN_vkGetPipelineBinaryDataKHR vkGetPipelineBinaryDataKHR; 2825 | extern PFN_vkGetPipelineKeyKHR vkGetPipelineKeyKHR; 2826 | extern PFN_vkReleaseCapturedPipelineDataKHR vkReleaseCapturedPipelineDataKHR; 2827 | #endif /* defined(VK_KHR_pipeline_binary) */ 2828 | #if defined(VK_KHR_pipeline_executable_properties) 2829 | extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; 2830 | extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; 2831 | extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; 2832 | #endif /* defined(VK_KHR_pipeline_executable_properties) */ 2833 | #if defined(VK_KHR_present_wait) 2834 | extern PFN_vkWaitForPresentKHR vkWaitForPresentKHR; 2835 | #endif /* defined(VK_KHR_present_wait) */ 2836 | #if defined(VK_KHR_present_wait2) 2837 | extern PFN_vkWaitForPresent2KHR vkWaitForPresent2KHR; 2838 | #endif /* defined(VK_KHR_present_wait2) */ 2839 | #if defined(VK_KHR_push_descriptor) 2840 | extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 2841 | #endif /* defined(VK_KHR_push_descriptor) */ 2842 | #if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) 2843 | extern PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; 2844 | #endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ 2845 | #if defined(VK_KHR_ray_tracing_pipeline) 2846 | extern PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; 2847 | extern PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; 2848 | extern PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; 2849 | extern PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; 2850 | extern PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; 2851 | extern PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; 2852 | extern PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; 2853 | #endif /* defined(VK_KHR_ray_tracing_pipeline) */ 2854 | #if defined(VK_KHR_sampler_ycbcr_conversion) 2855 | extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; 2856 | extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; 2857 | #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ 2858 | #if defined(VK_KHR_shared_presentable_image) 2859 | extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; 2860 | #endif /* defined(VK_KHR_shared_presentable_image) */ 2861 | #if defined(VK_KHR_swapchain) 2862 | extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 2863 | extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 2864 | extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 2865 | extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 2866 | extern PFN_vkQueuePresentKHR vkQueuePresentKHR; 2867 | #endif /* defined(VK_KHR_swapchain) */ 2868 | #if defined(VK_KHR_swapchain_maintenance1) 2869 | extern PFN_vkReleaseSwapchainImagesKHR vkReleaseSwapchainImagesKHR; 2870 | #endif /* defined(VK_KHR_swapchain_maintenance1) */ 2871 | #if defined(VK_KHR_synchronization2) 2872 | extern PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; 2873 | extern PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; 2874 | extern PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; 2875 | extern PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; 2876 | extern PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; 2877 | extern PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; 2878 | #endif /* defined(VK_KHR_synchronization2) */ 2879 | #if defined(VK_KHR_timeline_semaphore) 2880 | extern PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; 2881 | extern PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; 2882 | extern PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; 2883 | #endif /* defined(VK_KHR_timeline_semaphore) */ 2884 | #if defined(VK_KHR_video_decode_queue) 2885 | extern PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; 2886 | #endif /* defined(VK_KHR_video_decode_queue) */ 2887 | #if defined(VK_KHR_video_encode_queue) 2888 | extern PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; 2889 | extern PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; 2890 | #endif /* defined(VK_KHR_video_encode_queue) */ 2891 | #if defined(VK_KHR_video_queue) 2892 | extern PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; 2893 | extern PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; 2894 | extern PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; 2895 | extern PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; 2896 | extern PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; 2897 | extern PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; 2898 | extern PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; 2899 | extern PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; 2900 | extern PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; 2901 | extern PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; 2902 | #endif /* defined(VK_KHR_video_queue) */ 2903 | #if defined(VK_NVX_binary_import) 2904 | extern PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; 2905 | extern PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; 2906 | extern PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; 2907 | extern PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; 2908 | extern PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; 2909 | #endif /* defined(VK_NVX_binary_import) */ 2910 | #if defined(VK_NVX_image_view_handle) 2911 | extern PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; 2912 | #endif /* defined(VK_NVX_image_view_handle) */ 2913 | #if defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 3 2914 | extern PFN_vkGetImageViewHandle64NVX vkGetImageViewHandle64NVX; 2915 | #endif /* defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 3 */ 2916 | #if defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 2 2917 | extern PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; 2918 | #endif /* defined(VK_NVX_image_view_handle) && VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION >= 2 */ 2919 | #if defined(VK_NV_clip_space_w_scaling) 2920 | extern PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 2921 | #endif /* defined(VK_NV_clip_space_w_scaling) */ 2922 | #if defined(VK_NV_cluster_acceleration_structure) 2923 | extern PFN_vkCmdBuildClusterAccelerationStructureIndirectNV vkCmdBuildClusterAccelerationStructureIndirectNV; 2924 | extern PFN_vkGetClusterAccelerationStructureBuildSizesNV vkGetClusterAccelerationStructureBuildSizesNV; 2925 | #endif /* defined(VK_NV_cluster_acceleration_structure) */ 2926 | #if defined(VK_NV_compute_occupancy_priority) 2927 | extern PFN_vkCmdSetComputeOccupancyPriorityNV vkCmdSetComputeOccupancyPriorityNV; 2928 | #endif /* defined(VK_NV_compute_occupancy_priority) */ 2929 | #if defined(VK_NV_cooperative_vector) 2930 | extern PFN_vkCmdConvertCooperativeVectorMatrixNV vkCmdConvertCooperativeVectorMatrixNV; 2931 | extern PFN_vkConvertCooperativeVectorMatrixNV vkConvertCooperativeVectorMatrixNV; 2932 | #endif /* defined(VK_NV_cooperative_vector) */ 2933 | #if defined(VK_NV_copy_memory_indirect) 2934 | extern PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; 2935 | extern PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; 2936 | #endif /* defined(VK_NV_copy_memory_indirect) */ 2937 | #if defined(VK_NV_cuda_kernel_launch) 2938 | extern PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; 2939 | extern PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; 2940 | extern PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; 2941 | extern PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; 2942 | extern PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; 2943 | extern PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; 2944 | #endif /* defined(VK_NV_cuda_kernel_launch) */ 2945 | #if defined(VK_NV_device_diagnostic_checkpoints) 2946 | extern PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; 2947 | extern PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; 2948 | #endif /* defined(VK_NV_device_diagnostic_checkpoints) */ 2949 | #if defined(VK_NV_device_diagnostic_checkpoints) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) 2950 | extern PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; 2951 | #endif /* defined(VK_NV_device_diagnostic_checkpoints) && (defined(VK_VERSION_1_3) || defined(VK_KHR_synchronization2)) */ 2952 | #if defined(VK_NV_device_generated_commands) 2953 | extern PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; 2954 | extern PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; 2955 | extern PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; 2956 | extern PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; 2957 | extern PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; 2958 | extern PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; 2959 | #endif /* defined(VK_NV_device_generated_commands) */ 2960 | #if defined(VK_NV_device_generated_commands_compute) 2961 | extern PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; 2962 | extern PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; 2963 | extern PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; 2964 | #endif /* defined(VK_NV_device_generated_commands_compute) */ 2965 | #if defined(VK_NV_external_compute_queue) 2966 | extern PFN_vkCreateExternalComputeQueueNV vkCreateExternalComputeQueueNV; 2967 | extern PFN_vkDestroyExternalComputeQueueNV vkDestroyExternalComputeQueueNV; 2968 | extern PFN_vkGetExternalComputeQueueDataNV vkGetExternalComputeQueueDataNV; 2969 | #endif /* defined(VK_NV_external_compute_queue) */ 2970 | #if defined(VK_NV_external_memory_rdma) 2971 | extern PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; 2972 | #endif /* defined(VK_NV_external_memory_rdma) */ 2973 | #if defined(VK_NV_external_memory_win32) 2974 | extern PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; 2975 | #endif /* defined(VK_NV_external_memory_win32) */ 2976 | #if defined(VK_NV_fragment_shading_rate_enums) 2977 | extern PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; 2978 | #endif /* defined(VK_NV_fragment_shading_rate_enums) */ 2979 | #if defined(VK_NV_low_latency2) 2980 | extern PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; 2981 | extern PFN_vkLatencySleepNV vkLatencySleepNV; 2982 | extern PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; 2983 | extern PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; 2984 | extern PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; 2985 | #endif /* defined(VK_NV_low_latency2) */ 2986 | #if defined(VK_NV_memory_decompression) 2987 | extern PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; 2988 | extern PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; 2989 | #endif /* defined(VK_NV_memory_decompression) */ 2990 | #if defined(VK_NV_mesh_shader) 2991 | extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; 2992 | extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; 2993 | #endif /* defined(VK_NV_mesh_shader) */ 2994 | #if defined(VK_NV_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) 2995 | extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; 2996 | #endif /* defined(VK_NV_mesh_shader) && (defined(VK_VERSION_1_2) || defined(VK_KHR_draw_indirect_count) || defined(VK_AMD_draw_indirect_count)) */ 2997 | #if defined(VK_NV_optical_flow) 2998 | extern PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; 2999 | extern PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; 3000 | extern PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; 3001 | extern PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; 3002 | #endif /* defined(VK_NV_optical_flow) */ 3003 | #if defined(VK_NV_partitioned_acceleration_structure) 3004 | extern PFN_vkCmdBuildPartitionedAccelerationStructuresNV vkCmdBuildPartitionedAccelerationStructuresNV; 3005 | extern PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV vkGetPartitionedAccelerationStructuresBuildSizesNV; 3006 | #endif /* defined(VK_NV_partitioned_acceleration_structure) */ 3007 | #if defined(VK_NV_ray_tracing) 3008 | extern PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; 3009 | extern PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; 3010 | extern PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; 3011 | extern PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; 3012 | extern PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; 3013 | extern PFN_vkCompileDeferredNV vkCompileDeferredNV; 3014 | extern PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; 3015 | extern PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; 3016 | extern PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; 3017 | extern PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; 3018 | extern PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; 3019 | extern PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; 3020 | #endif /* defined(VK_NV_ray_tracing) */ 3021 | #if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 3022 | extern PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; 3023 | #endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ 3024 | #if defined(VK_NV_scissor_exclusive) 3025 | extern PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; 3026 | #endif /* defined(VK_NV_scissor_exclusive) */ 3027 | #if defined(VK_NV_shading_rate_image) 3028 | extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; 3029 | extern PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; 3030 | extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; 3031 | #endif /* defined(VK_NV_shading_rate_image) */ 3032 | #if defined(VK_OHOS_external_memory) 3033 | extern PFN_vkGetMemoryNativeBufferOHOS vkGetMemoryNativeBufferOHOS; 3034 | extern PFN_vkGetNativeBufferPropertiesOHOS vkGetNativeBufferPropertiesOHOS; 3035 | #endif /* defined(VK_OHOS_external_memory) */ 3036 | #if defined(VK_QCOM_tile_memory_heap) 3037 | extern PFN_vkCmdBindTileMemoryQCOM vkCmdBindTileMemoryQCOM; 3038 | #endif /* defined(VK_QCOM_tile_memory_heap) */ 3039 | #if defined(VK_QCOM_tile_properties) 3040 | extern PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; 3041 | extern PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; 3042 | #endif /* defined(VK_QCOM_tile_properties) */ 3043 | #if defined(VK_QCOM_tile_shading) 3044 | extern PFN_vkCmdBeginPerTileExecutionQCOM vkCmdBeginPerTileExecutionQCOM; 3045 | extern PFN_vkCmdDispatchTileQCOM vkCmdDispatchTileQCOM; 3046 | extern PFN_vkCmdEndPerTileExecutionQCOM vkCmdEndPerTileExecutionQCOM; 3047 | #endif /* defined(VK_QCOM_tile_shading) */ 3048 | #if defined(VK_QNX_external_memory_screen_buffer) 3049 | extern PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; 3050 | #endif /* defined(VK_QNX_external_memory_screen_buffer) */ 3051 | #if defined(VK_VALVE_descriptor_set_host_mapping) 3052 | extern PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; 3053 | extern PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; 3054 | #endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ 3055 | #if (defined(VK_EXT_depth_clamp_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clamp_control)) 3056 | extern PFN_vkCmdSetDepthClampRangeEXT vkCmdSetDepthClampRangeEXT; 3057 | #endif /* (defined(VK_EXT_depth_clamp_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clamp_control)) */ 3058 | #if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) 3059 | extern PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; 3060 | extern PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; 3061 | extern PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; 3062 | extern PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; 3063 | extern PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; 3064 | extern PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; 3065 | extern PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; 3066 | extern PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; 3067 | extern PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; 3068 | extern PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; 3069 | extern PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; 3070 | extern PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; 3071 | #endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ 3072 | #if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) 3073 | extern PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; 3074 | extern PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; 3075 | extern PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; 3076 | extern PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; 3077 | extern PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; 3078 | #endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ 3079 | #if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) 3080 | extern PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; 3081 | extern PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; 3082 | extern PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; 3083 | extern PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; 3084 | extern PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; 3085 | extern PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; 3086 | extern PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; 3087 | extern PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; 3088 | extern PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; 3089 | extern PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; 3090 | #endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ 3091 | #if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) 3092 | extern PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; 3093 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ 3094 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) 3095 | extern PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; 3096 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ 3097 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) 3098 | extern PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; 3099 | extern PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; 3100 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ 3101 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) 3102 | extern PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; 3103 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ 3104 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) 3105 | extern PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; 3106 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ 3107 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) 3108 | extern PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; 3109 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ 3110 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) 3111 | extern PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; 3112 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ 3113 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) 3114 | extern PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; 3115 | extern PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; 3116 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ 3117 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) 3118 | extern PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; 3119 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ 3120 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) 3121 | extern PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; 3122 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ 3123 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) 3124 | extern PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; 3125 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ 3126 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) 3127 | extern PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; 3128 | extern PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; 3129 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ 3130 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) 3131 | extern PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; 3132 | extern PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; 3133 | extern PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; 3134 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ 3135 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) 3136 | extern PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; 3137 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ 3138 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) 3139 | extern PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; 3140 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ 3141 | #if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) 3142 | extern PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; 3143 | #endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ 3144 | #if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) 3145 | extern PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; 3146 | #endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ 3147 | #if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) 3148 | extern PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; 3149 | #endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ 3150 | #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && (defined(VK_VERSION_1_1) || defined(VK_KHR_descriptor_update_template))) 3151 | extern PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 3152 | #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && (defined(VK_VERSION_1_1) || defined(VK_KHR_descriptor_update_template))) */ 3153 | #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) 3154 | extern PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; 3155 | extern PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; 3156 | #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ 3157 | #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) 3158 | extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; 3159 | #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ 3160 | /* VOLK_GENERATE_PROTOTYPES_H_DEVICE */ 3161 | #endif 3162 | 3163 | #ifdef __cplusplus 3164 | } // extern "C" / namespace volk 3165 | #endif 3166 | 3167 | #ifdef VOLK_NAMESPACE 3168 | using namespace volk; 3169 | #endif 3170 | 3171 | #endif // VOLK_H 3172 | 3173 | #ifdef VOLK_IMPLEMENTATION 3174 | #undef VOLK_IMPLEMENTATION 3175 | /* Prevent tools like dependency checkers from detecting a cyclic dependency */ 3176 | #define VOLK_SOURCE "volk.c" 3177 | #include VOLK_SOURCE 3178 | #endif 3179 | 3180 | /** 3181 | * Copyright (c) 2018-2025 Arseny Kapoulkine 3182 | * 3183 | * Permission is hereby granted, free of charge, to any person obtaining a copy 3184 | * of this software and associated documentation files (the "Software"), to deal 3185 | * in the Software without restriction, including without limitation the rights 3186 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 3187 | * copies of the Software, and to permit persons to whom the Software is 3188 | * furnished to do so, subject to the following conditions: 3189 | * 3190 | * The above copyright notice and this permission notice shall be included in all 3191 | * copies or substantial portions of the Software. 3192 | * 3193 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 3194 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 3195 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 3196 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 3197 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 3198 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 3199 | * SOFTWARE. 3200 | */ 3201 | /* clang-format on */ 3202 | --------------------------------------------------------------------------------