From 3c63027bf5dc8597b23932be1193e350a67a956f Mon Sep 17 00:00:00 2001 From: xiangsilian Date: Sun, 19 Oct 2025 19:49:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E5=86=99=E5=AE=8C=E9=A1=B6=E7=82=B9?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E7=A8=8B=E5=BA=8F=EF=BC=8C=E5=85=88=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 7 +- app/src/main/assets/demo0.png | Bin 0 -> 48152 bytes app/src/main/assets/face480.png | Bin 0 -> 126524 bytes app/src/main/assets/face_picture_3dmax.obj | 2277 ++++++++++++ app/src/main/assets/out.png | Bin 0 -> 142129 bytes app/src/main/assets/show_face.png | Bin 0 -> 142082 bytes third_party/volk/.github/workflows/build.yml | 66 - third_party/volk/.github/workflows/update.yml | 33 - third_party/volk/.gitignore | 2 - third_party/volk/CMakeLists.txt | 137 - third_party/volk/LICENSE.md | 19 - third_party/volk/README.md | 99 - third_party/volk/cmake/volkConfig.cmake.in | 21 - third_party/volk/generate.py | 194 - .../CMakeLists.txt | 9 - .../test/cmake_using_installed_headers/main.c | 54 - .../CMakeLists.txt | 40 - .../test/cmake_using_source_directly/main.c | 41 - .../cmake_using_subdir_headers/CMakeLists.txt | 11 - .../test/cmake_using_subdir_headers/main.c | 53 - .../cmake_using_subdir_static/CMakeLists.txt | 22 - .../test/cmake_using_subdir_static/main.c | 41 - third_party/volk/test/run_tests.sh | 87 - third_party/volk/volk.c | 3179 ----------------- third_party/volk/volk.h | 2069 ----------- vulkan/AppBase.cpp | 16 +- vulkan/AppBase.h | 15 +- vulkan/Application.cpp | 21 +- vulkan/Application.h | 7 +- vulkan/FaceApp.cpp | 287 +- vulkan/FaceApp.h | 43 +- vulkan/hardcode_data.h | 89 + 32 files changed, 2714 insertions(+), 6225 deletions(-) create mode 100644 app/src/main/assets/demo0.png create mode 100644 app/src/main/assets/face480.png create mode 100644 app/src/main/assets/face_picture_3dmax.obj create mode 100644 app/src/main/assets/out.png create mode 100644 app/src/main/assets/show_face.png delete mode 100644 third_party/volk/.github/workflows/build.yml delete mode 100644 third_party/volk/.github/workflows/update.yml delete mode 100644 third_party/volk/.gitignore delete mode 100644 third_party/volk/CMakeLists.txt delete mode 100644 third_party/volk/LICENSE.md delete mode 100644 third_party/volk/README.md delete mode 100644 third_party/volk/cmake/volkConfig.cmake.in delete mode 100644 third_party/volk/generate.py delete mode 100644 third_party/volk/test/cmake_using_installed_headers/CMakeLists.txt delete mode 100644 third_party/volk/test/cmake_using_installed_headers/main.c delete mode 100644 third_party/volk/test/cmake_using_source_directly/CMakeLists.txt delete mode 100644 third_party/volk/test/cmake_using_source_directly/main.c delete mode 100644 third_party/volk/test/cmake_using_subdir_headers/CMakeLists.txt delete mode 100644 third_party/volk/test/cmake_using_subdir_headers/main.c delete mode 100644 third_party/volk/test/cmake_using_subdir_static/CMakeLists.txt delete mode 100644 third_party/volk/test/cmake_using_subdir_static/main.c delete mode 100644 third_party/volk/test/run_tests.sh delete mode 100644 third_party/volk/volk.c delete mode 100644 third_party/volk/volk.h create mode 100644 vulkan/hardcode_data.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 94fa73c..2ca2cd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,15 +100,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR WIN32) third_party/vma/src/VmaUsage.h third_party/vma/src/VmaUsage.cpp third_party/fmt/src/format.cc - vulkan/framework/common/error.cpp - vulkan/framework/common/strings.cpp - vulkan/framework/core/allocated.cpp ) endif() -target_compile_definitions(sample PRIVATE VK_NO_PROTOTYPES) +# target_compile_definitions(sample PRIVATE VK_NO_PROTOTYPES) 使用volk 动态加载的时候需要定义,不自动生成vulkan接口 target_compile_definitions(sample PRIVATE GLM_ENABLE_EXPERIMENTAL) -target_compile_definitions(sample PRIVATE VULKAN_HPP_NO_STRUCT_CONSTRUCTORS) +# target_compile_definitions(sample PRIVATE VULKAN_HPP_NO_STRUCT_CONSTRUCTORS) 解决vs 编译c++ 20 不支持新构造函数的特性 diff --git a/app/src/main/assets/demo0.png b/app/src/main/assets/demo0.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1b712b1a301d6a4641f07561959d30423b666a GIT binary patch literal 48152 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 NGlN4vyM_o(+UpU= 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 literal 0 HcmV?d00001 diff --git a/app/src/main/assets/face480.png b/app/src/main/assets/face480.png new file mode 100644 index 0000000000000000000000000000000000000000..49dd4dbbb9c4b55700e52b0cb9e5a28a7a2c58b9 GIT binary patch literal 126524 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 literal 0 HcmV?d00001 diff --git a/app/src/main/assets/face_picture_3dmax.obj b/app/src/main/assets/face_picture_3dmax.obj new file mode 100644 index 0000000..0aaac46 --- /dev/null +++ b/app/src/main/assets/face_picture_3dmax.obj @@ -0,0 +1,2277 @@ +# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware +# ļ:15.10.2025 10:11:26 + +mtllib face_picture.mtl + +# +# object default +# + +v 0.1676 0.5092 0.2591 +v 0.1771 0.5141 0.1685 +v 0.1865 0.4618 0.1361 +v 0.4670 0.7575 -0.0631 +v 0.4671 0.7458 -0.0670 +v 0.4379 0.7395 -0.0631 +v 0.3892 0.5426 -0.0007 +v 0.3631 0.5501 0.0018 +v 0.3648 0.5691 -0.0028 +v 0.4383 0.7547 -0.0594 +v 0.4080 0.7493 -0.0466 +v 0.4142 0.5453 -0.0172 +v 0.3929 0.5585 -0.0115 +v 0.3953 0.5777 -0.0249 +v 0.2693 0.3555 -0.0041 +v 0.3317 0.3441 -0.0417 +v 0.3176 0.2901 -0.0208 +v 0.4645 0.9425 0.0141 +v 0.4131 0.9359 0.0208 +v 0.4148 0.9524 0.0567 +v 0.2764 0.5811 0.0178 +v 0.2618 0.6372 0.0203 +v 0.3218 0.6083 -0.0036 +v 0.4130 0.7599 -0.0441 +v 0.3882 0.7597 -0.0267 +v 0.4716 0.4160 -0.0756 +v 0.4717 0.3448 -0.0701 +v 0.3976 0.3432 -0.0630 +v 0.3969 0.6604 -0.0717 +v 0.4082 0.6504 -0.0986 +v 0.4081 0.6340 -0.0898 +v 0.3866 0.8650 0.0146 +v 0.3576 0.8424 0.0268 +v 0.3437 0.8641 0.0496 +v 0.3940 0.7654 -0.0259 +v 0.3753 0.7689 -0.0041 +v 0.4042 0.7765 -0.0144 +v 0.3997 0.7722 -0.0205 +v 0.3858 0.7742 -0.0038 +v 0.3656 0.7335 -0.0192 +v 0.3465 0.7519 0.0005 +v 0.3297 0.5547 0.0078 +v 0.2951 0.5537 0.0195 +v 0.3330 0.8122 0.0361 +v 0.3121 0.7799 0.0363 +v 0.2817 0.7829 0.0643 +v 0.4327 0.8532 -0.0060 +v 0.4654 0.8552 -0.0070 +v 0.4656 0.8296 -0.0366 +v 0.3696 0.7768 0.0149 +v 0.3665 0.7770 0.0190 +v 0.3761 0.7887 0.0050 +v 0.3077 0.4839 0.0049 +v 0.2906 0.4595 -0.0031 +v 0.2739 0.4710 0.0089 +v 0.3790 0.4711 -0.0057 +v 0.3737 0.4919 0.0003 +v 0.3911 0.5057 0.0066 +v 0.3754 0.8206 0.0083 +v 0.2726 0.8255 0.1227 +v 0.2492 0.7539 0.0989 +v 0.3648 0.6781 -0.0133 +v 0.3913 0.7208 -0.0338 +v 0.4049 0.6867 -0.0353 +v 0.1839 0.3975 0.1474 +v 0.2000 0.4179 0.0893 +v 0.2271 0.3808 0.0385 +v 0.4461 0.6108 -0.1335 +v 0.4449 0.6420 -0.1470 +v 0.4683 0.6424 -0.1505 +v 0.3130 0.5174 0.0122 +v 0.3092 0.5328 0.0113 +v 0.3340 0.5345 0.0034 +v 0.3805 0.7832 0.0001 +v 0.3891 0.8008 -0.0126 +v 0.3002 0.6720 -0.0008 +v 0.2473 0.6924 0.0531 +v 0.4243 0.8807 0.0009 +v 0.4652 0.8852 -0.0044 +v 0.4008 0.8398 -0.0021 +v 0.3934 0.7913 -0.0180 +v 0.4090 0.8158 -0.0252 +v 0.4368 0.8081 -0.0399 +v 0.4355 0.8259 -0.0348 +v 0.3387 0.7021 -0.0061 +v 0.3413 0.6423 -0.0146 +v 0.3707 0.9171 0.0457 +v 0.4398 0.4946 -0.0439 +v 0.4163 0.4924 -0.0098 +v 0.4205 0.5208 -0.0087 +v 0.3286 0.4800 -0.0027 +v 0.3507 0.4822 -0.0044 +v 0.3507 0.4573 -0.0138 +v 0.2650 0.4848 0.0259 +v 0.2885 0.4959 0.0245 +v 0.2953 0.4902 0.0145 +v 0.4299 0.5952 -0.0907 +v 0.4478 0.5842 -0.1103 +v 0.4469 0.5590 -0.0919 +v 0.2100 0.3506 0.0899 +v 0.4704 0.4907 -0.0625 +v 0.4708 0.4538 -0.0666 +v 0.2438 0.5706 0.0425 +v 0.2694 0.5454 0.0357 +v 0.2547 0.5342 0.0489 +v 0.4147 0.4479 -0.0578 +v 0.4381 0.6925 -0.0621 +v 0.4358 0.6881 -0.0632 +v 0.3997 0.6049 -0.0340 +v 0.3666 0.5924 -0.0138 +v 0.4158 0.6704 -0.0715 +v 0.4240 0.6662 -0.0985 +v 0.4162 0.6618 -0.1040 +v 0.3915 0.5162 0.0115 +v 0.3762 0.5164 0.0068 +v 0.3827 0.5290 0.0029 +v 0.4015 0.6264 -0.0480 +v 0.3951 0.6468 -0.0647 +v 0.2745 0.8529 0.1747 +v 0.3121 0.8883 0.1365 +v 0.4156 0.5873 -0.0517 +v 0.3094 0.4427 -0.0210 +v 0.2958 0.4235 -0.0338 +v 0.2595 0.4320 -0.0112 +v 0.4257 0.6190 -0.1166 +v 0.3369 0.8887 0.0738 +v 0.3553 0.8012 0.0189 +v 0.3268 0.5785 0.0047 +v 0.2483 0.5082 0.0545 +v 0.2680 0.5023 0.0429 +v 0.2444 0.4142 0.0007 +v 0.4447 0.6760 -0.1132 +v 0.4468 0.6819 -0.0886 +v 0.4518 0.6855 -0.0880 +v 0.2345 0.4506 0.0166 +v 0.2186 0.4376 0.0384 +v 0.2080 0.4730 0.0733 +v 0.3758 0.7767 0.0109 +v 0.3724 0.7765 0.0115 +v 0.3860 0.7805 -0.0004 +v 0.2017 0.5181 0.1021 +v 0.1794 0.5700 0.1817 +v 0.2078 0.6235 0.0945 +v 0.2264 0.5516 0.0656 +v 0.4481 0.6677 -0.1374 +v 0.4565 0.6808 -0.1238 +v 0.4680 0.6820 -0.1255 +v 0.3186 0.7336 0.0088 +v 0.3551 0.5186 0.0035 +v 0.3600 0.5332 0.0009 +v 0.4362 0.7131 -0.0588 +v 0.4161 0.9117 0.0047 +v 0.3756 0.6237 -0.0222 +v 0.3370 0.7750 0.0229 +v 0.4334 0.6829 -0.0627 +v 0.2232 0.5152 0.0750 +v 0.2488 0.4835 0.0338 +v 0.3185 0.4537 -0.0130 +v 0.3124 0.8326 0.0644 +v 0.2574 0.4627 0.0097 +v 0.1892 0.6268 0.1920 +v 0.2004 0.5675 0.0971 +v 0.4176 0.7696 -0.0389 +v 0.4403 0.7685 -0.0495 +v 0.3885 0.6596 -0.0216 +v 0.3968 0.6721 -0.0561 +v 0.4127 0.6839 -0.0509 +v 0.3910 0.6586 -0.0486 +v 0.2811 0.7127 0.0235 +v 0.3801 0.7717 -0.0038 +v 0.3058 0.8611 0.0987 +v 0.3436 0.9132 0.1068 +v 0.3766 0.9355 0.0767 +v 0.2857 0.4006 -0.0310 +v 0.3413 0.4028 -0.0575 +v 0.4461 0.5307 -0.0678 +v 0.4702 0.5253 -0.0786 +v 0.2170 0.6766 0.1074 +v 0.3464 0.4269 -0.0501 +v 0.4055 0.4113 -0.0715 +v 0.3989 0.7829 -0.0152 +v 0.4124 0.7997 -0.0300 +v 0.1829 0.6285 0.2903 +v 0.4662 0.7941 -0.0388 +v 0.4395 0.7914 -0.0353 +v 0.4667 0.7799 -0.0380 +v 0.4429 0.7777 -0.0344 +v 0.3334 0.5197 0.0053 +v 0.4044 0.7768 -0.0132 +v 0.4168 0.7866 -0.0268 +v 0.3914 0.7770 0.0008 +v 0.2412 0.7896 0.1540 +v 0.2439 0.8140 0.2214 +v 0.2163 0.7403 0.1861 +v 0.2171 0.7611 0.2620 +v 0.4046 0.6684 -0.0743 +v 0.4218 0.7757 -0.0259 +v 0.4693 0.5807 -0.1203 +v 0.4645 0.9176 -0.0027 +v 0.4427 0.7770 -0.0354 +v 0.3002 0.5130 0.0210 +v 0.2904 0.5279 0.0232 +v 0.1733 0.5677 0.2835 +v 0.3888 0.2791 -0.0510 +v 0.4062 0.6759 -0.0606 +v 0.3911 0.7769 -0.0000 +v 0.3491 0.4463 -0.0240 +v 0.4591 0.6886 -0.0877 +v 0.3948 0.4651 -0.0194 +v 0.4693 0.5547 -0.0987 +v 0.2793 0.5182 0.0339 +v 0.2917 0.5082 0.0285 +v 0.2830 0.5012 0.0372 +v 0.4253 0.6445 -0.1239 +v 0.4322 0.6630 -0.1245 +v 0.4292 0.5259 -0.0266 +v 0.1712 0.4480 0.2091 +v 0.4299 0.5441 -0.0501 +v 0.4302 0.5711 -0.0722 +v 0.4679 0.6942 -0.0697 +v 0.4487 0.6788 -0.1199 +v 0.4677 0.7135 -0.0618 +v 0.4672 0.7696 -0.0536 +v 0.4666 0.7789 -0.0387 +v 0.4143 0.6117 -0.0684 +v 0.3989 0.5145 0.0114 +v 0.3979 0.5234 0.0058 +v 0.4074 0.5155 0.0073 +v 0.4330 0.6672 -0.1115 +v 0.4015 0.4957 0.0009 +v 0.3750 0.8914 0.0272 +v 0.4221 0.7771 -0.0248 +v 0.1977 0.6930 0.2835 +v 0.2017 0.6854 0.1930 +v 0.4680 0.6685 -0.1399 +v 0.2263 0.7213 0.1205 +v 0.4161 0.6751 -0.0607 +v 0.4679 0.6893 -0.0895 +v 0.4217 0.6803 -0.0551 +v 0.2780 0.4493 -0.0086 +v 0.4070 0.5352 -0.0034 +v 0.4134 0.5615 -0.0359 +v 0.2270 0.4800 0.0463 +v 0.7744 0.5149 0.2502 +v 0.7717 0.4527 0.2009 +v 0.7564 0.4666 0.1289 +v 0.4961 0.7564 -0.0603 +v 0.4968 0.7409 -0.0641 +v 0.5513 0.5446 -0.0028 +v 0.5470 0.5601 -0.0137 +v 0.5759 0.5717 -0.0057 +v 0.5217 0.7633 -0.0460 +v 0.5265 0.7526 -0.0487 +v 0.5263 0.5464 -0.0187 +v 0.5258 0.5628 -0.0376 +v 0.5440 0.5794 -0.0271 +v 0.5326 0.5370 -0.0051 +v 0.6749 0.3576 -0.0091 +v 0.6914 0.3169 0.0245 +v 0.6266 0.2923 -0.0250 +v 0.4644 0.9578 0.0484 +v 0.5151 0.9534 0.0552 +v 0.6655 0.5852 0.0127 +v 0.6148 0.5816 0.0010 +v 0.6177 0.6115 -0.0074 +v 0.5414 0.7702 -0.0285 +v 0.5470 0.7642 -0.0296 +v 0.5384 0.4118 -0.0725 +v 0.5462 0.3442 -0.0649 +v 0.5404 0.6625 -0.0737 +v 0.5420 0.6489 -0.0668 +v 0.5294 0.6356 -0.0915 +v 0.5463 0.8663 0.0123 +v 0.5572 0.8928 0.0248 +v 0.5904 0.8660 0.0460 +v 0.5546 0.7769 -0.0072 +v 0.5597 0.7746 -0.0078 +v 0.5303 0.7798 -0.0166 +v 0.5433 0.7812 -0.0029 +v 0.5494 0.7797 -0.0068 +v 0.5895 0.7566 -0.0036 +v 0.6114 0.5583 0.0040 +v 0.6029 0.8160 0.0321 +v 0.6222 0.8358 0.0597 +v 0.6549 0.7875 0.0586 +v 0.4990 0.8532 -0.0067 +v 0.4972 0.8271 -0.0358 +v 0.5660 0.7828 0.0113 +v 0.5545 0.7887 -0.0031 +v 0.5593 0.7932 0.0014 +v 0.6346 0.4869 0.0005 +v 0.6476 0.4942 0.0098 +v 0.6703 0.4744 0.0038 +v 0.5633 0.4724 -0.0083 +v 0.5397 0.4974 -0.0014 +v 0.5495 0.5072 0.0040 +v 0.5582 0.8234 0.0052 +v 0.5322 0.8411 -0.0042 +v 0.6630 0.8297 0.1167 +v 0.6946 0.7937 0.1473 +v 0.6879 0.7587 0.0926 +v 0.5719 0.6809 -0.0160 +v 0.5485 0.6618 -0.0238 +v 0.5309 0.6890 -0.0369 +v 0.7595 0.4019 0.1394 +v 0.7337 0.3543 0.0828 +v 0.7165 0.3837 0.0323 +v 0.4907 0.6108 -0.1342 +v 0.4686 0.6085 -0.1422 +v 0.6285 0.5216 0.0079 +v 0.6083 0.5236 0.0014 +v 0.6071 0.5388 -0.0005 +v 0.5410 0.7954 -0.0205 +v 0.5457 0.8047 -0.0151 +v 0.6384 0.6759 -0.0051 +v 0.6567 0.7166 0.0184 +v 0.6916 0.6970 0.0471 +v 0.5070 0.8820 -0.0003 +v 0.5247 0.8179 -0.0270 +v 0.5220 0.8031 -0.0318 +v 0.4960 0.8096 -0.0407 +v 0.4663 0.8117 -0.0427 +v 0.5989 0.7052 -0.0097 +v 0.5967 0.6454 -0.0179 +v 0.5548 0.9369 0.0738 +v 0.5614 0.9182 0.0429 +v 0.5700 0.7367 -0.0225 +v 0.5441 0.7234 -0.0362 +v 0.5007 0.4954 -0.0448 +v 0.5116 0.5273 -0.0278 +v 0.5196 0.5223 -0.0099 +v 0.6141 0.4824 -0.0067 +v 0.6251 0.4559 -0.0172 +v 0.5922 0.4593 -0.0170 +v 0.6544 0.5000 0.0197 +v 0.5084 0.5956 -0.0919 +v 0.5087 0.5722 -0.0734 +v 0.4922 0.5595 -0.0925 +v 0.5285 0.4483 -0.0589 +v 0.6986 0.5752 0.0364 +v 0.7160 0.5567 0.0593 +v 0.6877 0.5382 0.0432 +v 0.5248 0.4937 -0.0115 +v 0.5480 0.4664 -0.0217 +v 0.5237 0.6857 -0.0523 +v 0.4998 0.6891 -0.0639 +v 0.5391 0.6066 -0.0361 +v 0.5629 0.6260 -0.0248 +v 0.5726 0.5943 -0.0166 +v 0.5205 0.6722 -0.0730 +v 0.5317 0.6708 -0.0760 +v 0.5198 0.6630 -0.1055 +v 0.5495 0.5184 0.0091 +v 0.5428 0.5258 0.0035 +v 0.5577 0.5312 0.0005 +v 0.5364 0.6280 -0.0500 +v 0.5238 0.6125 -0.0700 +v 0.6281 0.8636 0.0938 +v 0.6213 0.8908 0.1315 +v 0.5232 0.5884 -0.0534 +v 0.6352 0.4452 -0.0248 +v 0.6668 0.4522 -0.0132 +v 0.6867 0.4338 -0.0162 +v 0.4918 0.6432 -0.1477 +v 0.5114 0.6456 -0.1254 +v 0.5115 0.6200 -0.1179 +v 0.5553 0.2800 -0.0530 +v 0.5789 0.8055 0.0152 +v 0.5774 0.5527 -0.0012 +v 0.6946 0.5128 0.0488 +v 0.6953 0.4875 0.0281 +v 0.6793 0.4888 0.0205 +v 0.7019 0.4160 -0.0048 +v 0.6604 0.4020 -0.0352 +v 0.6497 0.4245 -0.0376 +v 0.4912 0.6765 -0.1137 +v 0.4866 0.6789 -0.1205 +v 0.4840 0.6866 -0.0884 +v 0.7115 0.4529 0.0107 +v 0.7171 0.4838 0.0400 +v 0.7369 0.4771 0.0664 +v 0.5594 0.7825 0.0073 +v 0.5439 0.7814 -0.0022 +v 0.5485 0.7852 -0.0035 +v 0.7270 0.4401 0.0327 +v 0.7415 0.5225 0.0958 +v 0.7419 0.5721 0.0907 +v 0.7620 0.5753 0.1738 +v 0.7328 0.6288 0.0872 +v 0.4875 0.6683 -0.1379 +v 0.4904 0.5846 -0.1110 +v 0.6180 0.7377 0.0042 +v 0.5643 0.5195 0.0040 +v 0.5813 0.5365 -0.0023 +v 0.4993 0.7142 -0.0598 +v 0.5151 0.9128 0.0035 +v 0.5984 0.7794 0.0184 +v 0.4892 0.6825 -0.0891 +v 0.5669 0.4936 -0.0026 +v 0.7203 0.5196 0.0686 +v 0.6533 0.4625 -0.0078 +v 0.5766 0.8444 0.0235 +v 0.5623 0.7825 0.0079 +v 0.7520 0.6314 0.1844 +v 0.5167 0.7730 -0.0406 +v 0.5400 0.6741 -0.0581 +v 0.5303 0.6776 -0.0624 +v 0.5353 0.7759 -0.0228 +v 0.6239 0.7833 0.0314 +v 0.5960 0.8909 0.0700 +v 0.6122 0.3457 -0.0448 +v 0.4938 0.5309 -0.0685 +v 0.6776 0.6411 0.0149 +v 0.5357 0.7863 -0.0175 +v 0.5982 0.4280 -0.0528 +v 0.6040 0.4038 -0.0603 +v 0.5174 0.7896 -0.0284 +v 0.7582 0.6342 0.2818 +v 0.7690 0.5736 0.2749 +v 0.4943 0.7922 -0.0363 +v 0.5854 0.5220 0.0003 +v 0.5304 0.7802 -0.0155 +v 0.5130 0.7792 -0.0265 +v 0.6597 0.8562 0.1685 +v 0.7211 0.7447 0.1787 +v 0.6912 0.8179 0.2141 +v 0.5286 0.6525 -0.1003 +v 0.5129 0.7787 -0.0275 +v 0.5682 0.7832 0.0151 +v 0.5171 0.9373 0.0194 +v 0.4939 0.7699 -0.0503 +v 0.6871 0.4657 0.0044 +v 0.6327 0.5371 0.0068 +v 0.6520 0.5319 0.0182 +v 0.6466 0.5575 0.0148 +v 0.7649 0.5192 0.1610 +v 0.4720 0.2776 -0.0588 +v 0.5948 0.4476 -0.0270 +v 0.4767 0.6883 -0.0879 +v 0.6595 0.5052 0.0319 +v 0.6627 0.5227 0.0286 +v 0.6748 0.5067 0.0376 +v 0.5094 0.5448 -0.0511 +v 0.7436 0.4215 0.0823 +v 0.5889 0.9153 0.1029 +v 0.4976 0.6930 -0.0628 +v 0.5039 0.6639 -0.1257 +v 0.5413 0.5168 0.0092 +v 0.5031 0.6686 -0.1125 +v 0.5327 0.5174 0.0054 +v 0.4791 0.6807 -0.1241 +v 0.7373 0.6903 0.1852 +v 0.7417 0.6977 0.2756 +v 0.5128 0.6674 -0.0998 +v 0.7229 0.6814 0.1002 +v 0.7119 0.7257 0.1136 +v 0.5199 0.6768 -0.0623 +v 0.5147 0.6813 -0.0562 +v 0.6730 0.5500 0.0303 +v 0.5024 0.6834 -0.0634 +v 0.7196 0.7647 0.2546 +v 0.6510 0.5129 0.0235 +v 0.2529 0.3140 0.0303 +v 0.5906 0.4839 -0.0078 +v 0.5462 0.6605 -0.0508 +v 0.4910 0.7798 -0.0353 +v 0.4916 0.7787 -0.0363 +v 0.6419 0.5178 0.0164 +# 468 vertices + +vn -0.9892 0.0918 -0.1146 +vn -0.9788 0.0236 -0.2033 +vn -0.9677 -0.0121 -0.2518 +vn -0.0286 0.4641 -0.8853 +vn -0.0210 0.1059 -0.9942 +vn -0.2963 0.0263 -0.9547 +vn -0.2656 -0.3737 -0.8887 +vn -0.1333 -0.1062 -0.9854 +vn -0.2982 -0.3067 -0.9039 +vn -0.2701 0.4062 -0.8730 +vn -0.5118 0.1804 -0.8400 +vn -0.6858 -0.4508 -0.5714 +vn -0.4596 -0.4367 -0.7734 +vn -0.6024 -0.3459 -0.7194 +vn -0.6700 -0.2574 -0.6963 +vn -0.3874 -0.2160 -0.8962 +vn -0.4873 -0.2184 -0.8455 +vn -0.0187 0.7636 -0.6454 +vn -0.3895 0.6894 -0.6107 +vn -0.3730 0.8476 -0.3773 +vn -0.4425 -0.2135 -0.8710 +vn -0.6390 0.0497 -0.7676 +vn -0.3241 -0.1838 -0.9280 +vn -0.4361 0.4943 -0.7520 +vn -0.5509 0.4800 -0.6827 +vn -0.0096 0.1041 -0.9945 +vn -0.0117 -0.1221 -0.9924 +vn -0.2092 -0.1327 -0.9688 +vn -0.9011 0.2674 -0.3415 +vn -0.8776 0.0591 -0.4757 +vn -0.8804 -0.3287 -0.3418 +vn -0.5055 0.2486 -0.8262 +vn -0.5902 0.2855 -0.7551 +vn -0.6930 0.3322 -0.6398 +vn -0.4684 0.6694 -0.5766 +vn -0.4272 0.7368 -0.5240 +vn -0.2852 0.8727 -0.3964 +vn -0.3535 0.8216 -0.4473 +vn -0.3118 0.8767 -0.3662 +vn -0.5250 0.1467 -0.8384 +vn -0.4721 0.4437 -0.7617 +vn -0.2451 -0.0267 -0.9691 +vn -0.4187 -0.1407 -0.8972 +vn -0.5714 0.2908 -0.7675 +vn -0.5276 0.3879 -0.7558 +vn -0.7228 0.4014 -0.5625 +vn -0.1836 0.4449 -0.8765 +vn -0.0125 0.4693 -0.8829 +vn -0.0217 0.5490 -0.8355 +vn -0.7483 0.2841 -0.5994 +vn -0.4508 0.3894 -0.8032 +vn -0.7218 -0.1978 -0.6632 +vn -0.2589 0.4773 -0.8397 +vn -0.1985 0.5505 -0.8109 +vn -0.3127 0.5807 -0.7516 +vn -0.1325 0.5499 -0.8246 +vn 0.0988 0.3107 -0.9454 +vn -0.0383 0.4255 -0.9042 +vn -0.5889 0.2725 -0.7609 +vn -0.8103 0.4772 -0.3402 +vn -0.8348 0.3693 -0.4084 +vn -0.3030 -0.0161 -0.9529 +vn -0.4987 -0.0940 -0.8617 +vn -0.6857 0.2014 -0.6994 +vn -0.9601 -0.0063 -0.2796 +vn -0.9401 -0.0814 -0.3311 +vn -0.8443 -0.2348 -0.4818 +vn -0.5192 -0.4575 -0.7219 +vn -0.4560 -0.0053 -0.8899 +vn -0.0145 0.0191 -0.9997 +vn -0.4007 -0.1577 -0.9025 +vn -0.3961 -0.0224 -0.9179 +vn -0.1931 0.0337 -0.9806 +vn -0.6352 -0.3880 -0.6678 +vn -0.6957 0.1472 -0.7031 +vn -0.4450 0.1127 -0.8884 +vn -0.7920 0.2538 -0.5553 +vn -0.2588 0.1393 -0.9558 +vn -0.0161 0.0757 -0.9970 +vn -0.4640 0.3737 -0.8031 +vn -0.5965 -0.2402 -0.7659 +vn -0.5234 0.3510 -0.7764 +vn -0.2373 0.0020 -0.9714 +vn -0.2813 0.4791 -0.8315 +vn -0.3584 0.0892 -0.9293 +vn -0.2542 0.0002 -0.9671 +vn -0.6701 0.5630 -0.4837 +vn -0.7034 0.1121 -0.7019 +vn -0.6507 0.4083 -0.6402 +vn -0.7792 -0.1925 -0.5964 +vn -0.1515 0.3979 -0.9048 +vn -0.0209 0.3518 -0.9359 +vn -0.1058 0.5639 -0.8190 +vn -0.3450 0.6540 -0.6732 +vn -0.3752 0.7249 -0.5777 +vn -0.3356 0.6076 -0.7198 +vn -0.8198 -0.4081 -0.4018 +vn -0.6040 -0.5115 -0.6112 +vn -0.6003 -0.4769 -0.6420 +vn -0.8971 -0.1474 -0.4166 +vn -0.0088 -0.1756 -0.9844 +vn -0.0130 0.2566 -0.9664 +vn -0.6727 -0.1461 -0.7253 +vn -0.5253 -0.1978 -0.8276 +vn -0.5550 -0.1543 -0.8174 +vn -0.2962 0.5043 -0.8111 +vn -0.5151 0.3789 -0.7689 +vn -0.6769 0.4352 -0.5936 +vn -0.7119 -0.1376 -0.6887 +vn -0.3869 -0.2729 -0.8808 +vn -0.2593 0.9100 -0.3235 +vn -0.4232 0.8725 -0.2441 +vn -0.6388 0.6348 -0.4346 +vn 0.0075 -0.5272 -0.8497 +vn 0.1431 -0.3278 -0.9338 +vn 0.0417 -0.2968 -0.9540 +vn -0.9190 -0.2914 -0.2656 +vn -0.9525 -0.1975 -0.2320 +vn -0.8218 0.5259 -0.2193 +vn -0.7717 0.5717 -0.2788 +vn -0.8407 -0.2471 -0.4819 +vn -0.1589 0.6204 -0.7680 +vn -0.3845 0.3934 -0.8351 +vn -0.5135 0.2291 -0.8270 +vn -0.7775 -0.3931 -0.4910 +vn -0.7590 0.4870 -0.4321 +vn -0.5333 0.0772 -0.8424 +vn -0.2512 -0.2327 -0.9396 +vn -0.5037 0.2809 -0.8169 +vn -0.3684 0.3409 -0.8649 +vn -0.7436 -0.0832 -0.6634 +vn -0.6117 0.7847 -0.1002 +vn -0.5291 0.8080 -0.2592 +vn -0.4508 0.8443 -0.2898 +vn -0.6923 0.3110 -0.6511 +vn -0.8890 -0.0214 -0.4574 +vn -0.8997 0.1327 -0.4158 +vn -0.2615 0.0617 -0.9632 +vn -0.7042 -0.3851 -0.5965 +vn -0.4049 -0.7183 -0.5658 +vn -0.8981 0.0608 -0.4355 +vn -0.9788 0.1245 -0.1626 +vn -0.9079 0.1364 -0.3963 +vn -0.7298 -0.0858 -0.6783 +vn -0.4109 0.5683 -0.7129 +vn -0.2760 0.8715 -0.4054 +vn -0.0052 0.8916 -0.4528 +vn -0.4766 0.3068 -0.8238 +vn 0.0050 -0.1775 -0.9841 +vn -0.0091 -0.0562 -0.9984 +vn -0.3366 0.0198 -0.9414 +vn -0.3670 0.2717 -0.8897 +vn -0.3339 0.0046 -0.9426 +vn -0.3391 0.4495 -0.8264 +vn -0.6108 0.5190 -0.5979 +vn -0.7075 0.1706 -0.6858 +vn -0.4370 0.5756 -0.6911 +vn -0.1373 0.5563 -0.8196 +vn -0.6839 0.4104 -0.6032 +vn -0.4112 0.5547 -0.7234 +vn -0.9719 0.1950 -0.1316 +vn -0.8965 0.0314 -0.4419 +vn -0.3061 0.7640 -0.5679 +vn -0.2095 0.7295 -0.6511 +vn -0.6765 0.0404 -0.7353 +vn -0.7748 0.5551 -0.3026 +vn -0.3352 0.8062 -0.4875 +vn -0.9828 0.0737 -0.1690 +vn -0.6294 0.2746 -0.7270 +vn -0.4010 0.7990 -0.4481 +vn -0.7680 0.5065 -0.3919 +vn -0.7313 0.6102 -0.3048 +vn -0.6386 0.7024 -0.3143 +vn -0.5403 -0.0661 -0.8389 +vn -0.2972 0.0398 -0.9540 +vn -0.6776 -0.4136 -0.6081 +vn -0.0027 -0.5203 -0.8540 +vn -0.9184 0.2515 -0.3056 +vn -0.2748 0.5707 -0.7738 +vn -0.1584 0.1286 -0.9790 +vn -0.4616 -0.5618 -0.6866 +vn -0.4293 -0.0927 -0.8984 +vn -0.9793 0.1926 -0.0624 +vn -0.0161 -0.1523 -0.9882 +vn -0.2259 -0.2227 -0.9484 +vn -0.0197 -0.0720 -0.9972 +vn -0.2632 -0.1251 -0.9566 +vn -0.2093 -0.1177 -0.9707 +vn -0.4462 -0.5951 -0.6684 +vn -0.3734 -0.3688 -0.8512 +vn -0.4127 -0.7924 -0.4493 +vn -0.8775 0.4155 -0.2396 +vn -0.8941 0.4319 -0.1185 +vn -0.9429 0.3025 -0.1392 +vn -0.9468 0.3122 -0.0776 +vn -0.4967 0.7780 -0.3847 +vn -0.2129 0.8951 -0.3917 +vn -0.0010 -0.6457 -0.7636 +vn -0.0191 0.3220 -0.9466 +vn -0.2007 0.8540 -0.4801 +vn -0.5261 -0.2295 -0.8189 +vn -0.5469 -0.1438 -0.8248 +vn -0.9882 0.1379 -0.0665 +vn -0.2607 -0.1418 -0.9549 +vn -0.3010 0.8206 -0.4858 +vn -0.2486 0.9237 -0.2915 +vn -0.1986 0.7334 -0.6502 +vn -0.2171 0.9455 -0.2426 +vn -0.3870 0.6895 -0.6122 +vn -0.0087 -0.5839 -0.8117 +vn -0.5436 -0.1897 -0.8176 +vn -0.5570 -0.2589 -0.7891 +vn -0.4501 0.2685 -0.8516 +vn -0.7925 0.0362 -0.6087 +vn -0.6696 0.5211 -0.5292 +vn -0.8579 -0.2632 -0.4412 +vn -0.9774 0.0665 -0.2005 +vn -0.8059 -0.4189 -0.4185 +vn -0.8334 -0.3312 -0.4425 +vn -0.0113 0.7507 -0.6605 +vn -0.5000 0.8023 -0.3261 +vn -0.0179 0.1168 -0.9930 +vn -0.0280 0.7348 -0.6777 +vn -0.0341 0.8515 -0.5232 +vn -0.8728 -0.3807 -0.3053 +vn -0.2925 -0.1250 -0.9481 +vn -0.2521 -0.4913 -0.8337 +vn -0.5752 -0.1476 -0.8046 +vn -0.5558 0.7877 -0.2655 +vn -0.3244 0.4596 -0.8268 +vn -0.6118 0.2479 -0.7511 +vn -0.3883 -0.3420 -0.8557 +vn -0.9704 0.2327 -0.0645 +vn -0.9662 0.2260 -0.1243 +vn -0.0165 0.5612 -0.8275 +vn -0.8997 0.3056 -0.3117 +vn -0.1538 0.8423 -0.5165 +vn 0.0106 0.9761 -0.2172 +vn -0.4197 0.4256 -0.8017 +vn -0.2580 0.5206 -0.8139 +vn -0.5099 -0.4374 -0.7407 +vn -0.7786 -0.4123 -0.4731 +vn -0.6680 0.4185 -0.6154 +vn 0.9885 0.0946 -0.1177 +vn 0.9766 0.0763 -0.2009 +vn 0.9707 -0.0059 -0.2403 +vn 0.2175 0.4167 -0.8827 +vn 0.2655 0.0332 -0.9635 +vn 0.2465 -0.3758 -0.8933 +vn 0.4508 -0.4321 -0.7811 +vn 0.2787 -0.3017 -0.9118 +vn 0.3870 0.4936 -0.7788 +vn 0.4777 0.1827 -0.8593 +vn 0.6807 -0.4529 -0.5758 +vn 0.7749 -0.3960 -0.4927 +vn 0.5928 -0.3359 -0.7320 +vn 0.5041 -0.4457 -0.7397 +vn 0.6609 -0.2685 -0.7009 +vn 0.7711 -0.1906 -0.6075 +vn 0.4693 -0.2150 -0.8565 +vn -0.0176 0.9138 -0.4057 +vn 0.3385 0.8619 -0.3777 +vn 0.4241 -0.2022 -0.8827 +vn 0.2284 -0.2246 -0.9473 +vn 0.3009 -0.1708 -0.9382 +vn 0.4152 0.6914 -0.5913 +vn 0.5263 0.4569 -0.7171 +vn 0.1372 0.1315 -0.9818 +vn 0.1889 -0.1299 -0.9734 +vn 0.8941 0.2902 -0.3410 +vn 0.9565 -0.1796 -0.2300 +vn 0.8827 -0.3064 -0.3563 +vn 0.4749 0.2725 -0.8368 +vn 0.5803 0.2684 -0.7689 +vn 0.6698 0.3602 -0.6493 +vn 0.3502 0.8087 -0.4726 +vn 0.3789 0.7560 -0.5337 +vn 0.1939 0.9029 -0.3835 +vn 0.0992 0.9694 -0.2244 +vn 0.2482 0.8870 -0.3894 +vn 0.4589 0.4349 -0.7748 +vn 0.2199 -0.0208 -0.9753 +vn 0.5447 0.3217 -0.7745 +vn 0.6608 0.4456 -0.6039 +vn 0.7042 0.4225 -0.5706 +vn 0.1420 0.4548 -0.8792 +vn 0.2331 0.5063 -0.8303 +vn 0.8500 -0.0556 -0.5238 +vn 0.6186 -0.3893 -0.6824 +vn 0.7050 -0.2003 -0.6803 +vn 0.2278 0.4733 -0.8509 +vn 0.3290 0.5971 -0.7316 +vn 0.2896 0.5777 -0.7632 +vn 0.1057 0.5527 -0.8267 +vn 0.2923 0.4695 -0.8331 +vn 0.0250 0.4179 -0.9081 +vn 0.5611 0.3112 -0.7670 +vn 0.4233 0.4058 -0.8100 +vn 0.7948 0.5049 -0.3366 +vn 0.8680 0.4384 -0.2332 +vn 0.8266 0.3904 -0.4053 +vn 0.2732 -0.0165 -0.9618 +vn 0.6635 0.0658 -0.7453 +vn 0.6643 0.2138 -0.7162 +vn 0.9600 -0.0003 -0.2800 +vn 0.8960 -0.1414 -0.4210 +vn 0.8452 -0.2504 -0.4722 +vn 0.5089 -0.4481 -0.7350 +vn -0.0089 -0.4314 -0.9021 +vn 0.3708 -0.1626 -0.9144 +vn 0.1925 -0.1126 -0.9748 +vn 0.1658 0.0472 -0.9850 +vn 0.5831 -0.2210 -0.7818 +vn 0.6667 0.1757 -0.7243 +vn 0.4231 0.1187 -0.8983 +vn 0.6085 0.2868 -0.7400 +vn 0.7769 0.2723 -0.5677 +vn 0.2238 0.1445 -0.9639 +vn 0.4823 0.3914 -0.7837 +vn 0.4059 -0.0703 -0.9112 +vn 0.1984 0.0143 -0.9800 +vn -0.0156 0.0695 -0.9975 +vn 0.3273 0.0921 -0.9404 +vn 0.2286 0.0054 -0.9735 +vn 0.6102 0.7222 -0.3257 +vn 0.6443 0.5803 -0.4981 +vn 0.4969 0.1416 -0.8562 +vn 0.4749 -0.0910 -0.8753 +vn 0.6870 0.1214 -0.7165 +vn 0.8579 -0.2672 -0.4390 +vn 0.7796 -0.1825 -0.5992 +vn 0.1208 0.3971 -0.9098 +vn 0.1075 0.5451 -0.8314 +vn 0.0761 0.5486 -0.8326 +vn 0.3651 0.7087 -0.6037 +vn 0.8210 -0.3904 -0.4167 +vn 0.8331 -0.3228 -0.4492 +vn 0.5980 -0.4679 -0.6507 +vn 0.2695 0.5104 -0.8166 +vn 0.6652 -0.1336 -0.7347 +vn 0.7261 -0.0753 -0.6835 +vn 0.5408 -0.1514 -0.8274 +vn 0.6207 0.4346 -0.6526 +vn 0.3602 0.6969 -0.6202 +vn 0.2923 0.8174 -0.4963 +vn 0.6549 0.4616 -0.5984 +vn 0.7013 -0.1214 -0.7024 +vn 0.3127 0.0149 -0.9498 +vn 0.3730 -0.2646 -0.8893 +vn 0.2068 0.9225 -0.3261 +vn 0.4428 0.8057 -0.3933 +vn 0.6128 0.6523 -0.4461 +vn -0.0282 -0.5216 -0.8527 +vn 0.2269 -0.4823 -0.8461 +vn -0.0625 -0.2963 -0.9530 +vn 0.9255 -0.2612 -0.2742 +vn 0.8782 -0.3583 -0.3167 +vn 0.7431 0.5356 -0.4013 +vn 0.7497 0.5979 -0.2835 +vn 0.8369 -0.2377 -0.4930 +vn 0.1306 0.5947 -0.7933 +vn 0.2395 0.5098 -0.8263 +vn 0.4942 0.2256 -0.8396 +vn 0.4387 0.0211 -0.8984 +vn 0.7810 0.0588 -0.6218 +vn 0.7757 -0.3764 -0.5066 +vn 0.2367 -0.1436 -0.9609 +vn 0.5078 0.1003 -0.8556 +vn 0.1036 -0.1009 -0.9895 +vn 0.4829 0.2882 -0.8269 +vn 0.4273 0.5748 -0.6979 +vn 0.3231 0.6484 -0.6894 +vn 0.7422 -0.0986 -0.6628 +vn 0.5223 -0.0708 -0.8498 +vn 0.3597 0.3844 -0.8502 +vn 0.5795 0.8063 -0.1185 +vn 0.4603 0.8254 -0.3268 +vn 0.3691 0.8831 -0.2895 +vn 0.6861 0.3121 -0.6571 +vn 0.6473 0.4401 -0.6223 +vn 0.8993 0.1483 -0.4114 +vn 0.2468 0.0393 -0.9683 +vn 0.4702 -0.7357 -0.4875 +vn 0.4528 -0.6807 -0.5758 +vn 0.8966 -0.0343 -0.4415 +vn 0.8987 0.0843 -0.4303 +vn 0.8959 0.0466 -0.4419 +vn 0.9774 0.1340 -0.1635 +vn 0.9007 0.1575 -0.4050 +vn 0.3724 0.5882 -0.7179 +vn 0.6001 -0.5021 -0.6227 +vn 0.4579 0.3117 -0.8325 +vn -0.1567 -0.3306 -0.9307 +vn -0.0155 -0.0506 -0.9986 +vn 0.3119 0.0191 -0.9499 +vn 0.3392 0.2827 -0.8972 +vn 0.3362 0.4579 -0.8230 +vn 0.5374 0.7997 -0.2676 +vn -0.1332 0.2907 -0.9475 +vn 0.7012 0.1840 -0.6888 +vn 0.1714 0.5455 -0.8204 +vn 0.5580 0.3128 -0.7686 +vn 0.5971 0.3016 -0.7433 +vn 0.9675 0.2147 -0.1340 +vn 0.2314 0.7831 -0.5773 +vn 0.7580 0.5782 -0.3018 +vn 0.2670 0.8375 -0.4768 +vn 0.2693 0.8599 -0.4336 +vn 0.5067 0.3950 -0.7663 +vn 0.7394 0.5132 -0.4357 +vn 0.3673 -0.2156 -0.9047 +vn 0.6777 -0.3981 -0.6182 +vn 0.6185 0.0661 -0.7830 +vn 0.4711 -0.5517 -0.6882 +vn 0.2506 0.5734 -0.7800 +vn 0.2726 0.0404 -0.9613 +vn 0.3666 -0.3395 -0.8662 +vn 0.9744 0.2145 -0.0671 +vn 0.9857 0.1509 -0.0744 +vn 0.2074 -0.2071 -0.9561 +vn -0.0326 -0.1888 -0.9815 +vn 0.4509 -0.5767 -0.6812 +vn 0.3959 -0.2961 -0.8693 +vn 0.8077 0.5514 -0.2088 +vn 0.9332 0.3326 -0.1365 +vn 0.8820 0.4566 -0.1162 +vn 0.8617 0.1065 -0.4962 +vn 0.1504 0.9084 -0.3900 +vn 0.4885 0.3529 -0.7980 +vn 0.3556 0.7052 -0.6134 +vn 0.1387 0.7361 -0.6625 +vn 0.3951 0.5494 -0.7363 +vn 0.3690 -0.0160 -0.9293 +vn 0.5278 -0.1434 -0.8372 +vn 0.3953 -0.1320 -0.9090 +vn 0.9794 0.0344 -0.1991 +vn -0.0106 -0.1659 -0.9861 +vn 0.1745 0.7218 -0.6697 +vn 0.1633 0.9568 -0.2405 +vn 0.4306 0.2942 -0.8532 +vn 0.5371 -0.1872 -0.8225 +vn 0.3508 0.3438 -0.8710 +vn 0.8106 -0.3958 -0.4315 +vn 0.9430 -0.0884 -0.3207 +vn 0.7107 0.6303 -0.3125 +vn 0.4906 0.3956 -0.7764 +vn 0.6379 0.5420 -0.5471 +vn 0.2648 -0.1351 -0.9548 +vn 0.5070 0.8298 -0.2331 +vn 0.5564 -0.1294 -0.8208 +vn 0.2610 0.8806 -0.3955 +vn 0.9583 0.2570 -0.1252 +vn 0.9614 0.2663 -0.0692 +vn 0.3949 0.8811 -0.2603 +vn 0.9102 0.2754 -0.3092 +vn 0.8881 0.3375 -0.3120 +vn 0.1150 0.8695 -0.4803 +vn 0.3658 0.4631 -0.8073 +vn 0.5063 -0.1983 -0.8392 +vn 0.5772 0.5500 -0.6036 +vn 0.9361 0.3433 -0.0766 +vn 0.5392 -0.2542 -0.8029 +vn -0.7761 -0.1922 -0.6006 +vn -0.0115 0.3481 -0.9374 +vn 0.9827 0.0780 -0.1680 +vn 0.2198 -0.1358 -0.9660 +vn 0.1342 0.8481 -0.5125 +vn 0.4880 -0.2447 -0.8379 +# 468 vertex normals + +vt 0.0147 0.4668 0.0000 +vt 0.1049 0.4716 0.0000 +vt 0.1292 0.5313 0.0000 +vt 0.5005 0.2458 0.0000 +vt 0.5005 0.2570 0.0000 +vt 0.4745 0.2628 0.0000 +vt 0.3859 0.4818 0.0000 +vt 0.3646 0.4669 0.0000 +vt 0.3693 0.4471 0.0000 +vt 0.4759 0.2479 0.0000 +vt 0.4423 0.2555 0.0000 +vt 0.4120 0.4846 0.0000 +vt 0.3932 0.4639 0.0000 +vt 0.4003 0.4442 0.0000 +vt 0.2789 0.6680 0.0000 +vt 0.3505 0.6922 0.0000 +vt 0.3233 0.7432 0.0000 +vt 0.5005 0.0338 0.0000 +vt 0.4441 0.0397 0.0000 +vt 0.4312 0.0048 0.0000 +vt 0.2866 0.4184 0.0000 +vt 0.2814 0.3609 0.0000 +vt 0.3366 0.3971 0.0000 +vt 0.4479 0.2441 0.0000 +vt 0.4187 0.2424 0.0000 +vt 0.5005 0.6331 0.0000 +vt 0.5005 0.7078 0.0000 +vt 0.4222 0.7050 0.0000 +vt 0.4362 0.3569 0.0000 +vt 0.4587 0.3718 0.0000 +vt 0.4491 0.3865 0.0000 +vt 0.4127 0.1154 0.0000 +vt 0.3776 0.1397 0.0000 +vt 0.3570 0.1118 0.0000 +vt 0.4245 0.2358 0.0000 +vt 0.3990 0.2257 0.0000 +vt 0.4291 0.2176 0.0000 +vt 0.4278 0.2257 0.0000 +vt 0.4085 0.2183 0.0000 +vt 0.3920 0.2671 0.0000 +vt 0.3702 0.2432 0.0000 +vt 0.3340 0.4539 0.0000 +vt 0.2997 0.4488 0.0000 +vt 0.3483 0.1726 0.0000 +vt 0.3277 0.2091 0.0000 +vt 0.2881 0.2020 0.0000 +vt 0.4647 0.1244 0.0000 +vt 0.5005 0.1223 0.0000 +vt 0.5005 0.1584 0.0000 +vt 0.3882 0.2060 0.0000 +vt 0.3842 0.2055 0.0000 +vt 0.4009 0.1949 0.0000 +vt 0.3240 0.5332 0.0000 +vt 0.3086 0.5596 0.0000 +vt 0.2893 0.5442 0.0000 +vt 0.3906 0.5549 0.0000 +vt 0.3864 0.5332 0.0000 +vt 0.3970 0.5199 0.0000 +vt 0.4023 0.1612 0.0000 +vt 0.2419 0.1475 0.0000 +vt 0.2356 0.2274 0.0000 +vt 0.3790 0.3270 0.0000 +vt 0.4165 0.2829 0.0000 +vt 0.4208 0.3184 0.0000 +vt 0.1094 0.6010 0.0000 +vt 0.1699 0.5849 0.0000 +vt 0.2225 0.6315 0.0000 +vt 0.4896 0.4074 0.0000 +vt 0.4924 0.3751 0.0000 +vt 0.5005 0.3753 0.0000 +vt 0.3136 0.4853 0.0000 +vt 0.3135 0.4704 0.0000 +vt 0.3372 0.4740 0.0000 +vt 0.4066 0.2006 0.0000 +vt 0.4228 0.1832 0.0000 +vt 0.3240 0.3285 0.0000 +vt 0.2580 0.2993 0.0000 +vt 0.4569 0.0982 0.0000 +vt 0.5005 0.0934 0.0000 +vt 0.4319 0.1411 0.0000 +vt 0.4280 0.1927 0.0000 +vt 0.4470 0.1698 0.0000 +vt 0.4744 0.1790 0.0000 +vt 0.4737 0.1615 0.0000 +vt 0.3593 0.2991 0.0000 +vt 0.3583 0.3638 0.0000 +vt 0.3901 0.0568 0.0000 +vt 0.4615 0.5414 0.0000 +vt 0.4224 0.5343 0.0000 +vt 0.4201 0.5096 0.0000 +vt 0.3461 0.5423 0.0000 +vt 0.3665 0.5428 0.0000 +vt 0.3665 0.5691 0.0000 +vt 0.2731 0.5238 0.0000 +vt 0.2948 0.5106 0.0000 +vt 0.3067 0.5212 0.0000 +vt 0.4594 0.4291 0.0000 +vt 0.4833 0.4387 0.0000 +vt 0.4811 0.4658 0.0000 +vt 0.1687 0.6591 0.0000 +vt 0.5005 0.5418 0.0000 +vt 0.5005 0.5847 0.0000 +vt 0.2482 0.4258 0.0000 +vt 0.2699 0.4542 0.0000 +vt 0.2515 0.4650 0.0000 +vt 0.4435 0.5960 0.0000 +vt 0.4642 0.3117 0.0000 +vt 0.4599 0.3162 0.0000 +vt 0.4071 0.4119 0.0000 +vt 0.3746 0.4209 0.0000 +vt 0.4461 0.3385 0.0000 +vt 0.4656 0.3516 0.0000 +vt 0.4654 0.3622 0.0000 +vt 0.3851 0.5111 0.0000 +vt 0.3696 0.5043 0.0000 +vt 0.3786 0.4937 0.0000 +vt 0.4153 0.3921 0.0000 +vt 0.4311 0.3696 0.0000 +vt 0.1987 0.1072 0.0000 +vt 0.2659 0.0727 0.0000 +vt 0.4263 0.4367 0.0000 +vt 0.3309 0.5828 0.0000 +vt 0.3224 0.6075 0.0000 +vt 0.2824 0.5897 0.0000 +vt 0.4713 0.4014 0.0000 +vt 0.3374 0.0828 0.0000 +vt 0.3767 0.1817 0.0000 +vt 0.3352 0.4294 0.0000 +vt 0.2436 0.4922 0.0000 +vt 0.2667 0.4989 0.0000 +vt 0.2640 0.6037 0.0000 +vt 0.4850 0.3476 0.0000 +vt 0.4823 0.3273 0.0000 +vt 0.4867 0.3203 0.0000 +vt 0.2509 0.5633 0.0000 +vt 0.2244 0.5712 0.0000 +vt 0.1957 0.5278 0.0000 +vt 0.3952 0.2075 0.0000 +vt 0.3920 0.2069 0.0000 +vt 0.4106 0.2053 0.0000 +vt 0.1759 0.4752 0.0000 +vt 0.1009 0.4117 0.0000 +vt 0.1954 0.3660 0.0000 +vt 0.2214 0.4448 0.0000 +vt 0.4931 0.3485 0.0000 +vt 0.4937 0.3390 0.0000 +vt 0.5005 0.3390 0.0000 +vt 0.3407 0.2632 0.0000 +vt 0.3509 0.4949 0.0000 +vt 0.3596 0.4824 0.0000 +vt 0.4686 0.2908 0.0000 +vt 0.4512 0.0662 0.0000 +vt 0.3865 0.3866 0.0000 +vt 0.3562 0.2113 0.0000 +vt 0.4566 0.3206 0.0000 +vt 0.2113 0.4830 0.0000 +vt 0.2544 0.5237 0.0000 +vt 0.3366 0.5693 0.0000 +vt 0.3182 0.1465 0.0000 +vt 0.2735 0.5527 0.0000 +vt 0.1012 0.3494 0.0000 +vt 0.1847 0.4235 0.0000 +vt 0.4508 0.2318 0.0000 +vt 0.4757 0.2315 0.0000 +vt 0.3968 0.3498 0.0000 +vt 0.4294 0.3419 0.0000 +vt 0.4346 0.3209 0.0000 +vt 0.4197 0.3548 0.0000 +vt 0.3021 0.2818 0.0000 +vt 0.4032 0.2219 0.0000 +vt 0.2912 0.1118 0.0000 +vt 0.3179 0.0469 0.0000 +vt 0.3723 0.0264 0.0000 +vt 0.3117 0.6281 0.0000 +vt 0.3702 0.6363 0.0000 +vt 0.4751 0.5008 0.0000 +vt 0.5005 0.5023 0.0000 +vt 0.1975 0.3082 0.0000 +vt 0.3739 0.6141 0.0000 +vt 0.4353 0.6358 0.0000 +vt 0.4299 0.2024 0.0000 +vt 0.4496 0.1861 0.0000 +vt 0.0053 0.3348 0.0000 +vt 0.5005 0.1954 0.0000 +vt 0.4749 0.1968 0.0000 +vt 0.5005 0.2115 0.0000 +vt 0.4768 0.2107 0.0000 +vt 0.3319 0.4878 0.0000 +vt 0.4328 0.2102 0.0000 +vt 0.4508 0.2000 0.0000 +vt 0.4135 0.2110 0.0000 +vt 0.1895 0.1824 0.0000 +vt 0.1298 0.1429 0.0000 +vt 0.1384 0.2290 0.0000 +vt 0.0685 0.1945 0.0000 +vt 0.4408 0.3482 0.0000 +vt 0.4494 0.2171 0.0000 +vt 0.5005 0.4397 0.0000 +vt 0.5005 0.0619 0.0000 +vt 0.4742 0.2157 0.0000 +vt 0.3008 0.4876 0.0000 +vt 0.2923 0.4722 0.0000 +vt 0.0005 0.4015 0.0000 +vt 0.4068 0.7707 0.0000 +vt 0.4353 0.3354 0.0000 +vt 0.4123 0.2121 0.0000 +vt 0.3692 0.5818 0.0000 +vt 0.4899 0.3124 0.0000 +vt 0.4109 0.5631 0.0000 +vt 0.5005 0.4690 0.0000 +vt 0.2791 0.4819 0.0000 +vt 0.2919 0.4918 0.0000 +vt 0.2827 0.4994 0.0000 +vt 0.4820 0.3797 0.0000 +vt 0.4813 0.3605 0.0000 +vt 0.4339 0.5066 0.0000 +vt 0.0543 0.5378 0.0000 +vt 0.4456 0.4851 0.0000 +vt 0.4543 0.4534 0.0000 +vt 0.5005 0.3015 0.0000 +vt 0.4891 0.3467 0.0000 +vt 0.5005 0.2871 0.0000 +vt 0.5005 0.2309 0.0000 +vt 0.5005 0.2127 0.0000 +vt 0.4332 0.4113 0.0000 +vt 0.3954 0.5126 0.0000 +vt 0.3922 0.5039 0.0000 +vt 0.4024 0.5116 0.0000 +vt 0.4780 0.3544 0.0000 +vt 0.4065 0.5297 0.0000 +vt 0.4019 0.0857 0.0000 +vt 0.4541 0.2102 0.0000 +vt 0.0273 0.2648 0.0000 +vt 0.1148 0.2863 0.0000 +vt 0.5005 0.3523 0.0000 +vt 0.1987 0.2586 0.0000 +vt 0.4418 0.3297 0.0000 +vt 0.5005 0.3131 0.0000 +vt 0.4432 0.3209 0.0000 +vt 0.2981 0.5717 0.0000 +vt 0.4023 0.4956 0.0000 +vt 0.4203 0.4658 0.0000 +vt 0.2287 0.5259 0.0000 +vt 0.9848 0.4692 0.0000 +vt 0.9459 0.5412 0.0000 +vt 0.8720 0.5338 0.0000 +vt 0.5265 0.2472 0.0000 +vt 0.5278 0.2622 0.0000 +vt 0.6153 0.4824 0.0000 +vt 0.6078 0.4648 0.0000 +vt 0.6324 0.4475 0.0000 +vt 0.5545 0.2426 0.0000 +vt 0.5596 0.2542 0.0000 +vt 0.5894 0.4851 0.0000 +vt 0.5805 0.4662 0.0000 +vt 0.6005 0.4447 0.0000 +vt 0.5981 0.4959 0.0000 +vt 0.7226 0.6706 0.0000 +vt 0.7602 0.7091 0.0000 +vt 0.6771 0.7445 0.0000 +vt 0.5005 0.0005 0.0000 +vt 0.5712 0.0054 0.0000 +vt 0.7164 0.4194 0.0000 +vt 0.6676 0.4301 0.0000 +vt 0.6652 0.3982 0.0000 +vt 0.5782 0.2337 0.0000 +vt 0.5835 0.2407 0.0000 +vt 0.5679 0.6368 0.0000 +vt 0.5796 0.7054 0.0000 +vt 0.5633 0.3580 0.0000 +vt 0.5687 0.3706 0.0000 +vt 0.5489 0.3867 0.0000 +vt 0.5906 0.1168 0.0000 +vt 0.6014 0.0873 0.0000 +vt 0.6464 0.1140 0.0000 +vt 0.5984 0.2198 0.0000 +vt 0.6026 0.2235 0.0000 +vt 0.5728 0.2157 0.0000 +vt 0.5891 0.2097 0.0000 +vt 0.5936 0.2159 0.0000 +vt 0.6318 0.2428 0.0000 +vt 0.6677 0.4541 0.0000 +vt 0.6550 0.1736 0.0000 +vt 0.6842 0.1482 0.0000 +vt 0.7142 0.2035 0.0000 +vt 0.5379 0.1252 0.0000 +vt 0.5294 0.1616 0.0000 +vt 0.6140 0.2039 0.0000 +vt 0.5958 0.1986 0.0000 +vt 0.6018 0.1939 0.0000 +vt 0.6771 0.5351 0.0000 +vt 0.6938 0.5232 0.0000 +vt 0.7137 0.5456 0.0000 +vt 0.6106 0.5563 0.0000 +vt 0.5936 0.5304 0.0000 +vt 0.6025 0.5212 0.0000 +vt 0.6001 0.1616 0.0000 +vt 0.5710 0.1421 0.0000 +vt 0.7597 0.1494 0.0000 +vt 0.8115 0.1846 0.0000 +vt 0.7662 0.2292 0.0000 +vt 0.6217 0.3279 0.0000 +vt 0.6035 0.3507 0.0000 +vt 0.5796 0.3194 0.0000 +vt 0.8905 0.6045 0.0000 +vt 0.8310 0.6625 0.0000 +vt 0.7787 0.6346 0.0000 +vt 0.5114 0.4082 0.0000 +vt 0.5005 0.4070 0.0000 +vt 0.6876 0.4855 0.0000 +vt 0.6697 0.4878 0.0000 +vt 0.6640 0.4736 0.0000 +vt 0.5748 0.1915 0.0000 +vt 0.5804 0.1824 0.0000 +vt 0.6785 0.3296 0.0000 +vt 0.7003 0.2837 0.0000 +vt 0.7442 0.3013 0.0000 +vt 0.5459 0.0983 0.0000 +vt 0.5564 0.1701 0.0000 +vt 0.5539 0.1850 0.0000 +vt 0.5284 0.1787 0.0000 +vt 0.5005 0.1772 0.0000 +vt 0.6430 0.3002 0.0000 +vt 0.6430 0.3646 0.0000 +vt 0.6303 0.0280 0.0000 +vt 0.6132 0.0590 0.0000 +vt 0.6097 0.2674 0.0000 +vt 0.5849 0.2832 0.0000 +vt 0.5397 0.5416 0.0000 +vt 0.5675 0.5065 0.0000 +vt 0.5808 0.5095 0.0000 +vt 0.6558 0.5438 0.0000 +vt 0.6657 0.5712 0.0000 +vt 0.6353 0.5702 0.0000 +vt 0.7059 0.5124 0.0000 +vt 0.5419 0.4295 0.0000 +vt 0.5470 0.4534 0.0000 +vt 0.5208 0.4658 0.0000 +vt 0.5594 0.5972 0.0000 +vt 0.7543 0.4271 0.0000 +vt 0.7807 0.4461 0.0000 +vt 0.7504 0.4667 0.0000 +vt 0.5782 0.5348 0.0000 +vt 0.5908 0.5644 0.0000 +vt 0.5662 0.3226 0.0000 +vt 0.5409 0.3146 0.0000 +vt 0.5937 0.4126 0.0000 +vt 0.6147 0.3875 0.0000 +vt 0.6264 0.4223 0.0000 +vt 0.5534 0.3385 0.0000 +vt 0.5581 0.3487 0.0000 +vt 0.5336 0.3634 0.0000 +vt 0.6157 0.5115 0.0000 +vt 0.6086 0.5039 0.0000 +vt 0.6221 0.4943 0.0000 +vt 0.5849 0.3927 0.0000 +vt 0.5674 0.4118 0.0000 +vt 0.7110 0.1141 0.0000 +vt 0.7358 0.0748 0.0000 +vt 0.5745 0.4372 0.0000 +vt 0.6724 0.5841 0.0000 +vt 0.7053 0.5733 0.0000 +vt 0.7220 0.5927 0.0000 +vt 0.5083 0.3754 0.0000 +vt 0.5190 0.3799 0.0000 +vt 0.5279 0.4013 0.0000 +vt 0.5945 0.7713 0.0000 +vt 0.6251 0.1815 0.0000 +vt 0.6365 0.4674 0.0000 +vt 0.7583 0.4933 0.0000 +vt 0.7484 0.5253 0.0000 +vt 0.7302 0.5250 0.0000 +vt 0.7398 0.6069 0.0000 +vt 0.6925 0.6304 0.0000 +vt 0.6819 0.6101 0.0000 +vt 0.5166 0.3470 0.0000 +vt 0.5128 0.3462 0.0000 +vt 0.5144 0.3190 0.0000 +vt 0.7529 0.5667 0.0000 +vt 0.7737 0.5282 0.0000 +vt 0.8066 0.5304 0.0000 +vt 0.6068 0.2054 0.0000 +vt 0.5889 0.2094 0.0000 +vt 0.5914 0.2039 0.0000 +vt 0.7790 0.5747 0.0000 +vt 0.8264 0.4776 0.0000 +vt 0.8176 0.4259 0.0000 +vt 0.8998 0.4138 0.0000 +vt 0.8059 0.3678 0.0000 +vt 0.5084 0.3484 0.0000 +vt 0.5184 0.4386 0.0000 +vt 0.6613 0.2639 0.0000 +vt 0.6307 0.5044 0.0000 +vt 0.6418 0.4822 0.0000 +vt 0.5333 0.2905 0.0000 +vt 0.5524 0.0668 0.0000 +vt 0.6458 0.2115 0.0000 +vt 0.5190 0.3266 0.0000 +vt 0.6132 0.5344 0.0000 +vt 0.7909 0.4849 0.0000 +vt 0.6941 0.5613 0.0000 +vt 0.6256 0.1415 0.0000 +vt 0.6096 0.2049 0.0000 +vt 0.9000 0.3524 0.0000 +vt 0.5515 0.2303 0.0000 +vt 0.5707 0.3435 0.0000 +vt 0.5645 0.3370 0.0000 +vt 0.5747 0.2240 0.0000 +vt 0.6746 0.2107 0.0000 +vt 0.6652 0.0847 0.0000 +vt 0.6511 0.6939 0.0000 +vt 0.5263 0.5012 0.0000 +vt 0.7207 0.3628 0.0000 +vt 0.5729 0.2018 0.0000 +vt 0.6298 0.6157 0.0000 +vt 0.6339 0.6380 0.0000 +vt 0.5520 0.1991 0.0000 +vt 0.9949 0.3369 0.0000 +vt 0.9995 0.4038 0.0000 +vt 0.5281 0.1971 0.0000 +vt 0.6494 0.4952 0.0000 +vt 0.5698 0.2093 0.0000 +vt 0.5491 0.2099 0.0000 +vt 0.8023 0.1093 0.0000 +vt 0.8624 0.2316 0.0000 +vt 0.8703 0.1449 0.0000 +vt 0.5408 0.3724 0.0000 +vt 0.5529 0.2158 0.0000 +vt 0.6173 0.2034 0.0000 +vt 0.5588 0.0402 0.0000 +vt 0.5267 0.2312 0.0000 +vt 0.7295 0.5547 0.0000 +vt 0.6883 0.4705 0.0000 +vt 0.7097 0.4730 0.0000 +vt 0.7023 0.4497 0.0000 +vt 0.8959 0.4739 0.0000 +vt 0.5005 0.7724 0.0000 +vt 0.6334 0.5835 0.0000 +vt 0.5110 0.3116 0.0000 +vt 0.7183 0.5004 0.0000 +vt 0.7223 0.4825 0.0000 +vt 0.7349 0.4997 0.0000 +vt 0.5555 0.4858 0.0000 +vt 0.8313 0.5881 0.0000 +vt 0.6843 0.0486 0.0000 +vt 0.5369 0.3114 0.0000 +vt 0.5188 0.3605 0.0000 +vt 0.6047 0.5127 0.0000 +vt 0.5219 0.3563 0.0000 +vt 0.5977 0.5118 0.0000 +vt 0.5096 0.3395 0.0000 +vt 0.8860 0.2886 0.0000 +vt 0.9734 0.2673 0.0000 +vt 0.5342 0.3539 0.0000 +vt 0.8040 0.3108 0.0000 +vt 0.8029 0.2613 0.0000 +vt 0.5580 0.3304 0.0000 +vt 0.5572 0.3224 0.0000 +vt 0.7323 0.4549 0.0000 +vt 0.5440 0.3192 0.0000 +vt 0.9322 0.1972 0.0000 +vt 0.7099 0.4918 0.0000 +vt 0.2399 0.7066 0.0000 +vt 0.6339 0.5444 0.0000 +vt 0.5804 0.3563 0.0000 +vt 0.5256 0.2097 0.0000 +vt 0.5282 0.2152 0.0000 +vt 0.7007 0.4875 0.0000 +# 468 texture coords + +o default +g default +usemtl default +s 1 +f 1/1/1 2/2/2 3/3/3 +f 4/4/4 5/5/5 6/6/6 +f 7/7/7 8/8/8 9/9/9 +f 10/10/10 6/6/6 11/11/11 +f 12/12/12 13/13/13 14/14/14 +f 7/7/7 13/13/13 12/12/12 +f 15/15/15 16/16/16 17/17/17 +f 18/18/18 19/19/19 20/20/20 +f 21/21/21 22/22/22 23/23/23 +f 24/24/24 11/11/11 25/25/25 +f 26/26/26 27/27/27 28/28/28 +f 29/29/29 30/30/30 31/31/31 +f 32/32/32 33/33/33 34/34/34 +f 35/35/35 25/25/25 36/36/36 +f 37/37/37 38/38/38 39/39/39 +f 25/25/25 40/40/40 41/41/41 +f 42/42/42 43/43/43 21/21/21 +f 44/44/44 45/45/45 46/46/46 +f 47/47/47 48/48/48 49/49/49 +f 50/50/50 51/51/51 52/52/52 +f 53/53/53 54/54/54 55/55/55 +f 56/56/56 57/57/57 58/58/58 +f 59/59/59 33/33/33 32/32/32 +f 60/60/60 46/46/46 61/61/61 +f 62/62/62 63/63/63 64/64/64 +f 65/65/65 66/66/66 67/67/67 +f 68/68/68 69/69/69 70/70/70 +f 71/71/71 72/72/72 73/73/73 +f 74/74/74 52/52/52 75/75/75 +f 76/76/76 22/22/22 77/77/77 +f 78/78/78 79/79/79 48/48/48 +f 75/75/75 59/59/59 80/80/80 +f 81/81/81 75/75/75 82/82/82 +f 83/83/83 84/84/84 49/49/49 +f 85/85/85 62/62/62 86/86/86 +f 20/20/20 19/19/19 87/87/87 +f 40/40/40 25/25/25 11/11/11 +f 88/88/88 89/89/89 90/90/90 +f 91/91/91 92/92/92 93/93/93 +f 94/94/94 95/95/95 96/96/96 +f 97/97/97 98/98/98 99/99/99 +f 100/100/100 67/67/67 15/15/15 +f 88/88/88 101/101/101 102/102/102 +f 103/103/103 104/104/104 105/105/105 +f 89/89/89 88/88/88 106/106/106 +f 64/64/64 107/107/107 108/108/108 +f 109/109/109 14/14/14 110/110/110 +f 111/111/111 112/112/112 113/113/113 +f 114/114/114 115/115/115 116/116/116 +f 117/117/117 118/118/118 31/31/31 +f 60/60/60 119/119/119 120/120/120 +f 14/14/14 109/109/109 121/121/121 +f 122/122/122 123/123/123 124/124/124 +f 69/69/69 68/68/68 125/125/125 +f 34/34/34 126/126/126 87/87/87 +f 17/17/17 16/16/16 28/28/28 +f 127/127/127 59/59/59 75/75/75 +f 42/42/42 128/128/128 9/9/9 +f 129/129/129 130/130/130 94/94/94 +f 131/131/131 124/124/124 123/123/123 +f 132/132/132 133/133/133 134/134/134 +f 135/135/135 136/136/136 137/137/137 +f 138/138/138 139/139/139 140/140/140 +f 135/135/135 124/124/124 131/131/131 +f 141/141/141 2/2/2 142/142/142 +f 143/143/143 103/103/103 144/144/144 +f 145/145/145 146/146/146 147/147/147 +f 97/97/97 125/125/125 68/68/68 +f 148/148/148 85/85/85 76/76/76 +f 115/115/115 149/149/149 150/150/150 +f 11/11/11 6/6/6 151/151/151 +f 79/79/79 78/78/78 152/152/152 +f 86/86/86 153/153/153 110/110/110 +f 154/154/154 45/45/45 44/44/44 +f 133/133/133 155/155/155 108/108/108 +f 93/93/93 92/92/92 57/57/57 +f 156/156/156 129/129/129 157/157/157 +f 53/53/53 91/91/91 158/158/158 +f 33/33/33 44/44/44 159/159/159 +f 157/157/157 160/160/160 135/135/135 +f 127/127/127 44/44/44 33/33/33 +f 139/139/139 50/50/50 74/74/74 +f 161/161/161 143/143/143 162/162/162 +f 163/163/163 164/164/164 10/10/10 +f 62/62/62 165/165/165 153/153/153 +f 166/166/166 64/64/64 167/167/167 +f 118/118/118 168/168/168 166/166/166 +f 163/163/163 24/24/24 35/35/35 +f 45/45/45 148/148/148 169/169/169 +f 38/38/38 35/35/35 170/170/170 +f 171/171/171 126/126/126 34/34/34 +f 126/126/126 172/172/172 173/173/173 +f 174/174/174 175/175/175 16/16/16 +f 176/176/176 177/177/177 101/101/101 +f 143/143/143 178/178/178 77/77/77 +f 140/140/140 74/74/74 81/81/81 +f 179/179/179 106/106/106 180/180/180 +f 181/181/181 81/81/81 182/182/182 +f 23/23/23 110/110/110 9/9/9 +f 131/131/131 174/174/174 15/15/15 +f 183/183/183 161/161/161 142/142/142 +f 184/184/184 185/185/185 83/83/83 +f 165/165/165 168/168/168 118/118/118 +f 186/186/186 187/187/187 185/185/185 +f 106/106/106 102/102/102 26/26/26 +f 110/110/110 14/14/14 13/13/13 +f 188/188/188 73/73/73 150/150/150 +f 189/189/189 181/181/181 190/190/190 +f 177/177/177 176/176/176 99/99/99 +f 189/189/189 191/191/191 140/140/140 +f 192/192/192 193/193/193 119/119/119 +f 194/194/194 195/195/195 193/193/193 +f 30/30/30 29/29/29 196/196/196 +f 38/38/38 37/37/37 197/197/197 +f 198/198/198 98/98/98 68/68/68 +f 127/127/127 52/52/52 51/51/51 +f 19/19/19 18/18/18 199/199/199 +f 197/197/197 200/200/200 164/164/164 +f 124/124/124 135/135/135 160/160/160 +f 71/71/71 201/201/201 202/202/202 +f 123/123/123 179/179/179 175/175/175 +f 43/43/43 104/104/104 103/103/103 +f 2/2/2 1/1/1 203/203/203 +f 180/180/180 28/28/28 16/16/16 +f 204/204/204 28/28/28 27/27/27 +f 29/29/29 166/166/166 205/205/205 +f 139/139/139 138/138/138 206/206/206 +f 165/165/165 117/117/117 109/109/109 +f 144/144/144 156/156/156 141/141/141 +f 103/103/103 143/143/143 22/22/22 +f 207/207/207 179/179/179 123/123/123 +f 147/147/147 146/146/146 208/208/208 +f 209/209/209 106/106/106 179/179/179 +f 98/98/98 198/198/198 210/210/210 +f 211/211/211 212/212/212 213/213/213 +f 214/214/214 215/215/215 145/145/145 +f 136/136/136 66/66/66 3/3/3 +f 176/176/176 88/88/88 216/216/216 +f 94/94/94 130/130/130 213/213/213 +f 66/66/66 65/65/65 217/217/217 +f 126/126/126 171/171/171 120/120/120 +f 218/218/218 219/219/219 99/99/99 +f 148/148/148 41/41/41 40/40/40 +f 220/220/220 107/107/107 151/151/151 +f 208/208/208 146/146/146 221/221/221 +f 222/222/222 151/151/151 6/6/6 +f 10/10/10 164/164/164 223/223/223 +f 164/164/164 200/200/200 224/224/224 +f 131/131/131 67/67/67 66/66/66 +f 129/129/129 156/156/156 144/144/144 +f 23/23/23 22/22/22 76/76/76 +f 85/85/85 40/40/40 63/63/63 +f 117/117/117 225/225/225 121/121/121 +f 63/63/63 151/151/151 107/107/107 +f 214/214/214 30/30/30 113/113/113 +f 226/226/226 227/227/227 228/228/228 +f 229/229/229 132/132/132 221/221/221 +f 46/46/46 60/60/60 171/171/171 +f 230/230/230 58/58/58 226/226/226 +f 19/19/19 152/152/152 231/231/231 +f 146/146/146 145/145/145 215/215/215 +f 185/185/185 187/187/187 232/232/232 +f 83/83/83 185/185/185 190/190/190 +f 84/84/84 83/83/83 182/182/182 +f 47/47/47 84/84/84 82/82/82 +f 78/78/78 47/47/47 80/80/80 +f 161/161/161 183/183/183 233/233/233 +f 50/50/50 139/139/139 39/39/39 +f 51/51/51 50/50/50 170/170/170 +f 154/154/154 51/51/51 36/36/36 +f 45/45/45 154/154/154 41/41/41 +f 46/46/46 169/169/169 77/77/77 +f 2/2/2 141/141/141 137/137/137 +f 112/112/112 229/229/229 215/215/215 +f 143/143/143 161/161/161 234/234/234 +f 145/145/145 235/235/235 70/70/70 +f 78/78/78 32/32/32 231/231/231 +f 166/166/166 168/168/168 165/165/165 +f 236/236/236 194/194/194 192/192/192 +f 237/237/237 111/111/111 196/196/196 +f 134/134/134 108/108/108 107/107/107 +f 220/220/220 238/238/238 208/208/208 +f 239/239/239 237/237/237 205/205/205 +f 72/72/72 202/202/202 104/104/104 +f 211/211/211 130/130/130 129/129/129 +f 73/73/73 72/72/72 43/43/43 +f 150/150/150 73/73/73 42/42/42 +f 116/116/116 150/150/150 8/8/8 +f 227/227/227 116/116/116 7/7/7 +f 89/89/89 230/230/230 228/228/228 +f 209/209/209 56/56/56 230/230/230 +f 93/93/93 56/56/56 209/209/209 +f 158/158/158 93/93/93 207/207/207 +f 54/54/54 158/158/158 122/122/122 +f 55/55/55 54/54/54 240/240/240 +f 94/94/94 55/55/55 160/160/160 +f 132/132/132 112/112/112 133/133/133 +f 111/111/111 237/237/237 239/239/239 +f 155/155/155 239/239/239 167/167/167 +f 178/178/178 234/234/234 194/194/194 +f 133/133/133 112/112/112 111/111/111 +f 77/77/77 178/178/178 236/236/236 +f 227/227/227 241/241/241 90/90/90 +f 241/241/241 12/12/12 216/216/216 +f 12/12/12 242/242/242 218/218/218 +f 242/242/242 121/121/121 219/219/219 +f 31/31/31 30/30/30 214/214/214 +f 121/121/121 225/225/225 97/97/97 +f 225/225/225 31/31/31 125/125/125 +f 234/234/234 233/233/233 195/195/195 +f 141/141/141 156/156/156 243/243/243 +f 202/202/202 201/201/201 212/212/212 +f 104/104/104 202/202/202 211/211/211 +f 244/244/244 245/245/245 246/246/246 +f 4/4/4 247/247/247 248/248/248 +f 249/249/249 250/250/250 251/251/251 +f 247/247/247 252/252/252 253/253/253 +f 254/254/254 255/255/255 256/256/256 +f 249/249/249 257/257/257 254/254/254 +f 258/258/258 259/259/259 260/260/260 +f 18/18/18 261/261/261 262/262/262 +f 263/263/263 264/264/264 265/265/265 +f 252/252/252 266/266/266 267/267/267 +f 26/26/26 268/268/268 269/269/269 +f 270/270/270 271/271/271 272/272/272 +f 273/273/273 274/274/274 275/275/275 +f 266/266/266 276/276/276 277/277/277 +f 278/278/278 279/279/279 280/280/280 +f 267/267/267 277/277/277 281/281/281 +f 282/282/282 264/264/264 263/263/263 +f 283/283/283 284/284/284 285/285/285 +f 286/286/286 287/287/287 49/49/49 +f 288/288/288 289/289/289 290/290/290 +f 291/291/291 292/292/292 293/293/293 +f 294/294/294 295/295/295 296/296/296 +f 297/297/297 298/298/298 273/273/273 +f 299/299/299 300/300/300 301/301/301 +f 302/302/302 303/303/303 304/304/304 +f 305/305/305 306/306/306 307/307/307 +f 308/308/308 309/309/309 70/70/70 +f 310/310/310 311/311/311 312/312/312 +f 289/289/289 313/313/313 314/314/314 +f 315/315/315 316/316/316 317/317/317 +f 318/318/318 286/286/286 48/48/48 +f 314/314/314 319/319/319 298/298/298 +f 313/313/313 320/320/320 319/319/319 +f 321/321/321 322/322/322 49/49/49 +f 323/323/323 315/315/315 324/324/324 +f 262/262/262 325/325/325 326/326/326 +f 327/327/327 328/328/328 253/253/253 +f 329/329/329 330/330/330 331/331/331 +f 332/332/332 333/333/333 334/334/334 +f 335/335/335 293/293/293 292/292/292 +f 336/336/336 337/337/337 338/338/338 +f 306/306/306 259/259/259 258/258/258 +f 329/329/329 339/339/339 102/102/102 +f 340/340/340 341/341/341 342/342/342 +f 343/343/343 344/344/344 339/339/339 +f 304/304/304 345/345/345 346/346/346 +f 347/347/347 348/348/348 349/349/349 +f 350/350/350 351/351/351 352/352/352 +f 353/353/353 354/354/354 355/355/355 +f 356/356/356 357/357/357 272/272/272 +f 299/299/299 358/358/358 359/359/359 +f 256/256/256 255/255/255 360/360/360 +f 361/361/361 362/362/362 363/363/363 +f 364/364/364 365/365/365 366/366/366 +f 275/275/275 274/274/274 326/326/326 +f 260/260/260 367/367/367 269/269/269 +f 368/368/368 290/290/290 314/314/314 +f 282/282/282 369/369/369 251/251/251 +f 370/370/370 371/371/371 372/372/372 +f 373/373/373 374/374/374 375/375/375 +f 376/376/376 377/377/377 378/378/378 +f 379/379/379 380/380/380 381/381/381 +f 382/382/382 383/383/383 384/384/384 +f 379/379/379 385/385/385 373/373/373 +f 386/386/386 387/387/387 388/388/388 +f 389/389/389 387/387/387 341/341/341 +f 390/390/390 235/235/235 147/147/147 +f 336/336/336 391/391/391 308/308/308 +f 392/392/392 316/316/316 315/315/315 +f 393/393/393 355/355/355 394/394/394 +f 253/253/253 328/328/328 395/395/395 +f 79/79/79 199/199/199 396/396/396 +f 324/324/324 265/265/265 349/349/349 +f 397/397/397 368/368/368 283/283/283 +f 398/398/398 378/378/378 346/346/346 +f 334/334/334 294/294/294 399/399/399 +f 400/400/400 380/380/380 371/371/371 +f 291/291/291 401/401/401 333/333/333 +f 402/402/402 275/275/275 284/284/284 +f 371/371/371 380/380/380 379/379/379 +f 368/368/368 297/297/297 402/402/402 +f 403/403/403 384/384/384 289/289/289 +f 404/404/404 388/388/388 387/387/387 +f 405/405/405 252/252/252 247/247/247 +f 302/302/302 324/324/324 348/348/348 +f 406/406/406 407/407/407 345/345/345 +f 271/271/271 270/270/270 406/406/406 +f 405/405/405 408/408/408 266/266/266 +f 409/409/409 285/285/285 316/316/316 +f 408/408/408 280/280/280 276/276/276 +f 358/358/358 284/284/284 275/275/275 +f 410/410/410 326/326/326 325/325/325 +f 374/374/374 258/258/258 411/411/411 +f 412/412/412 329/329/329 101/101/101 +f 389/389/389 413/413/413 317/317/317 +f 384/384/384 414/414/414 313/313/313 +f 415/415/415 416/416/416 268/268/268 +f 414/414/414 417/417/417 320/320/320 +f 265/265/265 264/264/264 251/251/251 +f 373/373/373 307/307/307 258/258/258 +f 418/418/418 419/419/419 388/388/388 +f 184/184/184 322/322/322 321/321/321 +f 303/303/303 356/356/356 271/271/271 +f 186/186/186 184/184/184 420/420/420 +f 339/339/339 268/268/268 26/26/26 +f 349/349/349 251/251/251 250/250/250 +f 311/311/311 421/421/421 394/394/394 +f 422/422/422 423/423/423 417/417/417 +f 177/177/177 210/210/210 338/338/338 +f 422/422/422 414/414/414 384/384/384 +f 300/300/300 299/299/299 424/424/424 +f 425/425/425 300/300/300 426/426/426 +f 427/427/427 352/352/352 351/351/351 +f 408/408/408 405/405/405 428/428/428 +f 198/198/198 309/309/309 308/308/308 +f 368/368/368 397/397/397 429/429/429 +f 430/430/430 396/396/396 199/199/199 +f 428/428/428 405/405/405 431/431/431 +f 363/363/363 362/362/362 432/432/432 +f 310/310/310 433/433/433 434/434/434 +f 375/375/375 374/374/374 416/416/416 +f 435/435/435 263/263/263 340/340/340 +f 436/436/436 388/388/388 419/419/419 +f 268/268/268 416/416/416 411/411/411 +f 367/367/367 437/437/437 27/27/27 +f 270/270/270 351/351/351 407/407/407 +f 403/403/403 280/280/280 279/279/279 +f 303/303/303 348/348/348 347/347/347 +f 341/341/341 387/387/387 386/386/386 +f 340/340/340 263/263/263 413/413/413 +f 438/438/438 361/361/361 375/375/375 +f 147/147/147 238/238/238 439/439/439 +f 344/344/344 438/438/438 415/415/415 +f 391/391/391 338/338/338 210/210/210 +f 440/440/440 441/441/441 442/442/442 +f 365/365/365 364/364/364 390/390/390 +f 385/385/385 381/381/381 246/246/246 +f 412/412/412 443/443/443 330/330/330 +f 440/440/440 372/372/372 335/335/335 +f 444/444/444 246/246/246 245/245/245 +f 410/410/410 445/445/445 359/359/359 +f 443/443/443 412/412/412 338/338/338 +f 392/392/392 323/323/323 327/327/327 +f 220/220/220 222/222/222 395/395/395 +f 439/439/439 378/378/378 377/377/377 +f 222/222/222 5/5/5 248/248/248 +f 247/247/247 4/4/4 223/223/223 +f 431/431/431 223/223/223 224/224/224 +f 373/373/373 385/385/385 444/444/444 +f 370/370/370 342/342/342 341/341/341 +f 265/265/265 324/324/324 315/315/315 +f 323/323/323 302/302/302 328/328/328 +f 356/356/356 347/347/347 360/360/360 +f 328/328/328 304/304/304 446/446/446 +f 365/365/365 447/447/447 352/352/352 +f 354/354/354 353/353/353 448/448/448 +f 449/449/449 447/447/447 377/377/377 +f 285/285/285 284/284/284 358/358/358 +f 295/295/295 450/450/450 448/448/448 +f 430/430/430 326/326/326 274/274/274 +f 451/451/451 377/377/377 447/447/447 +f 420/420/420 417/417/417 423/423/423 +f 321/321/321 320/320/320 417/417/417 +f 287/287/287 319/319/319 320/320/320 +f 286/286/286 298/298/298 319/319/319 +f 318/318/318 273/273/273 298/298/298 +f 404/404/404 452/452/452 453/453/453 +f 288/288/288 276/276/276 280/280/280 +f 429/429/429 277/277/277 276/276/276 +f 397/397/397 281/281/281 277/277/277 +f 409/409/409 392/392/392 281/281/281 +f 285/285/285 301/301/301 317/317/317 +f 436/436/436 246/246/246 381/381/381 +f 454/454/454 352/352/352 447/447/447 +f 389/389/389 455/455/455 452/452/452 +f 390/390/390 364/364/364 70/70/70 +f 318/318/318 396/396/396 274/274/274 +f 406/406/406 304/304/304 303/303/303 +f 456/456/456 301/301/301 300/300/300 +f 457/457/457 407/407/407 351/351/351 +f 378/378/378 439/439/439 446/446/446 +f 220/220/220 446/446/446 439/439/439 +f 458/458/458 345/345/345 407/407/407 +f 433/433/433 435/435/435 459/459/459 +f 441/441/441 342/342/342 370/370/370 +f 312/312/312 282/282/282 435/435/435 +f 394/394/394 369/369/369 282/282/282 +f 355/355/355 249/249/249 369/369/369 +f 354/354/354 257/257/257 249/249/249 +f 343/343/343 331/331/331 450/450/450 +f 344/344/344 343/343/343 295/295/295 +f 334/334/334 438/438/438 344/344/344 +f 333/333/333 361/361/361 438/438/438 +f 401/401/401 362/362/362 361/361/361 +f 293/293/293 432/432/432 362/362/362 +f 372/372/372 371/371/371 432/432/432 +f 449/449/449 376/376/376 398/398/398 +f 457/457/457 350/350/350 460/460/460 +f 460/460/460 346/346/346 345/345/345 +f 455/455/455 456/456/456 425/425/425 +f 398/398/398 460/460/460 350/350/350 +f 317/317/317 301/301/301 456/456/456 +f 354/354/354 450/450/450 331/331/331 +f 257/257/257 331/331/331 330/330/330 +f 254/254/254 330/330/330 443/443/443 +f 255/255/255 443/443/443 337/337/337 +f 272/272/272 366/366/366 365/365/365 +f 360/360/360 337/337/337 336/336/336 +f 357/357/357 336/336/336 366/366/366 +f 452/452/452 425/425/425 461/461/461 +f 386/386/386 381/381/381 380/380/380 +f 434/434/434 441/441/441 462/462/462 +f 459/459/459 342/342/342 441/441/441 +f 226/226/226 228/228/228 230/230/230 +f 226/226/226 114/114/114 227/227/227 +f 213/213/213 95/95/95 94/94/94 +f 213/213/213 130/130/130 211/211/211 +f 296/296/296 399/399/399 294/294/294 +f 448/448/448 296/296/296 295/295/295 +f 448/448/448 450/450/450 354/354/354 +f 440/440/440 442/442/442 372/372/372 +f 440/440/440 462/462/462 441/441/441 +f 335/335/335 372/372/372 293/293/293 +f 239/239/239 155/155/155 111/111/111 +f 132/132/132 229/229/229 112/112/112 +f 217/217/217 1/1/1 3/3/3 +f 10/10/10 4/4/4 6/6/6 +f 13/13/13 7/7/7 9/9/9 +f 24/24/24 10/10/10 11/11/11 +f 242/242/242 12/12/12 14/14/14 +f 241/241/241 7/7/7 12/12/12 +f 463/463/463 15/15/15 17/17/17 +f 261/261/261 18/18/18 20/20/20 +f 128/128/128 21/21/21 23/23/23 +f 35/35/35 24/24/24 25/25/25 +f 180/180/180 26/26/26 28/28/28 +f 118/118/118 29/29/29 31/31/31 +f 231/231/231 32/32/32 34/34/34 +f 170/170/170 35/35/35 36/36/36 +f 206/206/206 37/37/37 39/39/39 +f 36/36/36 25/25/25 41/41/41 +f 128/128/128 42/42/42 21/21/21 +f 159/159/159 44/44/44 46/46/46 +f 84/84/84 47/47/47 49/49/49 +f 74/74/74 50/50/50 52/52/52 +f 96/96/96 53/53/53 55/55/55 +f 230/230/230 56/56/56 58/58/58 +f 80/80/80 59/59/59 32/32/32 +f 192/192/192 60/60/60 61/61/61 +f 165/165/165 62/62/62 64/64/64 +f 100/100/100 65/65/65 67/67/67 +f 309/309/309 68/68/68 70/70/70 +f 188/188/188 71/71/71 73/73/73 +f 81/81/81 74/74/74 75/75/75 +f 169/169/169 76/76/76 77/77/77 +f 47/47/47 78/78/78 48/48/48 +f 82/82/82 75/75/75 80/80/80 +f 182/182/182 81/81/81 82/82/82 +f 322/322/322 83/83/83 49/49/49 +f 76/76/76 85/85/85 86/86/86 +f 173/173/173 20/20/20 87/87/87 +f 63/63/63 40/40/40 11/11/11 +f 216/216/216 88/88/88 90/90/90 +f 158/158/158 91/91/91 93/93/93 +f 55/55/55 94/94/94 96/96/96 +f 219/219/219 97/97/97 99/99/99 +f 463/463/463 100/100/100 15/15/15 +f 106/106/106 88/88/88 102/102/102 +f 144/144/144 103/103/103 105/105/105 +f 209/209/209 89/89/89 106/106/106 +f 167/167/167 64/64/64 108/108/108 +f 153/153/153 109/109/109 110/110/110 +f 196/196/196 111/111/111 113/113/113 +f 227/227/227 114/114/114 116/116/116 +f 225/225/225 117/117/117 31/31/31 +f 171/171/171 60/60/60 120/120/120 +f 242/242/242 14/14/14 121/121/121 +f 240/240/240 122/122/122 124/124/124 +f 214/214/214 69/69/69 125/125/125 +f 231/231/231 34/34/34 87/87/87 +f 204/204/204 17/17/17 28/28/28 +f 52/52/52 127/127/127 75/75/75 +f 8/8/8 42/42/42 9/9/9 +f 157/157/157 129/129/129 94/94/94 +f 174/174/174 131/131/131 123/123/123 +f 221/221/221 132/132/132 134/134/134 +f 243/243/243 135/135/135 137/137/137 +f 191/191/191 138/138/138 140/140/140 +f 136/136/136 135/135/135 131/131/131 +f 162/162/162 141/141/141 142/142/142 +f 162/162/162 143/143/143 144/144/144 +f 235/235/235 145/145/145 147/147/147 +f 98/98/98 97/97/97 68/68/68 +f 169/169/169 148/148/148 76/76/76 +f 116/116/116 115/115/115 150/150/150 +f 63/63/63 11/11/11 151/151/151 +f 199/199/199 79/79/79 152/152/152 +f 23/23/23 86/86/86 110/110/110 +f 127/127/127 154/154/154 44/44/44 +f 134/134/134 133/133/133 108/108/108 +f 56/56/56 93/93/93 57/57/57 +f 243/243/243 156/156/156 157/157/157 +f 54/54/54 53/53/53 158/158/158 +f 34/34/34 33/33/33 159/159/159 +f 243/243/243 157/157/157 135/135/135 +f 59/59/59 127/127/127 33/33/33 +f 140/140/140 139/139/139 74/74/74 +f 142/142/142 161/161/161 162/162/162 +f 24/24/24 163/163/163 10/10/10 +f 86/86/86 62/62/62 153/153/153 +f 205/205/205 166/166/166 167/167/167 +f 29/29/29 118/118/118 166/166/166 +f 38/38/38 163/163/163 35/35/35 +f 46/46/46 45/45/45 169/169/169 +f 39/39/39 38/38/38 170/170/170 +f 159/159/159 171/171/171 34/34/34 +f 87/87/87 126/126/126 173/173/173 +f 15/15/15 174/174/174 16/16/16 +f 88/88/88 176/176/176 101/101/101 +f 22/22/22 143/143/143 77/77/77 +f 181/181/181 140/140/140 81/81/81 +f 175/175/175 179/179/179 180/180/180 +f 190/190/190 181/181/181 182/182/182 +f 128/128/128 23/23/23 9/9/9 +f 67/67/67 131/131/131 15/15/15 +f 203/203/203 183/183/183 142/142/142 +f 322/322/322 184/184/184 83/83/83 +f 117/117/117 165/165/165 118/118/118 +f 184/184/184 186/186/186 185/185/185 +f 180/180/180 106/106/106 26/26/26 +f 9/9/9 110/110/110 13/13/13 +f 149/149/149 188/188/188 150/150/150 +f 232/232/232 189/189/189 190/190/190 +f 210/210/210 177/177/177 99/99/99 +f 181/181/181 189/189/189 140/140/140 +f 60/60/60 192/192/192 119/119/119 +f 192/192/192 194/194/194 193/193/193 +f 113/113/113 30/30/30 196/196/196 +f 163/163/163 38/38/38 197/197/197 +f 309/309/309 198/198/198 68/68/68 +f 154/154/154 127/127/127 51/51/51 +f 152/152/152 19/19/19 199/199/199 +f 163/163/163 197/197/197 164/164/164 +f 240/240/240 124/124/124 160/160/160 +f 72/72/72 71/71/71 202/202/202 +f 174/174/174 123/123/123 175/175/175 +f 21/21/21 43/43/43 103/103/103 +f 142/142/142 2/2/2 203/203/203 +f 175/175/175 180/180/180 16/16/16 +f 437/437/437 204/204/204 27/27/27 +f 196/196/196 29/29/29 205/205/205 +f 39/39/39 139/139/139 206/206/206 +f 153/153/153 165/165/165 109/109/109 +f 162/162/162 144/144/144 141/141/141 +f 21/21/21 103/103/103 22/22/22 +f 122/122/122 207/207/207 123/123/123 +f 238/238/238 147/147/147 208/208/208 +f 207/207/207 209/209/209 179/179/179 +f 99/99/99 98/98/98 210/210/210 +f 69/69/69 214/214/214 145/145/145 +f 137/137/137 136/136/136 3/3/3 +f 218/218/218 176/176/176 216/216/216 +f 3/3/3 66/66/66 217/217/217 +f 172/172/172 126/126/126 120/120/120 +f 176/176/176 218/218/218 99/99/99 +f 85/85/85 148/148/148 40/40/40 +f 222/222/222 220/220/220 151/151/151 +f 134/134/134 208/208/208 221/221/221 +f 5/5/5 222/222/222 6/6/6 +f 4/4/4 10/10/10 223/223/223 +f 223/223/223 164/164/164 224/224/224 +f 136/136/136 131/131/131 66/66/66 +f 105/105/105 129/129/129 144/144/144 +f 86/86/86 23/23/23 76/76/76 +f 62/62/62 85/85/85 63/63/63 +f 109/109/109 117/117/117 121/121/121 +f 64/64/64 63/63/63 107/107/107 +f 215/215/215 214/214/214 113/113/113 +f 215/215/215 229/229/229 221/221/221 +f 159/159/159 46/46/46 171/171/171 +f 87/87/87 19/19/19 231/231/231 +f 221/221/221 146/146/146 215/215/215 +f 190/190/190 185/185/185 232/232/232 +f 182/182/182 83/83/83 190/190/190 +f 82/82/82 84/84/84 182/182/182 +f 80/80/80 47/47/47 82/82/82 +f 32/32/32 78/78/78 80/80/80 +f 234/234/234 161/161/161 233/233/233 +f 170/170/170 50/50/50 39/39/39 +f 36/36/36 51/51/51 170/170/170 +f 41/41/41 154/154/154 36/36/36 +f 148/148/148 45/45/45 41/41/41 +f 61/61/61 46/46/46 77/77/77 +f 3/3/3 2/2/2 137/137/137 +f 113/113/113 112/112/112 215/215/215 +f 178/178/178 143/143/143 234/234/234 +f 69/69/69 145/145/145 70/70/70 +f 152/152/152 78/78/78 231/231/231 +f 64/64/64 166/166/166 165/165/165 +f 61/61/61 236/236/236 192/192/192 +f 205/205/205 237/237/237 196/196/196 +f 208/208/208 134/134/134 107/107/107 +f 107/107/107 220/220/220 208/208/208 +f 167/167/167 239/239/239 205/205/205 +f 43/43/43 72/72/72 104/104/104 +f 105/105/105 211/211/211 129/129/129 +f 42/42/42 73/73/73 43/43/43 +f 8/8/8 150/150/150 42/42/42 +f 7/7/7 116/116/116 8/8/8 +f 241/241/241 227/227/227 7/7/7 +f 90/90/90 89/89/89 228/228/228 +f 89/89/89 209/209/209 230/230/230 +f 207/207/207 93/93/93 209/209/209 +f 122/122/122 158/158/158 207/207/207 +f 240/240/240 54/54/54 122/122/122 +f 160/160/160 55/55/55 240/240/240 +f 157/157/157 94/94/94 160/160/160 +f 108/108/108 155/155/155 167/167/167 +f 236/236/236 178/178/178 194/194/194 +f 155/155/155 133/133/133 111/111/111 +f 61/61/61 77/77/77 236/236/236 +f 228/228/228 227/227/227 90/90/90 +f 90/90/90 241/241/241 216/216/216 +f 216/216/216 12/12/12 218/218/218 +f 218/218/218 242/242/242 219/219/219 +f 125/125/125 31/31/31 214/214/214 +f 219/219/219 121/121/121 97/97/97 +f 97/97/97 225/225/225 125/125/125 +f 194/194/194 234/234/234 195/195/195 +f 137/137/137 141/141/141 243/243/243 +f 211/211/211 202/202/202 212/212/212 +f 105/105/105 104/104/104 211/211/211 +f 436/436/436 244/244/244 246/246/246 +f 5/5/5 4/4/4 248/248/248 +f 369/369/369 249/249/249 251/251/251 +f 248/248/248 247/247/247 253/253/253 +f 250/250/250 254/254/254 256/256/256 +f 250/250/250 249/249/249 254/254/254 +f 411/411/411 258/258/258 260/260/260 +f 430/430/430 18/18/18 262/262/262 +f 413/413/413 263/263/263 265/265/265 +f 253/253/253 252/252/252 267/267/267 +f 27/27/27 26/26/26 269/269/269 +f 427/427/427 270/270/270 272/272/272 +f 402/402/402 273/273/273 275/275/275 +f 267/267/267 266/266/266 277/277/277 +f 408/408/408 278/278/278 280/280/280 +f 327/327/327 267/267/267 281/281/281 +f 435/435/435 282/282/282 263/263/263 +f 409/409/409 283/283/283 285/285/285 +f 48/48/48 286/286/286 49/49/49 +f 429/429/429 288/288/288 290/290/290 +f 401/401/401 291/291/291 293/293/293 +f 402/402/402 297/297/297 273/273/273 +f 285/285/285 299/299/299 301/301/301 +f 328/328/328 302/302/302 304/304/304 +f 444/444/444 305/305/305 307/307/307 +f 364/364/364 308/308/308 70/70/70 +f 433/433/433 310/310/310 312/312/312 +f 290/290/290 289/289/289 314/314/314 +f 413/413/413 315/315/315 317/317/317 +f 79/79/79 318/318/318 48/48/48 +f 297/297/297 314/314/314 298/298/298 +f 314/314/314 313/313/313 319/319/319 +f 287/287/287 321/321/321 49/49/49 +f 302/302/302 323/323/323 324/324/324 +f 430/430/430 262/262/262 326/326/326 +f 267/267/267 327/327/327 253/253/253 +f 343/343/343 329/329/329 331/331/331 +f 464/464/464 332/332/332 334/334/334 +f 391/391/391 336/336/336 338/338/338 +f 307/307/307 306/306/306 258/258/258 +f 101/101/101 329/329/329 102/102/102 +f 459/459/459 340/340/340 342/342/342 +f 329/329/329 343/343/343 339/339/339 +f 446/446/446 304/304/304 346/346/346 +f 256/256/256 347/347/347 349/349/349 +f 454/454/454 350/350/350 352/352/352 +f 393/393/393 353/353/353 355/355/355 +f 271/271/271 356/356/356 272/272/272 +f 424/424/424 299/299/299 359/359/359 +f 347/347/347 256/256/256 360/360/360 +f 375/375/375 361/361/361 363/363/363 +f 308/308/308 364/364/364 366/366/366 +f 410/410/410 275/275/275 326/326/326 +f 411/411/411 260/260/260 269/269/269 +f 297/297/297 368/368/368 314/314/314 +f 264/264/264 282/282/282 251/251/251 +f 442/442/442 370/370/370 372/372/372 +f 363/363/363 373/373/373 375/375/375 +f 398/398/398 376/376/376 378/378/378 +f 385/385/385 379/379/379 381/381/381 +f 403/403/403 382/382/382 384/384/384 +f 363/363/363 379/379/379 373/373/373 +f 436/436/436 386/386/386 388/388/388 +f 340/340/340 389/389/389 341/341/341 +f 451/451/451 390/390/390 147/147/147 +f 366/366/366 336/336/336 308/308/308 +f 323/323/323 392/392/392 315/315/315 +f 421/421/421 393/393/393 394/394/394 +f 248/248/248 253/253/253 395/395/395 +f 318/318/318 79/79/79 396/396/396 +f 348/348/348 324/324/324 349/349/349 +f 409/409/409 397/397/397 283/283/283 +f 460/460/460 398/398/398 346/346/346 +f 464/464/464 334/334/334 399/399/399 +f 370/370/370 400/400/400 371/371/371 +f 332/332/332 291/291/291 333/333/333 +f 283/283/283 402/402/402 284/284/284 +f 432/432/432 371/371/371 379/379/379 +f 283/283/283 368/368/368 402/402/402 +f 288/288/288 403/403/403 289/289/289 +f 389/389/389 404/404/404 387/387/387 +f 431/431/431 405/405/405 247/247/247 +f 303/303/303 302/302/302 348/348/348 +f 304/304/304 406/406/406 345/345/345 +f 465/465/465 271/271/271 406/406/406 +f 252/252/252 405/405/405 266/266/266 +f 392/392/392 409/409/409 316/316/316 +f 266/266/266 408/408/408 276/276/276 +f 410/410/410 358/358/358 275/275/275 +f 445/445/445 410/410/410 325/325/325 +f 416/416/416 374/374/374 411/411/411 +f 177/177/177 412/412/412 101/101/101 +f 455/455/455 389/389/389 317/317/317 +f 289/289/289 384/384/384 313/313/313 +f 339/339/339 415/415/415 268/268/268 +f 313/313/313 414/414/414 320/320/320 +f 349/349/349 265/265/265 251/251/251 +f 374/374/374 373/373/373 258/258/258 +f 404/404/404 418/418/418 388/388/388 +f 420/420/420 184/184/184 321/321/321 +f 465/465/465 303/303/303 271/271/271 +f 466/466/466 186/186/186 420/420/420 +f 102/102/102 339/339/339 26/26/26 +f 256/256/256 349/349/349 250/250/250 +f 312/312/312 311/311/311 394/394/394 +f 414/414/414 422/422/422 417/417/417 +f 412/412/412 177/177/177 338/338/338 +f 383/383/383 422/422/422 384/384/384 +f 426/426/426 300/300/300 424/424/424 +f 461/461/461 425/425/425 426/426/426 +f 270/270/270 427/427/427 351/351/351 +f 278/278/278 408/408/408 428/428/428 +f 391/391/391 198/198/198 308/308/308 +f 290/290/290 368/368/368 429/429/429 +f 18/18/18 430/430/430 199/199/199 +f 467/467/467 428/428/428 431/431/431 +f 379/379/379 363/363/363 432/432/432 +f 468/468/468 310/310/310 434/434/434 +f 415/415/415 375/375/375 416/416/416 +f 459/459/459 435/435/435 340/340/340 +f 244/244/244 436/436/436 419/419/419 +f 269/269/269 268/268/268 411/411/411 +f 269/269/269 367/367/367 27/27/27 +f 406/406/406 270/270/270 407/407/407 +f 382/382/382 403/403/403 279/279/279 +f 356/356/356 303/303/303 347/347/347 +f 400/400/400 341/341/341 386/386/386 +f 389/389/389 340/340/340 413/413/413 +f 415/415/415 438/438/438 375/375/375 +f 451/451/451 147/147/147 439/439/439 +f 339/339/339 344/344/344 415/415/415 +f 198/198/198 391/391/391 210/210/210 +f 447/447/447 365/365/365 390/390/390 +f 444/444/444 385/385/385 246/246/246 +f 329/329/329 412/412/412 330/330/330 +f 305/305/305 444/444/444 245/245/245 +f 358/358/358 410/410/410 359/359/359 +f 337/337/337 443/443/443 338/338/338 +f 281/281/281 392/392/392 327/327/327 +f 446/446/446 220/220/220 395/395/395 +f 451/451/451 439/439/439 377/377/377 +f 395/395/395 222/222/222 248/248/248 +f 431/431/431 247/247/247 223/223/223 +f 467/467/467 431/431/431 224/224/224 +f 307/307/307 373/373/373 444/444/444 +f 400/400/400 370/370/370 341/341/341 +f 413/413/413 265/265/265 315/315/315 +f 327/327/327 323/323/323 328/328/328 +f 357/357/357 356/356/356 360/360/360 +f 395/395/395 328/328/328 446/446/446 +f 427/427/427 365/365/365 352/352/352 +f 376/376/376 449/449/449 377/377/377 +f 299/299/299 285/285/285 358/358/358 +f 396/396/396 430/430/430 274/274/274 +f 390/390/390 451/451/451 447/447/447 +f 466/466/466 420/420/420 423/423/423 +f 420/420/420 321/321/321 417/417/417 +f 321/321/321 287/287/287 320/320/320 +f 287/287/287 286/286/286 319/319/319 +f 286/286/286 318/318/318 298/298/298 +f 418/418/418 404/404/404 453/453/453 +f 403/403/403 288/288/288 280/280/280 +f 288/288/288 429/429/429 276/276/276 +f 429/429/429 397/397/397 277/277/277 +f 397/397/397 409/409/409 281/281/281 +f 316/316/316 285/285/285 317/317/317 +f 386/386/386 436/436/436 381/381/381 +f 449/449/449 454/454/454 447/447/447 +f 404/404/404 389/389/389 452/452/452 +f 235/235/235 390/390/390 70/70/70 +f 273/273/273 318/318/318 274/274/274 +f 465/465/465 406/406/406 303/303/303 +f 425/425/425 456/456/456 300/300/300 +f 350/350/350 457/457/457 351/351/351 +f 346/346/346 378/378/378 446/446/446 +f 238/238/238 220/220/220 439/439/439 +f 457/457/457 458/458/458 407/407/407 +f 434/434/434 433/433/433 459/459/459 +f 442/442/442 441/441/441 370/370/370 +f 433/433/433 312/312/312 435/435/435 +f 312/312/312 394/394/394 282/282/282 +f 394/394/394 355/355/355 369/369/369 +f 355/355/355 354/354/354 249/249/249 +f 295/295/295 343/343/343 450/450/450 +f 294/294/294 344/344/344 295/295/295 +f 294/294/294 334/334/334 344/344/344 +f 334/334/334 333/333/333 438/438/438 +f 333/333/333 401/401/401 361/361/361 +f 401/401/401 293/293/293 362/362/362 +f 293/293/293 372/372/372 432/432/432 +f 454/454/454 449/449/449 398/398/398 +f 458/458/458 457/457/457 460/460/460 +f 458/458/458 460/460/460 345/345/345 +f 452/452/452 455/455/455 425/425/425 +f 454/454/454 398/398/398 350/350/350 +f 455/455/455 317/317/317 456/456/456 +f 257/257/257 354/354/354 331/331/331 +f 254/254/254 257/257/257 330/330/330 +f 255/255/255 254/254/254 443/443/443 +f 360/360/360 255/255/255 337/337/337 +f 427/427/427 272/272/272 365/365/365 +f 357/357/357 360/360/360 336/336/336 +f 272/272/272 357/357/357 366/366/366 +f 453/453/453 452/452/452 461/461/461 +f 400/400/400 386/386/386 380/380/380 +f 468/468/468 434/434/434 462/462/462 +f 434/434/434 459/459/459 441/441/441 +# 852 faces + diff --git a/app/src/main/assets/out.png b/app/src/main/assets/out.png new file mode 100644 index 0000000000000000000000000000000000000000..889a6adf48daef66d0f45a38666a09a262220e0f GIT binary patch literal 142129 zcmZ7d1yoc~_dbpf-7p|Agi44C($d}1F)+l?AdPe@jdTc7!cZzTbV+xKbR$TPGIU7y z@A`h;_xoS#f7iNwZk&Dg*=O(P*(X{{;}r=Z9U%w=B2iY7hk`(u!5|REDn2G~rMXtM z7T95UKwrs%Dn=Q$fD>$68Fd*Ds5+78#sUX8Cva6V^Z@8)hXbp9B=&!rQ?F(9PP{-es_*It_H$Gge*&MkvaiyQ;l(TME5r7e@>r6Og) zQofhWzedzxNAqOo|0z%YDfRTbQfl3a*86pm5Mz8s(20A~cU!G;ubmS%=uG*PhS*-+ zzs(b7W{aJ}sfonS-E8j#`=V^`tM}t*%tNB>GGzOq7jXWci_L{&IIHO3S(6H>|9cL2 zcx-|Uca_BC?WW29l>rK7QC8?X>~Jnz_=V(zq5u2r!r)dd|LP-ksp!hFri1@{71(I3 z!T+?0EVfoV1R8QK^ZNexOQugHvNh`UU|!ODYqdcULc*dNVmxM%{uuc_|M`)HEgFrh zBh&y1s3WcrNr(BYLe7Ab>3nKh4D`QO6MbC?IA5}HzI+N2!(n-~PBOlXs9FA3wSRB$ zpA5Q84|4muI~SZqmgVhz63^QY3F&5jG1GM3fpz#_xk$Xa(!4*>WNtWxF_v_kZHf_x zId(4wv$Hql@TlTb{DL! z=ivWIf^8aFKz$7>ffXPrQ<>{y4js#zrj1oA3VtITISbO@gip%}ezL+=fxk3!#JM_aKfnB+nEgW}cb=3f&Jfo-l#B=Fv(oQ* zjQ+QgPekf)&8c7+ygM^@EL(@^y2c~ruX#sT|Mwf&&XYv~=0;c* zBcG9CU{#0IeGXDHvVPn`b#b819}~?QD*n}-J1%tZ^p?^Xc~8E@+vq73L-q3ex>U>4 z)+vn_&2B$-fO?+{eF5>Dc5o+IR4vNVV;PG&*Yrx~jm!e>w@F#Qt5UVKsZ; zQ%{{pp+bXp9^iR1;pzv!zLuLAR{r*Ujb3mHaJgCeTLnCH+iKT>tETPN;&UxysDM2? zhOdP@e61q)D-aDmXq?jMpoE`e%jy03^AmRc@^`aYWLNH0Dm$!Bl0KF4ZR5nVe=?L3 z*^;{LS@Ch1JP@hT{>E-IEDH_^dCAS(8@Pf`7r~_XFcKn*kMYWFo;*#%sC5PCq4a+a zo1zUH&-DU@wwhM+Xxf+Kj&bhu)Qj)xyXm@_wO~m2Mx4X47##@yQh_l^lQOK;#Tv z7=QL>L8HUKpB6ueA6>@1*ea7%nQ;DlPe1});a`7QvDLB5uxp9GjqbDeadu4S>x5oM zxeCx;TMeoBJSWBS76Fr&IM`pMbDp-4{-?UQCM92uN-Q-tXY}RnNR-(&e!kjYgjBN5 zX^2U@;>IeP8UkO7a703+xi5m&rZ~5Y!WCk?NP3jQ`e67>-(##i&1#&X1Rg(`nW1H2 z71#8U*bbXNGAb#S0PAx{>50>6^g&>0!6dc}HM6m;=6D%CXPkWDzK*3HM&#Q?V-4Mu@c!KtfE4*0zN4xyhP zC<`417Mbxah4b5XWPKd#{GOv=HXb0A>z@)}n7gcX94&&1Su4t7^_FZ|E0(hh+aZzE z8y0!+9ahJV{`z94Q?cnRF+MR~9wwlqwdc8}n1y*YSL40%ucBJhphg;2N08z{Uk?e0 zIth$9QY8!NXX<4N&%*#QG}G3_*Zm>QWQ0BWy z?$Bw&NrmlpBnXBekr&*gQ@Y`uokuXI-a0^VH zsIw%g)Ej$+&!r>XfUbQ-uq6n(KBf+XF=fi9EPfb%sh)2|%uCt>ww%sG%JA2%w&32x z=BKY6dTbsi9elJu)s~2C%t99`-bp(oc}6{#H!C|BmrI2@Dkf5pmm|8*#$Zmd0iz=5 z$%962zzi?cc?i6y)=xvelrNd*iZRen6@!f!O zHSQut)iiT5l|-ptb--H~VE@z9=0`+0**K4DIM@m@9ZTv{5WpZ}gS84J3By1mnZnn2 z9_{awMxu^dEuKWXZ?(;^pX2ejjGkn{gA2!~Tm4o$xB$pp0jNOZr)G zqRNX`*xm;3+wE0xeyfWVq@>mT238Jx(=_W*RrUhudrs+1xTH zS>>bs$EFVt_9KqK5xl(?5L^;%UYS#myyd6nMcM7d3z$`^r6i!z7`wxOXe8A~hm14X z1`sF`9AN>mB<^8kD(03PB<(aKZQ~#b3Od1Q`yj8Gi`B`_ynY>9;W|&dgh*i-9b+CP zYJfKMnP^y@Ps}n)55nJzI*p3VA#{F-pj$bHYQFLp`5C6Ma;lD&d_{O5MTkHdwc~;> zP52NWV%ZgtQ4WxZqqViWnH~K~GpSbpfYy%3WCLri4F5J!Zp2J?9Gx z?e`YPM0F!nMg+rKlCIj=nje>-<}j9h3O+CQ_;6mKlE(v{^>+R zLBHn_@?9mfuvkoNb%QA8cb%esW%fN2_VudjqV*uEmmm5iateN@c$iMse6=>Txyeqq z*05K$XH)$llG^=IFjSXQ0gQt#Q5`HuA#Q8533kno_hg8;Zn@U4d~Dj`=j-d$*zq`V zpy%k$)hDPm2-0sAr`=6fIw&P+GS~6I!6y=(9awmR32NA~ZN0jAS&;T{X{tFAsVPs^ z1CC&lXHcVsF^yqjPpF*FZ^h=(eEt2b~qrnG<1W~lXV6S-Mt+L80o023__hs z>VL=mvCR7T?K|KCDa9SRinsgU9&VrB_LLs&JBu%q44{tIW^Q|SP)CvpVG)di-_7Ut zRWHyob2nJ&>N~B!3;>IVR{W1jH+f+itj9h4+m;p9tV`}du+yH;ggqlnOs<#C8^P0= zqX46_CHN(LXIqpjVG{d2$MkMt%7d@Y=OEXm|6Nb@&)o;14?Ts*K4TIUf>B<9g63UheK6{YF259T3FHWm&|oL^z!ncPHMKY zYGLvvwQmd&j^rdq`}@B4+xu&$M|W$kJ~U*nK!-h94L&~SN3O(juaCq)?Mt{pqRq}) zF8FnQi5ZkX|8K;->rn@#m9p6(I|5dInbtFYMq&)Of`TKNu%CCeqh;K_c50YGfGVIF zq;e(AIxt$!21UxQT6B+b>o}=A#uTv0a69LP=+|B8gDclMRLTqN20Kj{zQa|?r#w|h zgBK8KK!YfY6d>FOOEywGo|@V)uo*gV&g;anxK^c0e?{swvNU{ysEzkYvDvDr&B06i z*L=m7J47YL84eyrpiCIZj(o*i{ZF?~v#ui}*Y>%3F^XK~1q)|JZ>1hI4=UaIad6c; zbI}6BckZ)WMo>Q?*Y(p54A=;ZC}_88ohMv49A82h%NP1J(k} zFYM;uPI;-i0>9>o4=dWAM!ledPZZx+5-z-Hh^YRU-Hp@HxFho z&_SAlP94OT-&+(TXPkP7gQdPq2gx_vJgIAJ5X<2m?>GaTtDu~du(Hn;^Ubm+#v)dp zqcHYK_6yjD>~`@hx$iQlg0mPrX;aMzg-^}-K|B?^ET`2h(JZ6OL!#etQ(-u-xKQJ9 ztbgoH3+>yD3#b0Li<;$Vq!$%!ZSiN14sF#Siab9}@uU3!OR35Q!~$P+jSo~$sNyL; z+fhc#;LhO35y;bNq&gnvb3W`#xya+S)9ngmF=mKcQz{UEL_A$O#I9XTtv%5w{d?!9 z)d61ZdE_*(;14((QmR+)K+A{xS8psL>qA63ECP_}-m|PHW6n-(Q<~C2_(|u=GY_KA zl6}HjBvKKofr_GzhlaM9B$KPTzhw{~n^I&Opehxt=_!B3xzmT+KoKS-cWA7Fv8kaLymqIS3^*Vjg|>6SE>M@QUl0bz z{)+^k8E}~8sShN=g29)s;0=Doz8_$VB%W>McyuTqwi47>^f|tLE&zUmFsmbPL>J0_zA_ISg;oVd2cD9TZ?JyR5;Ax*n8{!A; zp}J~qK^BhX(#F9RQRY~`g%b?AgJe=f{Dv3FI`B@b-$1U5)a{CL#criR6*ssiIGW}D zS@;K*1W2ZBp5Bmfxf?KkQ&MYL_Eswm5J1GEIly79w=Iw}yw3C!spCDXeHr{9%FtOC`2?YD5!LK}t8o zfvey*;f@tKd6zfFC}fc!DWZ!x!)$V!K4mW<0zr{b`Za{+0XUR*$5+Mz=O8|X(^M#axXX3tTyOWlhm?xRr((iSZ*4*g~CdzOl+Ji zB~+gDf&&u1Yq*?VYs%}^#prPuv=H!nB)jT){$NXm@TByd_gG;jCmJ?TkvRB)bono zF$?zYs=s^qQW%?#=NI|nn(J!HA|1}{PZpnn$Le!o6qVqh+t=LlTQsUtxWN;by%>$Q z&b|-+kdJ4CJ{oXim}ukqQSR-rT}b~{TUX;N-7U=x> zd-lDqu^Gcg^AEpOipZkQ>6zT%Ha@%Z__g@PH6!&|$6GtLpk@y*Dq+1r(%NQ3!d0EUGg{TPQ#+Iicc*QDQ@2ujoO8Ok1w0qm{GwB*>z-%{c zpicL*F(jT)hw`QrV^y}M*V6lZMSdDX2zPeXZr%^#UNtJ6ciB)JtWfW+B+lCns45rR z9Mo3}mlUt7tdTt)@kTh9n^#_AY#siwI5-z^JlS<1&dpYk?D1y%zygqv1#wTFTQRa^ znpu>Av~nfjbf)rdCd=o5bfASj(~xc513OKa3F(pzmaX)&O6#UEt5#f9t>sB}*C{!^ zBnEkBQ;}o(AMF2I9{p$8KR8Gn_|hXnAv^Wb7AXNjBY5wLZ}w+a90M<8PDI=XU*P4m zZTtUMP8f%oTa4se+s|aO-r6R!joSXWY@Ju!?7qA`7)KQ>Q^ zV}zmwEx;s^5j~K8ZP{XEfl7ryEGcSjMBgmnI6dfczqFFn=X^X^;`Yb>s8hZ+$O}S1 z(xau)WXy#=zI-QHlp>2?(H8+`a7O#(6xtiQ;ts~)t*}j(PCQ4gxi)rm1l?YpW(m10 zxB4AlodW)GF%onQB~%y`4#m*I8fAif#uzer8<=3aG3e+o!_S1wqH_(>jk*qELS_fr zpAdt5jB6~jzu|I(n_qikslXJhqKp@4$s&b;c+Bbvi0A~oe?db&A$1*V=#5#QG@FW2 z_g|Y5Xp(Q~Uk&7)KV`aEiV^`|fQ1;2ScKJk6TK))#Is1uKk5v!6&0u**RAG!7Aaum zX5(f<>v~X-m%L9iu8<%+yPx0i-8~EuM7$(z`%!>rj?moO7-b-fa#f(4E)Ae~f?WaQ zjxI%}+h?Y;7PMxv3qK-5K`hIdD1k7%M1YD7)-BwAxn0_EaeDvvR0!}$TcI<|%)Ihn zDMF{c-384j-8AG$Bjw6Z-J9NB9Io|5l1=e95sD>ziDJ~xaP1$@YxpQD(>CZnsujh{ zCXs+zT3RaAuUu|>dp@IY*5-f8-fy6S0eVb|XE&H|k}+kPRxm3{jMcupv}958S(BWu zw#7-Zx=sp5DT10POPbgg#Kao)0$e46(+&Qk=C>al z2uwXp(-0mSO@+peNts@imSVBYmkqEQ3|`SYm??DSs8*ea?)P?x(kxOL%)^~cHY z{QVUoXx5^-uYQ?mYeRRgGFlREnxA02=zLuc8C5QU^h}2th*`(m^Yr_j`@bVXL2ma~ zslCs;Rfo-4Xl3g%i42Gi|13fYPlks6{JlM23A)~ENK8y@PY@%<+Q=>Wm^Da6xUgt+ zslqva>nWN&W}C;sb2n3}Zx(cWx-(Zv7Kv5$U|%cg@uNrmZX5-OF?3N;5zxbZ15dZ9 zY^ny_cHKzFwAOj!Ks1+H=CFGyLA? zz%Zbtit%pv7PLtWwuO zv)*`|zo?(y^=>|HF5Ds8!uv%}yF6d7IIi9+enB`(aI9$q>d0m= z{cS3<(W*iHNy)cQZrxS7LWxLbD2{LrwVsj&8_XC>l-SK2W?q3rZonUq##IRX;X^~^ z&D#8KOFM3cTmnx^fsk83am)E{0x!S-NQb>95BYq#h8iF{Sm7QDrCs&Q>A2o+S-CrF zcq|pz`}^?7*Aui6uj#nsxxzSYWMUypU;7j2_MW09T_+bpPA1X)|bNnfg)It`#3Ijh=0t> zP(`DjGQ{1`0uKA-)D`62S(9Ru`&~CYQi`J0aRc|sXO}Ko69eL>Zs{R^vBC4=?m-@1 zv%v7NUeM)yE0!?O($W$c3AiD|+PXw)-`!2!b98c0YH$KNY&)E)6;z zx$SWz(AM4E-sd64@&PBJgcEpsp+o#8%N_TJOARZMIU20CBo?30WRE4^oiF(Ssw-lP zr%wq;1TH=_!@Wk*e-N zWyjTa>2*tspP^*n&BfjAdHS)nc-()+{;bNC)qeZl91a^i6= zWCylSdyF2Cb+(&+FZEE}nmcCjth9C>n@k$Brks)!kHJ55~CeBkh z>`>bEH%6JXwT3`C+@mAI(tZZ&xMo5mV7sfuUho?;mSgwr=SRCuOO1nAgi9!C_(?W}#)*5D+lU3Q4NY5Q0iE4A<3TBzse-IvnouOyTST1^h+tKB4V%ic->9O$xU>n-E3H zvcA5jK=Wjwjz(=;?Vp%ZJ=BwfFsmiVv3ZH+0(uVU;=$wGN9nBA8nnYAG)aJE>csfa zbzeom!;x>&@OLG+7E@RlPq81qlbq(4S!55NOm14|l2j$ep)0;T+gk+S%mMI*AE3AC z#|pZ^BQAgeIo+PQy}k9#YpY8flYgD_&u$O>N%p`+SXIzNc8PjM6@-4yW6YZfj)~zO z0E{B$s$+W-PUn7&32{HsfuPUV*X?64LZ z#wxbh9kcZZ+O$q2XIDaXJX$r_4Z<`qSshA?^cWRE;e$Df{~~Phe19ua4QP-?9{C3O zw6@TbTH#l#ytn30Sp^)Bf+7Cg(ez`_L1w_rTwh17xk^{-x-If(442hc?FGwau$~Dl zEY}grV(APSIQ=cbcZhsyI^MzSW-c4r3&Wz~=>KBsJ}UAoBZh?vyxU~H7pLq}_k^Pp z@D;p#f`B0LpKS)bgRapR=v}?HRZ|hLGah1)IY^LazG&*L(pj10zzn_A7}L3i*y#xi zzxmF+B_Bp^XUs{SxX^)-gYrrF`X`} z5(yF-OVOlbnidz(c8n+l{Hu*JVUVi43RQ8Du!9^nwVv@THe?Y_tm~j5=+R7<$tx{5 zhfrNFdnw4~rap)7i@J!llDY|gX6_Sm7AN~2gmNK}(Jg+4JHym3Y{#H0Fo(H##F|bJ z{PDQ;_mH?*A)B%U!$HD84^ILzB$z4r#lCXro?xWF2LfljSDXw}TW9rN+X=0o3|Iso zt`;owD0a9-%}ibn%t2M)(A4c`UodpmM$)~^+5&I?IaPtjSH9x2@al)Om!7qL(tM<# zrjCEh`BdYLIC!^w+lQ)w!cb3W)--SA>2n`|LCO(y?4;*{4~?(~zQ=@U$-f)k!LpfsM&Dn2G`zNaTnwYheL#)=sR?=2G4KlSk%Tzw1|t;#6+#vDedESlTV22hOvBi@R&llkFusG zQ#?&|WDB<8IIO{ku6+*}6XA|##7k{RfxDdx_EUbNhs%LyIH-hPzznn^0Zz3&DjCh{ zk@cp84Q;PHC9XeXM<3}+^x!kH{%^Ca-ELD#=$}RA^+=7T{ZU0;(9=WrHDwsp3+(!M z9u-B_DihIG0qymXI4W0S=R7ehNzjqGyk?)_*BFqQjL-S`zmflXW^u04G!mTGa&2#@ zsQ~)!;8Je2EaC+z8P5U8Tn3d>8W*Y5t&F{sj#gsxC}(w5}>fiT#QvDnDbUB zH_ga{YT1{xB1+mrZvte*A(d&x5YokqZ4mkkb9L`p!;B)JT^!C-t?K9@BmN;#H&(Sm zItjqI&1a0=x!7h9?izl|UWV?bPi#vJOXX+qJ>Q?YmxSk$h9zl%%b_#iuOA0^X4chw z3YN17I(do(X`OYdqm-_~UQuK6)(_|S#>(R}^@G1)b21mq>UvZZ#87MR>$rnVc^XXJ z*~Y_SRrs;pL9=}ScE-F8U+ooH10R`R}G0*1BvCL1eYq2F<7N9Hb5#}oKy(Q zS3j#I)rQ;>6xAy7s+$n+oA+SooHsYLL%m8tkVwGBbzE({=&B=+dNgra2z(q9bE;DNM8>gm>;m($(d!_9^aghTyD%m60R5 z6nOc(Nw4PSlabiEEIRi3VEFBg6xECpX9hnhil;X!cAmY0#3dSK4dT_TE9;TwPlsw40u4dFNfCvsjret{ocR=>Vr7HN@7)ZZ5%uQjGb zMNR-MV4sl~{at9xSFy#}novb%ii2k+@X{qCWXV z!E88DmOEVKla47=17{9fj(!XlzQ8N@4GmGUWm^?!pOq=gu;vXQ8@c`j8FP(VCW0_x%r82)#J zetq?HnUkH4!JvF)LNNhu6DUEy?5?&GZ^6e{wdXo`(fRhi(G1QCrAyEnDPqm<%! z+EI2%U&>K>EJlns2o7B0(yfn3axA5C70>Owu?mcDk~8YBMPW(&&R{v+O4@*|HQBeLpfDTRAsn$oQn%qGZnPgP9r0#%hX5VY|@lov0g5m-6Hc) zBE14_28oI(Q|R6czdw?=t3->2oM-9gOio$R!%v3 z1tA0E8LU%X6^MYYZ&@Lk`gs#jzMZ@Q7#sebM}UNV0Z<{bXU!KvW)+2iKLc6e%Jv)q zkV=s6_0=h$%4$~aJ}sPPRAi6_nzxbzc7<5GIn zjh{I(9D9x=i9-sCz`@NC?VR*tpnLZcjBY)pwIykYFcV_jY0zhdoHOMay%a++pzk-R-o#emC?k)D9(x&OJm(Da?)tX0UWwDlR z0>{!|jt>hDl`%3Oa(*p)n+kVKf;)^96hd9UEB^3PW|dhPWlc?187<)Gbi)EscIpi|rj71-14-sn?I8!N5A{Tf_H#Y4lW z`*q{{IoX{!9$*Mm-IW*noDL(_~fvP+&O9b{JjF-AdRfZrl zQ-jug+)^ME|Ha&wK90)6&dd}0TijZhJo_lWwvi+HNYcP@`E{A)yVdpgqllfn6W*>b zlZxjNLB=hLLp2*<6RI*nqn#P3BbS3p`jTbowb?}FP4So=ys(83FQ(`F zc6Lz!n8cm#T+58pEEgT-`Ya!VS%h=SQ!Tzi&3LA5B|oL{@-+ zPQ_PQ<5N%@^!aIho9$^1CMd3mCta=bpK=wXD6p3m{+pCcrwYB64;tP6VdWE0l()FA!qO>Cr47MGCTuHe4{>e za`~T&08XfLy;v{io&C8IAIm7`!y$A1FSo;yiHzd2T+ebwesI2Kh)F>#GUW*;Feq-@ zX&~@7UXM7YD=hR4PVtA}eL&A>2b++4Unywcj08D>)SUPHvwh;u#=Qn@MIy41*Kj5n zL%>f%MpDW{dR@6g@~Rm8rl5K;#z zz(8B*0qx6H~RW*FgvP+);V?Ut&H*NCz7@C9EJ-K!vW_A&OlVA%BVm!*mG6 zsq+P%xGgz+Ua)xK#JPz3CaA62geqb-R*az<2LOUm*u0wqSyRxTbYi!E?QlAUGJ=n# zCeL3z`@=K$$!kZU0LnU@S|XR1?O^ zSi9Y$_v{Kd8HWyn!-ejjSdw=G4c0kv#A4HkdHPu+sfxU3Vys;&nV2Z+-w%+6wETEN zQN~2F;w0>3QoA$q!_Rc}F-Ez-!!?RUrbFgV=sL5}coKyh+?9pul&8$`F5^>L@%ulo z8$s4<#%{0&-EhkbyaY#~QdV+$TJ2bK{4(1`>F8LZ#-9Xp&(1evW52mVqRirdQ2=a` z@{!Q}(MtVjU6TK8{ANY#s{9aO<+yeKCYG9N5-hS{~w>*#sOCmSPt!LfAT zY9h(?>uYf{qSOT{e`6QTmQu+W*f5G#C31TZ+$kc?vqkfIA5SB3v*pg=a9jgvtRBn9k zKEKv?&6Cg`$7gukY)Q>`(4VClInzJ89|py0xmX9|4BWbw#SVTc_4K~7n((0LQs~c( zaeiH@XHdOi{Ye8ov}NCF%7;1%q~YQ?C+kjZznl^W zt#^$}q?aRpBL@3T@Not-%gs|`yP+SajS0Q?Z7#YrWo~v7x>Btua~!-^h@zZe$Ue>{{8JuV4#> z^@LM?L!}{Am7??U22t9uu*2_U5ke=Y`VClBsd%H-on(C`Mc33ucU5#XxB`DQ_iLtT zqyek5<`S1UA$LWM>me-+Iq%9(idiTWedW05W|shQfxALra968(Fuz^gcUgSNxl?A) z3WRF+BsQ=8=N^A4JJeBQ$XZlFBKy(fbo=f#ovL9>;=cwK#&1=(R7R+R?F+T0C3Q4@ zCg`0JSg0|hmZjgVTXIm&E^jI+$j9P;mH3eV_YhyKQ@I+0>^Ti(Q8yc@Ey?GQ$oS{q z4k%i+Jl}JWVW9M%r_O7Et6tDt@7_K;lUv{TeiG*JA@Am={wu{!OT55fY#WVfMiR?z zT>ja;y~iK6rhM%|Wxt5K`pmyB$cRBrMha-_vWj``=P!tY>`35|Jq44ki#+rB2+Ycb z-!B#N=7e4@&5yfLG7`E=K*++~kAIrYZECe0p?G$=_8X_tWvQ3_Kj6LIjlm$%WuEw#XzImT6gz5E7u3p)e(DjDM)diDYVl3H3w6QT7f=6t5#qS<1pCpJf^b)_9 zdqRHj?)}3F|IaWx`UfvrzFDPb;Bs_6qal25oyv$yVVZRE%+jwRnaSWIf7#0yTzqJ< z=lT{3{M`;A^KQp#N=A42*PpQk^T4+N^w> z-AdMXaKR&8a}Q^A&2b~2r8I^7ahc_-;u|eKHC}^gb!%h&m;H2%yKYZD)485ut9Ph? z3BGj?k@ebq_KsqTumH#t@WTsKbmkHBbs>U>nYPz zQ{EZm_*BwR6{ejOWmCXEt@Y+F!(SCYG{8Y29ThvHHlVCfye*y)Q(P@6tQ&HADBCpgN7Zlfqe}V|JaJ4a+0! zqKYl54C{pbdd&HbN<-zq@PbP(S8iRb|WgpxZH2I2$Ta=UwbE`ab=7-Z=IlL_OpE z>YIRY4GRA7?=y431*+FJ*Iqa7psyoA;`tjcS` zpS$DQ$|%ir$Ua1s{$_Z(Htf{0VceKG{OU0TBYI6PG~BKz_@lgEOSpCJhHV~LmQlEW z#F$r)>q_~7nmkrmKHmAuG0FRz?HQnZUu^?WEdWV+JDru--_(~j&>4E1^1Um{#n=kE zy}p0lwn9JV-$epaoHJ-Rq6;?CT>X_kNQqfo9KO$&s>S<@s%xB&lsBPg%@qPoZ9+lG|lc7rGoBT zRtmPd-v+7EW9OK=(_Tk6RycnA&MO};BR7r_Lt5dR*!85$O!ZYLPlOo>^ZbCr-{tZ7 z2e!Ggqc1c+3!($hODtTOh_m?gX9PznE6i!6nCpfkj>`S_7ey=Ng?3N)NjCtm8J769M01=7D4Yc&Efq^+IQQ4s; z-5J~tNBbwwo_&+>Rg!mt9*Ar&xS)tWQ%`;9oiAklNjv&mD9@!Fu9}ISLZKS&kIn7| zr0yFII&Muexv2EdHi*G2yWn}z9^Dym4+IYa0?e2kv0V68oW&ts@TWb}aK9M#)$!kA z0-WsL5QWcL-cM;%=6xt@M6~**jXd0^>xNk*PK@%tLHMF|%W!Ua=3rOV3iT zR2*xeDupt>aQD$Yr%Ie_W4CsEAzm8&ge2X{FD$v1LY7sndS5b17!zU`ALCq=QBAux zBv$Ee_9XO(qzi!N7Q!CPtmGUc9m@AO{NvjBu~UPe6Cwv5RMaE;^T>zln6UrcRAKOt zk`?)Rlnb)6G_t&pQnt@^kYph3Tm={i%m`pG!(oLizpJ0OXjz%419CHB8G>VVwfkf| zUOR$wN7Su}I;G8GvZ)h#^v>SJ;KfPc91`dirlkJRwi}0tyz&4jWt5w6oEyZctI#Vy zH0p4@WdEe-%VUC0A$eT+?4=>O!C$RM6gXiloG<|RN(bD5i?xRPzufnz-227rm0K=# z9c3cYobHFjZNA-cFT>x&As`HqObK!f{lfAOabaQtkEe#)RzscvzZ* znVnfe^*yGW=Oiw*;1!shk%_)TK)D>o%+Z`$+AL$zr>ihM-Qw6smx=6!2=sz6`|Tu| z5FW~GG?}zj?_t$7GNgay@D$ui7ld-6bZ;}D%+1A81i7~ zljw>}5M#-4V-q} zde}H1k0Cmh#90)n>q|3|E|M~T2?(y?zwD+;AjQY*b{ojuJDpit%0^yU_smat1_hB> zad8lbi42wkvw))T++1JpvUEH0rQo0~bvvNpZ%ejo=0yp|7=yV*4e`HYjfFvwSDVwE zw@YOyYXKSupTsLSMLWc9O+A;!Ca49~P&YZ(t`pKvY7btMT%kr8VykZD;&eiIYu|?( znwQj1Ljl?z07DZKiv|Y#np2>&BKAspXZ& z2MLiq!u^}^}Ml8V!KR;!?fwLgRAcUzCdskF2XnAYw1Ax5utO);Ia^U34 zg-lr*AuelEh23-C+qdo`%ZDD`clJ2Z?K%_4$;(JRSZMmtHa`IWIw!I+{!C)`xSo9-5~?O z3@Vnu^K)RH4nV*Tpnypu`@XGWvULv=QAa#+cnHt~3oq*k{a-rRShjzp!B6Sm`9 znZk7C+FQdMgW}eDR7&`ppm+rFt?!hpw0k#FFEEX0xEIHWsg_M-*kHVBexaK|7-nuf zcTwq39?GeSnP_x5ePXkrr~Q6(F-ptacKl1AkH<)T84HuB-NF1lE^$N*v5_52o$a(i ztTCWofQD$tsdg%tv#%ozmqT_Rn}*g+>A8)ainmJ!p2ohZ_>;Rihpga58Y}CMQycs0B!vv+JS%RPmZ1+2(jgI^-C@D3;^8K?7u^(@< zURb{W!qR$~-|#3a`xiNAxal5o3$_pD)qUOJz{cuyO1<)8w=O22NJ=WE<8raXIqv@h zk3n$0L+Rnl5ZWBX&C_rpRB?;nX zR%y6|>3vS}BQh=qBcvy7(b%A3gYrrwMk68~Rt7ye6H?u^l@4N~M{gBWxoC!|JwACh zyslA`U}%s{`Zb2Z2EfLF)|LD#$$ImOR8(qbmU4srAm(I^%v$Z3A+ayc?*Scv|5_yN?@oVu>Y7GO z05vH@(YHPXDL~@-T5uJ%XsuHHj{BU`QkImKIW5aFP4je_E|+-}UZ-2(( z6zkXgyK!T5JsDQ4V(87@R)_cz4fHTnEA`P~2*7!07rSD4QEjfV)%`tFMCCB4OAJN@Y?{^oD7 z1`L^}?KpWcLD(F43mLzyIBGr5+~#q#Q*=lT>G{^?Ay?5_6zC0LeEzj1A@jD5a;HBX zZF;_mIe##IT62Jsfw+QZxSOkOq{L8vnP=ec4D_8Y%QVf?j8AD-I_5K&cb4H;o9h|rjD!nohNJbwJyJr z3`mQwKKe9{VLzz&s5ZW4kM^W?-ujbLFXlil6!7NG?g7eKC+%#Cxs;kSCYkfHB9WkzJTGZpa!NU6TVkM7OEywn{2hb;MrZw19ijxlas>K)gI}E zQ{*^NrmF+|?HyM!8kh48y{p49xZdt@sN${DHLV7;tOS<3Aub^n#bA>WscSbjrhi&vv^!S%?_8X?NvxEdGpw%qrQcFYU#|W* z4zK0w;_vk5Lj+(5o+c*n0L8fHt!9I79>~7lw((1xKc`wJ4 z+QwZ4IN~FECehhq3Mh_BP)t7?cy|`iN=@1j18%BV9EPF`z$FoDZ5`RpDT@(L8e_mI z-44j!xGYikj56U;H`W-+-fGYIUocB!7%A9u1m0sqdz@ywtwJtmn<4SWd28B0ue;zC z0E|iLWm(*h)eF~sEdvdGx5a&15N(Cg^C^##zSKVF&cM?B<|=6PA> zWxCAs1n8aTd6}oY%sAkoWE?F?OKQL#WncRNPnbm_0LjbH{nLN8hifM7O58=gB0|s& z*IN%;u6=^+BV{L_5i$l=OS#k#$Z2beE>RuOTn*Ms22Dj5xFEP<}saR^|5 zyNlrpaNs_#2=Ij(jDTGKZMtzFlG@&-Ya;YE{Wu1MbrsmQ$@Z;ar3Ccag~DB(t(u>I z`@n0drThm)$N%sq2yaY!%^@BT4M}_#Ui|Fc3X8tWvcN103&W)pKSB!_?AwdIemwG> z{;UWZux;Y?e%Jl&=^B80UUWGqqAnL#v=V3bs@kUYR^Qu8$B~`(59Lb5Ou(F@%VP zU;?e-F3^_K$*MSt$`xQLy{`I3v;O5-kfsf{No{1L(WW`TxK*&qD{xs&Ww5Dh?V5$m zV$kT-0}ga9=#uuzRi7*FE6p8E+^wGbxo8+?Z2;I0vvki6!2Q)peY%#ho&IFhte`s) zV|y;I=s5ts5(Hq^&Y_~u<5|R~W5@^2?_C&ruoSKm0YAA-CEh%#ox6TQ^4{B5>$R|e zvxr&iL7LeWfC7ED)LL@E758abW>{BE^K_Z#X}(~pc~0|^mnAPLr&Q8nXX{rfrZiIk zVse?!|yU)m~$>g3V8wT^C2Qd{^6yCau>cqV##c-UnMYdNt zT<5nZ*7deKur}7fv5gdAT9&mRk0`R}dK-^=<==0F%`L=w`S7Rq%mc!aL0uTYz0+k(N(>;+;CX!YuAd~ zD$X=!a<+)d>ZEZb=+-ny5i!|-#Jw6_CEGd|$j_ndEweBYjq^HiZxTHC{Yw~}tjp`Q zv2xt$k56ud#h!Uf5Hz|5VDVlJu4|6{^9oCQq6=jt*-Je5TEv)SvHpW$xLp}$3~cgb z=dGWPHkElT`;EMTsx@wr+73Oy06w`T$vn@O3x8PdU6!=Wd0AkGRdT5%+nqL54HVm@ z2O?BkAO<~UeVYD~_n7Y;yqK=Iz>LryoImHByFm zZMv2Y*qYG>QjiiAhvMgyQ(BgJnU~4-5zUv&a=9!Mpf}Z=a?Um5GS@1l^fSgPv{B{- zTw7vZ+L3?VC;H!huxMHt-G{+sXX6LF1ly^jQBP|p@}(2Mt~@ad4%1BM2CYTsswC!O zjxPHZI<5uuKeFx3$cuE_QCl<+4muN~z>rbHW++P;o6KZNJlot-v4V;>9HU5@!h+#=2^#DtrohaF~*g(s-U#mU-<0bA1(AYB)ya7|Oj>~!? z05b@{708Qce2R)+h@CbJcffrR=_b1U0txL8BxjX#*b`bgtuQ{CBmZ<_kl&!~26(E9({)>1pCab7djNR{bHZ_z*Y%9Mm3$%^p8GgAG4J%pBmgk`8yHA?akQot z0I#LMEf+OM$WZ^>L`dJy@!aGD-s;M(8dnfnV90}@?87bBHb7^AJRcoBQ^GHry0efz zmsodKQonn}Lv=jH#YCm#TynxSbv(`IG68xomw8$8vZS19p|YzMlS=LODM8TL0~V4+ z#8)l0)bFz4gfn@;T+Pmg6384CDdD+&G6zzpUGdR%tTpg793uQ|VM$F4BW1w^rRQf$ zt!p56m8G+WsKpy()u(O_Ywf-BX{F^f{HktQC7$6{NhmsBVfW;bn07}hX2MD-x#X1dk{0gYoi3N@awhIhmwB4fvf!Fttyycqar@X79H{&H7UBK} zJZVgHgB;AHf}2g%lwj9*X}efK)ugQpQ0$|0P-!thljEga3i(a6;mTx74y@E8a(~{X zXUVe6T=`q;hg~;nUzIkrS+0`Pcq2 zM(96wQizH-yf}$X2X?){`2&Y_fN)Yr&RJEDMvlQ8{umzjw1e>b6=(n6{TB!14NWDHKpqHY*t zgh#bB;O1YQt^wG6dC7j()GwTFii0z6y*-7Ku)^A-6!0eDVa_HAO3o>#Wm)EB#^KE8 z>3lh#&zJLQI-jS@WuB)r&pD-%vy`HxNa6OOAQGyC3fudt)lg8xAs%V=+<22ZVFzX~ z`G-H96f+cQ5w3nJK_HYH24D{=v4?Y=OkyJ>P24-JzZv0d3gppvPhB2c#CQ|yA68U* zArKQnyK$0hvd_y?kG|`m_HI^dB9={zx0%_{P1~|2Y(9Vk53fIj!E+FRqAmUgYzBtX z%VRg%U;7hH{T*=TRfsW!fq%nb7F*PpEe69~Yeb~o;?-^;nej3himFr|)P|wmxupPO zDi;A?z_*>K5>}94zJ`%73g=hNkU#t++yQd&xaX;ntU zd3{3t<+fcY)s98rkTw6jObxIs4twQWV`gpvTDd?2?%>rlIY@CA=y1UqPpUX$8i|4f zJ2ZA6U9k_}Jp-0MR(NX)bEDC%v`)7|WBX)v)ueSR{B7c*U~7)H;h0s=!*AHht!NP6 zV%CseUKXB3>|Jp!uoA4PsuFoo$Hd(jLR976UIR$C)FOKLv)fBUqqFv5GC@P6akVSB zjW7p}nDIZG-pbsXuiAXZs_KMZSZ1+m#OL-_ZL-^-oR!zOz{nc1xrnrAy;-{E_Q2>Z zC6|=ayzmN#lo9~gHDEW2c488n;_dWDp%nm=A-b3CBy+Dr8L`!>tQp0qXC~j232y8K zjd^h2E=&*~d2a=w4TMX{wN|Oc&VMB(40!fD6QgcT*R+s}WBj>OSCAPK`QPJT2%08mnL?O|-RUaOJf@lze zt?#YSxAlgspIGZ$6C2I89ps#I_FIHq_w`*#Rz%r6@AOBb4uHv1eIs0V@*6FL0LDAb zeZ?r%MK{0sV++%AYo8w7mG!P5yIHdgI&A zjVLIt1oF0Ml&U;`n+@PFS#qhl232_~Xu3 z+3pJ?0>8)%q0GZGAbJll(pt|t2rI7gKQ^)_VqtD^wur~G`fELx{kH)>50+qtVa{u; za-&|{Mbv7z13m>1San;)TlY2P*wB|v!=U)Ti>&o}sK79Y?sy^uoGh)X?LMr{k2Nlo z8_F>QC#RtwGbXD~E&#KFT1P?!38F)@(7UC!B{*H1F<&=bHx%1`f~$z{yRTRVcAG5h zK{9q;osjixgggBqDgNEx{xu&Je_A7~Y?$2b1?svnsFwxqVfD~a!`Jmk%pD^dTE=SQ zVinkbR$2koTE*s~`=Ye&p#%iV%)ZxbOV{_$FMyf`+!gHkqPalkbFCE{4)c2f)rPSg2xnJ)7*pwT9{#e1jjnIb25EB$vFK=XGn==OT15 z-#x2qPwor+w2gnmFqGo<&&sDm)T$Gallh?w$lTi0CAy47WR?;=R`z|Wodj1cwQJsP z4b1R@K8S=o=(eR3=S~B}45-3uFqJH~Q1hl;^SNna3icyiFFRK{U!>B!`zFFkQ$dXOl z^#b+=`7U^6%VK*HEF>WyIq@DNY_hzWHZg5R13Ud8Xfp-<0|2<64W>hTS}UuYHB>T) zYsCDA_OI(PJjRjMPkcR!dX-?hrBs;XgUcX5s)s{7q30#^GvutB)~0y-Vrg9^BzGvR zVn1=pbY9>j7kg8h=Xstk=ks(vUrwjX`7}?Lyv#LcDJ4h=QX}n|i)p$dXm@M+6$V!^ zBoZEjYT`gU#md2NgMvLhBTAS7dcci55agVZ?BMq*0l?m^Xvx*ismin2y1-7tyb;Xc zx%+B=Od6u_9n4C%0S~u7*^ETjM1s0y@8QIzJzJ(N%`0lrm6}V&+D^rg*7V&LOwDNS zR-f_mT4L7!R1`<&aGF^9iYMA(u2dD;C%Ppu@t4iXq>N&dAR$c4Mx^u1ktKeX6bHN=-{UwGX0u9)g0W9x3{ZZ*TD`*i@ zM?24J4%&R#yuzuru5CWxRC`uxLPXm@9^Op@X4qb{R(NJCJz+%{im+6vzIY=V+Hg|3 z4YBA#>QeE`B$Tbm9pOZRK_zP(O=QPuq?};oJWrR)<#fKBo(y`Yyd=q4q(T`AcFV8d z^~wz#aNFp=@~&&wO9M=HHJC+jJpJRHE5aN~L5> zDfMfp%G162%-$fYiq;a`lcdNPwMky_%{KDWGt}+i&|U_+9ppMNZ=lxzxHWQ{nGozJ zVh;KZ%xD%a+G3rG{v)(xWW?^;LdgWPYf$ltc@{^{^;Sz&`^}i{zT%ndhcz42&8KZM z7+X34gZs-Ha7lw3X90$}$y5Y%lLwBu0oLG`P29 zJcss#7;v(1&Y1E@Ipvgd%DH52^AnM1zz8JWHb6%#V<%o(G1=nECd4LPS7Wh^%LZ#W zYY1!~Y=(NH#<9gsbM4UASYm~~&I`<*n(WbvW7L%S_uWa>>MAhrwg|BK(JI^ZgU+pg zp)E@1h*URiMKTe`XLu27;Vl`Pd7XF+z7p)#(Ksgyb@*&s?(~PD_;>%|udRDx{wiqO zM#uwS*n2i|wQnhZ?%R)edP^LG%rDd8Bq&yuIPHv24O}~HZbS?&7+YFlYALxS%%D}q zMZRQrM5*9x(xFTC%Ovl^R_8|Q6A-l&oFX|*^L&}6>2iKLpU?C8JWo?fbIG=|2nSYl zW^G+u9ME@@l;Fj|qm9ct2xb$zH^Xf3fHi*0Qinwb z_tshlR8}FPn3)JX1E31+`GvcZm_g4QAMt<+XO(spvE>72jVf4<^Us?)1T`!-GG5y{ z^B+~TY~M6(hQkhy#!B$vZ~z8->bnKjABXHZ!q#fmRYcl63|ux0u;m94mm3q4I&#<&QoiFEeUglB~ZYZKKQVnK?!|JpDtJf%noIi`U zi9ZU#UP;0IR?HZ~J=+!*UoWg7e@&PZZ~cu)fLc7AkZPac(c$8nXi!UBQBfZPw7gjk z`?UC-1?=YCY*FYD}-D?OT+T67SEPn(~*G_Xy*w;x`y#G5Bye_(7G|Y3=lfBLc8jHsuZ9Hc+>A1WQ`C?LAS5 zP?W42(ma|U@&vyr{^???t99SaFpx6HCQ{93XWPJ~%v^H8X;~swDy}f(QN9*gFA-MK z;Y%V^x0MjMi<&F7mXb?e=6RYfm-G4QbTT97G*2a^T3{$`0Y!pTvu$IiXBrR>Mm>ZX z9(CAcPoBe`8$H+8#F%@0^%v0<469Etss-%gG$!bU4kBq!R)qFdyQuJLH|~iS<5tEk zN5G(#6(r|yTT1ECmu7~QIt&3AYH>#`738}+lhx8?Ci&p@73gV5t`u@aE_ShONhzfz zm0E{548s^>47L)?3b49e7aGh)Cc#&qRdY{X4Xis=fG#u2Mb@AZIM>j(hhYQ35O{uv zp^js=Wf1Q{xB!hxY9LRmFv7G8GP70)!O%AZ9B0WffUW>&0fxUI?j zG;&$G5`3Q|t4nW<9>@`&Z%-1D2kq=RyaaZMFQrWVeM=P0to{te5=~70NJP= zhFonrb6xe?1eSj_xHGZWDbFTZO-36ATPBTG5gM<%{5S8tfBSqzo*jSSzhoyot_tBn z#pN;KiL^mef30i0?V*=_?JAR=^X?|T{CG;AbMuNy5hBzL^afq=& zWQ)X-5HGhC)cJs&w`&K>jjF2R+6?9nF4nBRK#X>^Cn%ye9UX%LJVPMJGVV6uUJcp+ z+cqhKQt`wrZxjw0n4yNg0jFwmX*mRlPm^9=n=HGVe;TKCRbb6Tn>@Txv{4+^ZIEjh zIJf$iR=MUAug*VEg%5|r{r$b4%dv^@W-2@VBozO5OhFrw?fFLT**sdWf>ZzDN0JFB zTlWS3I@m)L8B0~;ZYZu^Aw!pITPs;Jhk4!$JnCh8T_ zj*#Rz^UlD_g_c&A^K_ZgywsA^=A46Q6x0ruej(6l*=ArW-pP#!L=<{1P5X~*dCM3c z@O>MbQrfvJw&(uShWu)TCPaI3m-b1-HgbUP{KJOu!JzgwdC^$F&fQj9nx9Jat5it& zAP|>OM#axMDwS(1f-T&Py{`f!d7~PwI=X}fZl-Y;nBsBZTBvyk4dXD3!vN&*xSW(o z%P#BR%$c?ZEH*385{G|d81%-z0XA*Xbk)$IXlH`ehq=KS&XA(;5JG4-F*!F2^J93A zxcM(K0reS$_v*Y>K@5Yfz&-J;g`iZc6&7&4e^%uBwWpgdPH^b~`0nn`uPp32tqn`*{iwRb6MtjzFbaczrSdn=DZ{+S!)SIU)Bru zas^C3f?*tfOlN@bGHg^8>;QvMYui17_#|ofQx}Sjh_8mQzDn0CL4s(VIvM1Rx$+RG zc0;lXS8(lO1;3`P^N%;);6|woaBtokYg=M`btz_mV7?k*!lolS^$=*R41n}-25D=A zvXVDf4x8W{q(fkO0Nx{&QY-t5p)VE=591IAp3evvUYElRmzalETFf>fyYL4-Feae% zF+MO4&E+{FA2>5O`UVGQRZKXm@`$SzCoR+ny8v}olzEBx!V+5=YXC-yV)@3X(wfoP z&|0M9Pm)?oHE(GDl`p4l@GELOrcACU5O zr9V^5t%WK@>pIAqf=wRcrTfb~^uooTy#?XqUYtWbYkk@`^TBK~Op8dF9t*G`eB3-B zAYUMrg^WzN1>ZVh1*PEbi(Co7P>8WejNpvR%kKqjxiR!@B=qU|Ko?OFT3MHh>E}{1 zOaySg%`lF*op&6DI7FLa=&PN z$)t&_+PL?B#be!*u97BO3C*h3)F9R-s_};ly)J{8Ck;haw$bhg*^qV zE@0&-tN`ctwd9Pelxr!q6s*uv zT?Xe{>}-&A0pS|F0?js~?vvCT^7CAA3*Zz(IYs!g}_esG?~dK{vv8iEAcdU^AUTD1{_ zq5VPwW;jvRfUA!^Qh^eotBSm05bgUboFJe0hPJTsUwLkgzH$EqStglLt7ZlJIR=9q zYf%Xvga6&>_axJRO?ImEyaBv|qrsdJ*%^JNbHu+ch5OZ6Z*V$s|LC?88fU@R&1TjX zo7QHDWnVpSLL?R(o6dW9N~tA_&*ph{Jaa_uT6x+!jJcQ=JVQQGbluG3r|CxqGeS;U zEipGuf_a@-R?XfjC9L?Kr}Jq#ozLg?m0z$Hq_$lvS8__FqzVnVWK2c_j4P+1y(?`p z!lI+Cs1p)>>x&fz0L;rT( zAR~G2Djb22mC{OXTUsr6a8WAk7RT1<-^Gq|2YT2x9zR>$uBete}(QZ35 zSU|146k0EKCE;`qzp4QqoMoC`W1srh7ibgE>GNaw@~CORif)62A@MG4Wa~EcNx){a ztQ@`n$f|DH(v8uK_q?OJKfaMO=ml|dX3Jw|COeId6X%{a6+2y>U#s}F#9+FVpbb~d z$w0B_<_D2a?sYO2f{;Q2x7o_*8TRr*{AgMwySkSJ#q7t(RYanTDTyZ&cMiHBlXi@~3_%-PYp6&20UC4y=p2ABtH4hm8X;Y{Cc zwod+>bFL|+luJq_;cSeY5_Do5GNZLt$bQOy%Tu4#ra}_RyfJLi2glMFTe%%Hb?#DX zE;Z+p6J}LI2*VKL5S7-m25BwbJ}X_N*cZy1Rh_ZZS_`T9$9gr{rK4`EZ(n4_WnQ?) z*h2g8&Qv{*&LNxmAupH*g0~`8?EqL*{a8`6cjnrBt+<7gHOt$uy}MernO!=x-mPp@ z0=Y}(fc)V*atx_tHCdSii-WpCam<~|;k63PL4c7l#=E<_hld9o&2df0W`D}Z*2gV+ z&Rg%!dVa>|mq)89=v9YVld}WcdqeENLIGgkZ?q1a%vmim_vDoiKXCK(yO^+s1{Sj` zxZIGLK4|X)r&U~5o?Hq}+9MX{ghj7fiznuNk?*V8KqhP5*#6(5O+|G1?3{lvwV^sj z#faB0a1^attCU)DnxXcdPUjQ$_@1ZBWtpd1a>0tPRU@@t6D@cOkXt5&;{3y;c&TBORgdSC*0giof5IO`V!@qf>yOHFU+jHwkqmcx?>}-A=`6J_R(Hj zc%Y3sP&(iS>aZxrUePT#F?T3teQmZ2zmQ)0ju^Ym&)nZo6P@^c@90+@)t?#rFv7o4ro^DjS z$gRd`F(7j$K72Y6X;+?Yb-7$l=kw`wdU`rPJzXy6Wu9|NwdQJyn3br_F2l{_jX8o> z*4e(MzR_EcvuxudMH(hbX%cOzdWdy>c5+3P%Y3WU{HguJm`rpbc;H+Q{vf_41~;vu zvf|XwB+E)y6mH-YcZ;M|me(EI(y|A`b^Ceqt*Y4~ zV&vcY(NM=Ub$$~cf0=sCOkaaj5d^#FmJs!s1 zJ-F63c%tG=! zw);8Vaz`xuVx1X7a73lvtJ)WN)&!?yJ`7~cHd09%%2-_r?vQ`0!$ft`J zb$miPw<^G?FQIiZ1eX?*J-SPquXQhofw7S68Of~OjBVg#a?SIjE`3zQLD=GA7;7_& z!Si#~KrhyTCE8+i3B&LB+0t*f-L_=zTF;3yGt08f^D<5IJk8TQPjg!4QVPI^^Y<-M zuMD$7x~e6$8tL-sbp$=VRvdI$Dy*+LBc4*lDTXSF`+J8W#2A9c7;PU{mlbBfDwQqI z`nAujfBLWogz-i}3HaXq*g64Uy7><;s0vJ_8m*>sd>GhJwvAKNOat8wT6C}a!`X6b zvq#ZYW=7PQ3MF@~byWjb0Nf5of&+Y`c367EK;CNW!g$3$C{!Cvv>GAc$;+J6Qc^Cd z9Vo4WYH@Z!2SOqiac6qddqaNlZl4%W#j26l-{<_g;7)3(tBBN+mSw(7m(%I=_;`By zcs`$|%O%fqNeQ)m` z!SgCY&rFMM?cs{VL$$Dd5}mw79vio{vfiMLdy5%SnWy&L#1_l6;y-Q+$vgrBo8_Pg zbHmuQO!KnLX<2a3y25Hkqc0hNKiFs}R9|)Y>#b?--Z&NgqT-b4Qn3uovs_EfIj2;i zY^iel3QVzL9OBpka4Ww3qxjcSL%vp(#yae((u3OTHb_r>6Re(@s48q48o0VQj$;VS zoT$cE!WAN*FEW$I6qqgP(rtdQv@D{qzv6n8*#a0lv@Dvl2*#wSx^T)j!N4_qH12U=5@~zloX1xD%6oRU1QQN?@=(oR z70ffUytR~+OG-JVnsdbpamu)dpq329fO9eAk&47Ewq~z|+?njLnsk5dXa2VCFaIc+ zPz#WqDpg7m+^BFqpHEMx$H&vt)8*+jPnWXHH78^x2oHf|4pnF!6$0&&DTadQx(cNR zbnMKQ9#N3%duoAu@eIqg+!RMNFf zE9VUYgKk|xOtn!(p=sDxMNG}aAFP06T!v6eE>M5xX-dZhEi@F z*BaCEEUPL4GT@0Ez=A7`7O@~r5UyO2!76ahwXj+w1gJ`J7-Jj`E4@|V?Pug~9i%4@()nb<_+wu!E2b_7oT?erfeKGFTcXu-(8zj3T&g`|hUl6B-h`J~J9oh^Gho@LcM*;l%*fKovJvrE1(>2z?eGADv5LbFmS*{~ z%*(u_d0Li~Qp!0&L7{CTroSx;=E;igxxFbl=*}Ws8HQf{SUPkY{3=hHtREeY}}q@hGeci?EyvOcYVb5JQaPFbv}en;otwwp!_`#|rLQmDW{O-uMbX_KCIV zzMNwk7dz94Mb0vLONm9)!c!-<+CVafvO<7$=51vY@!4s7V=9ajdaq#(l$etp*8;M>s2LQ`y%;=)<-Nc<45a6-Jn33 zZ}O-+`1hL`^G*ies;+brcU4s@u9x>Yx15t(pI(5(Y2hSb&Z(4KdCviN>?vxG253wg z{Z6ILJMse*V6`TA=EvgtGdq}TP?Xvb(C5?X^zrfZ_&A-o;#+f)QaqTlwpo3EB%5<< zWVvj$ZtY_g&&Sr%twA~lphs_%j%|n>o*pU;0lJ9suzBTE=SU9nr0`@`FD#X3-81Up z`xgdc*3Eg<7%ay6XYpIOt{YMET6AXZjG1Q~{73)>m7H-k^E^#JU;L(Nx?C>Pbjdjb z&xII4lu)6hrMxAG*vh9ph$?Fbl~YBUb_NqZDCXJrAeEA`0f#E_Hx9!vj^puo9Jma; ztr)KvcOw^BJ=>3UYehgM+NZUD{>Rd{P~K{{39!*|6qCXOQgB{?8+KHzlChjRA$P_% zmR~}Z2*&xfVBa2@c=BLiToKQDaO<~?m|jc%Rk zQ)>qN;bZ5)s(I4}?reX$SorK;@C0em2UKzxJBpJTo~jBDR-`#q|J66xwJmprmpGJC z3T`G}Yz1z?rjV4Dl+%)OE*UCIDkWF^Ety87CF7h0c0gQ=h$9qg6)CilhQup4gn`nJ z6M_6;C9YI#Ty~`-rMz&Oa=u)q)9HMAIzK&4=kqd6IVC9>r3+99dB}z_y~(qluG$A= z&FSA<40dns*?l!_g736lZY#e0+C&!xp+!WtT>o`<_a==IoKI}Yqlv~21D)1cXEgq7 zoMCY`Ki!)e)dPeZp+`Bq8A6=d~v}ojj+AFvYz~eXqgApNA zaQE5&1p&*wZvA2NeEsQ{fW9IUfAb&y#_agnXx+cn(VQrS*r>D?IKT15GVf45EL zk(v%>QCLozcjIc8rA^p@z08RbN{7ClDQo}{sQ6Vn>-|2UnqrI%vc$ifOI~uyJPjcM zjOS&Bf-+%xkUKTgT+)(L$_tN9$T`)VOU|{Vl8LE;vwb1mQX;x9^D-~XGAAlM7V~9V zrpc^f?RU9Mm&<%PPnYw2K3`6!>2jVgmo(3nhg;d^ee^d`9|d#n(Ft|gs=X)HY|jJM z0`}RT*>>pujCuXmk@#10_BOY%y2rVt&K;RxzCDj*2uA7TDYinj*QW6(b8bJHPFsrh zm2oh!E|sfF6!FX{46i`G?HB0FgC}!NOR|l>OEwF^Wm%?ax=hnN&ne|nY8-|b#~5RX zF@`9ZZVt_=4TXYi<=-_UFlR30F~9=^V?o+9^ID5w@)_o{G2q~&!{IQDBk%HKE3oqW zYUJCxL0K#28L#%qn`Z5q)yu*;d02X23;9=V4PeE#ht^nKJZ)024}wvgc8Rlm4CdDD zBDSx)0(}Jo9NKs-zMYHt@uHrf)S>_zO zrHa(T0jx-^${iR1_NQ3)G8M!PQ{pg;;|M2y#YCWSxOIrLMUl?zTEm)~{I0!Yt0lDnK{=w!o)*aZX@yYtt9w-YC z0YdgJ@V61JB3>}mOiPh5Y*T4ZjcHc-5>*x4=;ZG3YBIXdn7yt_+M-6~^X8@XC-TaQ zCH(D}kc`SNsndVG4C=S5T> z9v;5=SHJrD>#yIud-v+~>$|&qEXt1K5O8f#2myx5!_e>CRSY$7TnjRZW1q1zKBYM= z%d%hsJkRrVndZv`LukdZok8O;+~42d-`{`r^;fT7y*eBYxZuS5BnRnhy4B77d0n$s zk)4azGXC6(s{6E#+*)cIj>>AmB^PEFXZx>KLl88WePGYD15<36l$Lp(Q%Xxpn6;Rf zH03;%w4^*w^Rz7UoDzC_HJeI17nGTU-1M9i&B=h4eRd!8Yq;a+luaeG!PiH#D8^y| zpNPJAz^Pbo-@g5;zxu0x`)~j4zxg-+=GVXe^*7&qb9Z+aW5i`js1~2BhJNfibf1B~ z^R`~Frt1!V%{gBZ#sB?3tS)0%7x=n%{Gl7D`M9rhVPm^!>jN5j<-?C-0l3I`$r5Em zj6^MV__FkUD%^5}7FDN>GH%$FM8THvO1sV%VnA_P`lGSE%Tg~IRkw~ zLNh~KqpuYc|6m%b)h(OQs)qGpmC3fXszZqG)mxGkYt8T85TI4Ig<{JwirzCES`Pbo z@X(Bw*VNlHlia5#jc6=5GD3#%e=KQTm9~9rE-w*2SHbx$zS9SaX05pRKmY={q$MpA zbl;4FL~~9M_)E#lvOo#WrG^mWFoXeD^+vxp&p6meeH64^S*(3HPPGAp**}}OXa?(($9Uy~SqM z8Svl#tu}^W7P;dB`3kV1=G2JA?X*f)rSjAZ)-*5{Ic05xNMt`aw5Aqx z5_9oL_}7>ZAvYeHpXMUyc-?n|?EE+55(&K4tYy_$j2RQfqAxRzlq|z=W(~j#w*n%u zWU;q>t%VEFX-czXQ! z^!V{|dYUhnd79ERrDZA0lJinZt~uA7YAH2ktoSzcg>Yc)xwWj-E=y_u3Mv&}t(L5E zz3p3NcNK51UHdZe*1jGwEPpzd;McZ|)U#%-xqjvIiuz<$j$Ip@BY732UA(C!GkiRWULO!KR@maLfHiI}Jy z$1&iBKi1s~NyELv~PYWZz3C?}OV zcX1r@+;)F4Or&S4Xr@YO3+BMnn)-V1eA;t2v8*B*pg6-5Ts<2;4&!t&>wGo&+^2Po z!B`2lQeXsGee&7eJ$MhUo(B)uPcUq@Hf?h9<mKNYEOzV%rZF z%c%|9DzXT#F{njq(ORScl5>TA4D*@kGG8w9Wtz{I`Fvh3m*oPN%XGFC+{O4)$ zG%fR#mMJZBUa$%{=d?&EfrEgeQUiAMn)DR$t-aMH1G^QqbFz5dkxQYlC6R_@!O93nF^X$aITDRwAod)Gj5a<;ws#!8R;q!{8#dZ4?(AA*C8) zI35pocgJBEF$I0QIbNjJB&cvz-V8=&nb-uNTEE1Ck;1~1L%5P657|3Mw$cqyi ztF&%GKV71p0cO(Dw0Ef#9L7Ku7jrl0U1^N{vv=6lkj}q0rnX^~im3GGQrW+^xjQJD z?E0(MB{2ASJl@~m!yLLt-(GFS>jr}XuD!eQIjl&rqlC9XwB#+$FO^;Z;5C`NTYqEq zxTB4^tl3&P3+}AhII3fBt8JGK_OfDbcvI^=ZN=X=68AY^1m+I7vM3R$byG7av;1_W zt(>GqTtdq%uz8RgL_)2&SWdC*io-ohmRxEsHKnp(zB*NyVx?45t~u9~b4od-k{8H1 zY(9YzEN^Nmfc6@K3^9&F9AR=3V+@hIJ4K;fwWB6PC>=$EPjI#Bv&u9J5QOnI@rv+T zpm%%pma=Htf6c{GR7`ZQCqEg91}v@GT)2h3^HUy1jOy#fc4Z%!miHKW%GZR)X z4V+qiDI#gvbZV(1#s1gn?t=QGCwoWyJ(;0wF;#w2I*TbIPy~#L?6k1b}IL z)D?$tyt}(Q-i_k`4R{sn52e2GIv((bXb=A1DmcHk;Kr1ln+4(rzf;Yawi^%9Nt8I+ zrPRb;pH<8=w}SAq1hFwcuL<_yPK8l)i@777mO%nYISykm#Egc3Mg8WzuN?XzJGjnj zLo-Ccs5WSgOB!%SG|<X7H&jsMdSlchRLTs5x z{m-@gRp92}J%^mU^4MO`S&%57-Cfvz?(VNao6I!sR`qUgeMUt^t76*{1%hA)fXZrl z(SG)+Rw+eF#Z{n^DQV$?A3$1R;w7aD57?55PF6)~pdu?lB!(~!<6#_+;{mH}FnNeU zpa%<#UahVyAWIHSOq6nj9m`7I>dicKHA8nkb$xo(yW4YD?aYtYFMYZp6Dysc{2%yd z%tci z?~-!PwNNBgh^08hIA{pD)CCA^!b^jWhv9HIj)(DZIN*>f0+LiV9rRQqi*sS}nW93!*dJy9p58B$= zrHJ(mkCDyTViXMc6%Dzn$ri0)Bu)`TsDL#HV6W}*f}y1?47U{QX;c2HA{;M(&(Wp? zRx!>OsnyM51bO6O(<+HB-AIbOp#qf`JcFqGDkN81!L7_xt&X+sj!?WzWS$*{9i;s) z96h$4UAq!|Y4m9T_NIE4I)=LezM%f=RczPsx9C=R>%Fx>SL-UwOV>%19^Bmu0~WKS z5I_Ze10{Cv6xW_O#>qBX-uy7FL~tzympv%9B9u}~)hfhYWW$mzSYviOul}n_5RD;> z!*CeK!+01epj7ZHNONrzyC@ZhE2)?c=74_2BA@a&rFkE9!5Qo+K z`jv7`yUk}-;~u^Jn0WKYB=F1<@Lw;v{V++=qGma~F6^`Sc1}055YKV-hPY1H+OM{J zqTpRIDY2j^lv-=eu(L0i`OV7$^|z#4YvnO18YB)O4sjSY#455R9MzUnPNftHI*#M< z?sz!z?7$&5lPH&HJ`dr|)tblhjXPqCUxS#^vMeQ;5f-+zAwm(D%i0<+FR=5b?&}Zf zb`9~l)Q7St7=L>uAMjHj${%_{>FJJ-3~!|5y z6}|!nv!C;>+Lbj`xXll;hX7owl%hCr#m=FuSaTIs2{jOX1I$oED5WGEUY>Kxxrz+q zcz?XRJKh}*hjGBM37m%ZV~lWQRx60tzOeJCh*T-5WL$$dFKNcs_f&F5K?uNBpE1V6 zcsSgR0~2ks+q|&(!A|zo>*liv5!#E#%&3@%rQ;vO60%k@>CnaNp?eYqlc2M2`@f*? zHm$WW0v%NZ$3?N%n+9Ae4vod?e)01F2u2u)i?Ro(Ong9CQ}r4!_GP*H+c&5?_BLN% zJ^=sbZ~xk=n#5<566VN%-KCNBDd#~aut?v@J+00coxraGv_!+kFU@1;Qd7ZMR#C%c-f+q$MJX;;J`dfwb)f|;c zAh~X>46j$@)op(fh1$9Ho;Q_^t&{yIG+I(#J8Bc5oLcJ-%CKBpxvd(yEV4G}wKER$ zLU-9<1pf2?)io1z1U%te>qcF-vQ=NM`<7ZV7A&~cyyRSQ=wq?)8Z-=H93w9v8c=(7 zqh`U*)EL8fI35qjm)fN4}hTPgEG zl0twnJBCx7b5?B?Rl9#Jec$_ws~T`L2cQ=O4;Dg7DbRhVX%5LS?pdsM0w_$)>3&ViDC5{=) zI3M~J#77bAQV=zO;cTW=0+O$ z?}g=54C5HbF%IJ}jByxv>Wc=5znpU^xr)XR4#(s1?rt1M9t8t+2NnawVpeMq+={HI z2o$JRu|v2ZITs%N2BjRs!~pw)pehm+dsL3c!+02nakNPqV;*Y)R&U?5Mk1{1{tqlW=XWbqRmB0%ou|$-v(%NNqK1jK0ODFOEiDDA ztF44trJ&xJAwF68%#aGE=S&a*sTlNi;ki8;12pF+YGET}n(t49+Y)86pWFI#$6 zC>0f)v+ESOqSxk+y}7KftmFs(?Rydpo=r*i>frF1_>LLg5)<7z!)=wecZ1pm*z^s~ zj?^Ni_SnW>XtLy$%*8($DFHZ&#xM-S@$Ps$9>>FB7?7)g%JCF7 zO|zlrzTR*r&|JCOCu`5nPsf29P9TS99t(3xbgup%+Rp6SFLDSRbGW0LH36 zZ^5!k^JQRHg5d%Hp6A)4@;PS~Uc@J#K|278HN;D_kuac7hPp{E?fp;tMAo^Pnt%$1dCSg2AcwI-n za`FiA-goil-ZNrz^lzSrZTzbYSdM%5E(w&dXSz*Z;Z1LI$13EyJ)J48Lz81f^Toh5U!PLxlf~dwAhH=Dk!Q*%Ut2$5iv|*18J@@s8y7#p8(+W&Z zCj554_K88)adgjo^uc-ev7Jhx7NIJvVK4+UlRFI08xB)WbnzRP+6%E2-G~rn8D`gL ziz)rruGp9bBLLgxG!R3nQoU9cH%^6TRTxS66!ZpwH=B#FW()xK6-6591jBz3eAhc+#{_CpM~LB?UCZQ{j3SeE#gSut@A)a+@oz&`O^_gMXgXh`ZJp&YAeM=z}{`4-^JalIvRslU@Vu`Kg zNsEj5utZc`tziedV4n;v$C>5GmLBW@gV{LLxnlCTHK1!VxB z2gR}HcgMQ}rl5z&3DH#pkh)f~hVQ6zUlHA}$lbRQb<~HYM8JP!3ueZteYQYru5HD+ zEj+BnH)Y2|skCzSp%;f?{I?ckj+QVJve@j$k#wIHTeIP5S1S7~;%Dz*@fVB0z6RVI zWqDO>wg$ncuhjMcj1mEK-SRo51ohXqA;E*svN#6!(f+alxSOg4SFV}xMY{IYaqmV4 z?P)FE`bRRBYrrq$#Q4>j60UYFok%O23Gub~G%_pYrnOK$H8>V&3a$Yy*K}$vwPa|- zPOI33g`|zLQ3xU8P~UMJ#$kv<#AcFU_0Qgijs@2yN8rKUyxz1Qy()*k?UQGLUA_lq z^Jf3_(RYO0`@fqOH0J3%vi4o0w+7*Jt1N3u4~WSPe`#^Kga2Bo@Z9}cAclkqbaU}9 z(#tOY%ZQAA5CGHs#v!woVyt9uh%XR&hr<}hAq)|xaFkjSPQqH2loP_`T=If@Gn0x8 z!*D#_9glaTVX)fH&R)^!%BEFuDM$n0d7g0w2NV^K3)(iMs6pd69FNDt@o+dEhH;Do z4pzERlO1irudB|Ddl#mojk_`Kv!veK*7yc349oPpv@OLh2Ag)e5vSA2KO>>Q;F)#m zqxuegYpoTl4)$j9!s^3f_w24p-1PuJ>t=8*BAiX~B4X$sf?!k@?OvHaT)k3%orPkI zn4;_L-l6(qx6(Y%(=-8k{h=G!Ej};pQ`Wu)JdPtG^a6f)^cetr#nm@!oIsO0ZGQF=v^Kg94)M~>&?7W2~{jVwc6s0b&aOWR)<~x$Nw!E){chY zn0WDEOt@l_8!wpIGb_Mh7-Ae^u*qld2IyMdEZ?>Tjd48)d|GhzLp?(iDZSU$LD%Ur zQdF$F>)M_9xndjl$V~c|E?C1q+BH-7&_xv{+xU5Ot7yCUtS$m-wyP&ZXz}7_iQp^t z5!r5{o>7=4a&EzEJIJ4YEv*fMq3vrecGeV`hNrejtx`B>6Tv#fFb=~ojDyBOL#R?y zElXN1m&^HbK3y*JJm<8eB`@gb&8yEq<2s*|a8)sOE8AH`FoVVd@ZoU0yE_~Xej7yJ;@8~BPu5bbFk{4? zd3x?_)wquB%5@cLOW-qAT^sOk=~lLF+jH|{TqdGYJM&Mpe?R8NMn%AIw+l_k4Hfs2 zwv|y2=Dg$y!bSNEYaPq5R@kTq&Mddgn^dic%3ze;9P=ZX)aW!|wuKeHMYpm~8E7a9 z{S~{9=6SwcE|<#%(CY+X?g^WNQDkf=$1e6SUIR8YVk09+#z{Y#8s}`>u3T?rp?6s~ zgSOXO&4bQN+;s^Ffq5(GYwFm%TG~|{KIyAi?`Z@hnp%0KnN0{5Q=EOs+d_x{n=5wf zh5(6X6Nb@`G_brufM6=xyWnoE5$;#~3~ftg?*4^`LYnqse} zVpBMs58r?P{`>F0|MuJOzWe^ek8Ixa&QuvYES7doyl z?qZVJ_xPgTVElZ!Tu!Ic(-rlOr_%|q=kwX8sr^unFPO}BykmQ75K&a3x96&FxZf9P z6>I0VMT;9E%N;)52CXwSs;wB#UX~2J`d@TIivXh3 z)qJ*3d=h4Y`F9BG1j}{A9>6@bn0t@nywegueL;ZfVFR{bl03_NVCDhd22RLeJsz z)kp8dwk_i3_f_NsNbqtcA9O-!^R?4`@d%g&`nFddyHBmR5oK)*cErK}b)p-wGF^bA z8De=!8l3n)@VO!sUTpy1h416AKFgQRM<1c3VL|b&_k5eyUJM}{b)2?|t(ynfW_<&D z#4+UQDjugBqJ8!6idvl8FD3(5x$wuW0NK7vU&#bvj(LH;8iRyTYMqzmbUHnL{P_O+ z_uqf_J#hEqE2Ta=9$af_dVc%e>6fJk4pz;7+gJpaSTHHf*@*XLcH6`|z=m zZJx0&7(QtLB2jhgQC5W9A-b;It%v^giqPb%W(N;?JY5WZ>t7R;Sooo$c}**KB;)76 zupg}83YcZ%rR@y7*8q@^UC=@e9Sp}|zz#0Jp@^`CTW*Y8CRy`%o4|XQU{5?fMYz_x zMq^IFaTvh>n_+=z!x&`XkPQb>*M|F3vG57Z=@%dM2GVYA0C?_?t6Z1)OC!!WZCSXr zwhirl){@OlE_8oemVJ@f($AB3pzVjg%Wb~i$dPd-dTNskYw2(!5$9-|(lLEN1PeXe zF(($r9BgaB^{$2bF#l#VU|}x-sfY%}{M8UK?pzHt;mh*gm5JT#>PMp{Z%jPFvqx(3 z5bzkzm=ky>3IiNXV{5Yj3>=lklRNN;zN7?>~I_?%VIa|L(i@ z-@pI(@#E=qnl6`RS(YU)3y;k(byuX+w4`aC=VeYMS5(fXZmdmk9~Jn*mv6w^%nZG| z;KwIUK|>sws4-9sV*7aJ)TGxyLtG>wX(L~LjDQiit9wCby_Api}0F2@y|$|3&>fBD(a zw{e&&zQ$zc-Gm#{Qo#xu%oxb%F+vmV2_<9kJ?Ba_hBeXTgN0&Y(Hnagc(lcjf=&KjR!*=nVx+{lN;uWF}AuhMtwPQ3CARG7f6Qsr}Ze%}?T zg>rAt(DqB8Zub$bV_V(?l|ns9Me4H5r_<@fhxgyT|Ni}l4^OAZ>2mQcm0&0E8xCHB zC1XhmQ-j$KaAv)j)+^wMz~w=ECk}>ak9WN zZhFAFaEviVBuDsNO9GDx|M=7p>j0H&CFb9tfL@#?9wQZTHUq~tt$+xPvN-f&TF#3` zBTy0FapcRrKHKc`(%{ujY;Fmm7owJ1f$Ca8yr!_ zG!fLv9QW>0-uj`{c(=DmFsz_I`b0wbX#LlF^fNGHRUucc;91%@-i!uGwMr3YYvubo zw(iwF)s;aSvM)DN-MCzPaPpY1s4?^l!B^Cmv7x^Wex2=D=OKt_O3USPKAoPPPAAhX za;{ZGqOBtiF#`Ckv?{!Z8p;H?QKUPqjFr}%^Q#ER%#l%vz!n54R3DTIY!{ja?2O2G zZdNT_R?X+sy!lr{3H$ZW&69a_o?TJ%z5TKxM%LcJcD)x>!Dyp_5S&p1sv3PB*|6H# zvQ>}S9)sFaFfkZm8%*-A7q|bwFSHqj86TTdl|zJ}aiEzPGiK8jtX*sSz92;AZp6{n zFDTt=uLPe?CzuC*`0(NJ@zK^q+69G9C<-O3eS-Y_g=xS)f>fRnNS{R&I7r4>f4lBi z;MvW;eRs01cNMIOGo$XS`E4Qw>|pb6jt0gD;FD5Bc<2G&ID=y2yHaZ|h1dW3(l0W? zC@WJ%NzD8)#yHsG3p%%)uBQW zq(#!nkaZrtliH;4Rm$WTFvFGZYk~+b?MIhVH(jhK;Z>_Bj<=U`ph%4Wsc6xPV2 z@(5Kq{H0AR`y~Vdg1D?`#7=FZfgSw1I(oYPXaZJP(_4<{%F}#$j>Jy?SjBBQWGJhM zuA!Ybu7lFUE!qg^o<8aRoQEp{L#>8*KBTaAcF(K?8pps|RYXh9(>z@+m+3O4Wr5|f zs@gbB1q^B@L6^eIWzDF&)?Az2p9(k9hy*;ikVR9VlEJPx7sT@J?cjtlQ!s@I8M0=& zLc6|;u4A(FSALz}ol{sx#xa{;^N$F?0d(`IHV)4d5s%$z<+AQ>04Hjb^nxZNe0t?D zoQOFRs10mQ5^zLi9*C(eE$_=r4KE>t$Z2oD@pUF6?s73|8t|Gd#40$BUg=-SbVd%q zPft&ekB=Wde0X|#f(GnoPhOKJ3f;FqNBS27z_-!q2aq9L#e7X_=?LAm`X%2{R z{j+bnW)5Q@h$8n!2XSSi@~M-C<^f;&bQ~_hCB$7ywC)Q4S85fp8~wBk2!tu8qAv~uh^l*J&=MQ(&8bDrDtS!6nW{R~dp_W2Gf zl{tg?NhckcA%C-CHo7i_Q|G?bdN<^sUiNl_R-DS96d^qa_eD@ZArZyeiLzTIXw_Ou zhJh*eW{4YSiQ?8mziD;BsaPqcoJ!@XFF5qC@Kz-OK=uqn62XDL){^Wf{)79rpac_U zna5gK4)sJD^Yv<4=c~((b&s|RjcJXZ@TS0Ucv#{bTBvPr0 zzojZpFv4LQJb|N1+l5pa&Znrs-_gz-ABMn5r=aK(mL&)?FuqBW4!l&_b@8V2cERY^ zdW&~ON)!6%X#09qF&*9fQf(}9i*5;4argcsPq*mNOOU=hisq$MrOl1r{qCGa|55yfeL=kw)! zK3~q4X`1F`UUK3Rh?F9@){x>4au`+1v#c}#7+9Sg;Z)uf(a_iWBZ@*RiYihi3Y77c z^&430x{e!*DeGYCW#y^wqk=Xi1g?MA#GayJ$nEYwl2qDq2y>#MV)GTK%OKG<64;0Y zAW4-}12N4J)o>G9uHSGq#5mf?-$RT6rt?agDQ4v^&cFH%1ZjekOzR?JKjquPP0qq*?wGkHT(yuRcE9hPc{!yUxv!Rt0 zw4m#KKD7n97D+#9-pZqmg9TCi+4hZXPHsw6>GKaU0@g7ZC$f%;5=Nx@i2fE;0~0*( zWL{t@&kV#wU#+#~A_Yg|i`ueTt=*+%og7o)xdk!CFb=~w#6yh30Ha6^f%}21+jKRf zolryE4z!qY;;Tt_u`jKnTUEiQz4Ra19H#wlWS#%qn#~&@(*r_ve@(qiZBORV5#qb@ za!sqeY$JU!f@@ZLo?h~4?Ccq6waaH>Ky!10Yo7kCH1ifV7^NvOSVOH^a!Hv-Kq^~Q zq5Y<1!HnPObUsg)X`T}=>#eX0%r%$XDHDM^fC0pANF=HfU<+?OL;TuJZ&V!Cwyt<* zK#nCEU)62p@uiJN1PzTU+SYT&oSUD)1D|h%73tF6w26vnH=SkA8xJ>r*VN?@_-ge4 zth z?D{=5wMwaWZB1cOvG7)K&6qKYEh{^iE0{e7oUtEp3PE#dMr?!tH3KL zwN|i2Wj}0hh~t3WPn*LBPzfldW1fH8ti(MBs|dSU*1gt)``~>f{><7o!q<)C&y-%U zg1)84tf}(<74>ZGJ#XU?_1Dc8Z;4{B?=GK1kRQe^y?ZMRoGmxjkjM|ex#fv52;kGM zIHEg`Qm0x>gDa`RyT%Y+MYL+Dp({VFS7VGCLmUR~+V|7!xFplFm9u7DJWQ>vbSan5T zk-Jki8aY^AHFHnFxoese0=xqa2@*W@kK zsjvKEe@w8z!C=!p;g#;S0&qQQ`z*!vT3RA-Pr(g81cM=z5zxl*^eLANsHBUTRP7cAGpO zcv(f;dvebk7O{ZMb0;Nl3Fse3KQNl-y<>!e`f5%jjb@K0G|Ux_`L8yFVNbF+>%qIG95uVBkm7AWH^S*XmjOK7y2=DTGz3mBY@lY+cZb zqqK7BBl6wPSOLelLhS}}74C%Y)?>P$9EF0BH?;P6!@YC6O|57xBI7Z7U_9*s-N{?d z?Uj^B%${xV>;2YxJePm9yNezVI2sE(B?4xbIYuXF!>r2jmO1FivcbIIYq#xq9LMo6 z9B>8*u6IVLz6QL!_-m5#vw*XIK#)ELrwu%>(*APk1^_$sIA~qd?Fwq3wxt_Rq-XF~ zx*mSjADnJyqa#L5nY9utD^Im&2@%1;8hC?-+k_H%%?^HshJj#x6owJLmL@zfC`OoE z#bFpiA#MKw&kr=>4DnboIOr=Fkhq?Pu(- z)l}y>8~!myvgb3c*(Ke*Y%36stro98{=Q_nYgu4 z5J%iUNwpMM>06XcgGCTn?0L&}_iFj57PCy=iR{c80%(`@tx#48qOH|@gb$CKa9sr3 zI&{f(-PyMEsqa1A_WQ{OeopH4^l2X=+lH6VNc>aO2?0lo+}blHrt=TNVi&I@D8~;6E6l2rPKdm0m4Q zfeLRoR}9qCz|Ci!PyakXqqTD>0m3+-lFdk{>^Ad8GpdTX)gfRy+Gm;>yD<#a? zZ(G&9f9u%K4r(oM_Z2ZhcksD8%O9Jz3jfqvpihV?tW=fxh_ATr$Ts-m6RE|?#6;{A z1BeOoIqe;w`bOM!<9(VvT%;F`edoqUMAD9UVNsmzx?&DfBhG~`ir-3-X4!f*wC6i&j>Rg4eewn z60ERUnP@v}K<3H*_~eRXjK8Fqc*86QA`z{9i=PeOut+ot>xgmH}^V(LNFy!KBsb2+#HXLnxu)}Ttwj$qW zgk*gqvSQa6)o=q}VDDz~*++gGP}~sEw})XoyAZgheyVvBws*&~%l0iid@0lc@MjC! zjjvVJ+(1#Yu7EZSV7pG~Dx6`Zf9ksT>bD_9njQW+C=hG6graZ1N|ml3mF#e?k<8TxMR1RiC+p&jE?dRK}n_^VlI%r!9GnuuKCS9j)?vSC@<9oSe z!-Q>n_T)1dFZdy$8vPF$<5sxl%6xX7Htl&OE;psSrgfTCnsLt!dj5-1=L4Y8^4`9@ zScTVg%d@I_1BRfqiKW5{G3t7ZXcYzeLQRUp5aSq!aTt!ryZgKQySw8!43NP6DgW*8 zBQgWHQxrAL;?m%=An*n{tptjMPDagf=PcQx>*P%R3qX z%W)WZWNq{zT07nu!h)C|L*$4Hqb}uusT(-C%t2oIQsC8O+lqRZ4F$v#__SdOdN0KlU+jmh)P)Uc?MenFq{5^{Y>g+z5W^6|z%^iOz3X}* zFA!yK!Jst6HgM*=6+4ni74I*qCRn-}HD`FHEXAiLZLNiFP_-tu+PFciDa;C#ib~mh z#q$dNJtNOh%XjC}y)|M6@GKRFNYG}^SZGW7Y-}sKsvCz4I(Juld`^58x_e(Wq0LP~ zA&M}siMSez@mtl!5V2b{hEPkv8N44qe0ci!@#*ntnl3qIsTyL0?hCnZ${8b4M?>#0 zMy;!OR_Wh(c4eJ!tfk1~RmE-EoAtO3&JVsTS~!IkV4t}16{$E! zFbqUX3?T-MJRRD`Zzx_+Y$N8r3!XvXImch;1V=kJitHf;WaS zfi7`XbbKJF+o&DXjy`?djX+iY)s&>(;iJX*D1 zjfeQ^&GJ$Mb#arbphF$fg+KWX4 zn|U5gW|+6o&qaq2?Obq5jldmC4W_Z(7(WTVCg54!)&n{Ys7GAK-TrPt$K4Hxf)KM~ za33>#_AWQcJ#3rci=cjgDj3>c)*QSo`u3f)k$3$|#YxefOC$8CwpYkHSe5HIdvXcU zHMBPv9Ds%BdKHq#q>u0*t5Uhb+tzg(6BWDX$iBKeEv4~owIobDrl3^VI1EF?j8KfW zDic*id$57V^wo&xytoq8W>fVxh>4f+?N)^Ss;jNZh za%MI9G>$VkUTbMLX|@(;7NtX_wQEmxTVJhCJaAWRGIPh}9e;#8xiX zYQp-JjLql1jn?h8MqvBXee)Jz84R~r8x|WrhBl+oX0bvDJkZK<+2)al5F+Qu0LUgf zx*2B!b#od5kMjwk*=d;-0cWn=6w5|VFOzp$M_+)Yqi>JL{>kT!uP2t9NO|7H9T6cS zc|qoU8N{u7-eIiYt>{HfveC_&@|s?`+#;8}@O#tStrS|XsTHiV4$Pzf5SCF_V6ICY z!&{0Ue=R^*zVid;TD#{;PXy#rF|yMT6x@%VWOGbB@k-Us(oiuNR#$y-C^Qa_wVs3R zlG53O`uRzqUb5IT(P1TYwvAPLLFAv@3tc+!vsP{Hh-MpU7sE~Vc!56M{jR=M&*|EI zOPjjriM4f2CVjU~&v<{C+Rck%*;$)I)+)k-yM|#n91e%WVI0R00*sO|@QN`WkH_Qj zI1EEA<$OMU|NZyB{q1kR{oQY$K0fA@$6>g;yF1<;hZqHWf^)&C=4?nZaA_k-Z{kwL z<^X{&1j(%o_pg@sTlL?n9G-Pmb2r+9ar$)h+J_?~oY&uxdY^~u2B*uFdq+1sIP$A1 zk4Z5c?lIWr`3-{Y9jp5h`YQgjUyMpTCDIaJ`)4Ak-+5%~ys_P|VE#DHZw_$tsf(U0 z*DR?sfJs7954zXX`+N?Aoi?BR>&v0ONHSA5|9i8{*Inw$*Rz%N?1wdBRm~H+8qj`{ z91HNqXNwKb7}4W41Sq~0Cp$w30Ys~9J!+VYw?c>|FdK{1>MOx`WvW5h4{-J75aWPT zC!-lZWB%EJw<9yTa#zOK580ipG+*1S)-@{q`SwEkwcZ#<39WO_V=Be^V0pd)RJn-nB1KN&c#~GU?Axcky)kg zR@Sy;dXN|m1{*K~J>A1$e>e=|Xes&hcFuVihuwbM?Z;uvR_k;=ACJ$+<8eNpb4pi- ztDBpftE;PV9Fwk{QBAc4|K#$5MGZti@C}rXW=<*N7-$$&P0+dp z9peX=foM6v0%FpOsbQwtJlizyg1zIH_@PNQUSe1HlHFaK-X-w^IA2BSjuF?sFQoR5 z3s~o75XhHy=LNx9hYDos$Y)Ez+KhbxssXo45VOQrt5epc>BY?mjX-dW0sST;jxJNr zRjNehgcBzVOR9uBRJ8@Lt(h3cG4Go74Z}h0eD=UzatVUHlyS`HKtpI4n~|ZBQd)B` z3%&u=#!E-hi7?N#l)2!#ofVLk+LznGlzgqvGWSYdn7&@RkR7cqn4xy{Avb2A&zGJK zDw%5GyZ|v2KENEyFaj78DtfPN0|m{Sf9L@p4u|XO>+9?5{b3IqT*I-`!;p7aj^WEk?$>^!V65|mT+PPvp$5Yzyh)^u%&JwWtbuYz7ya)6lW z!s}%{5NZ1jfFJ4bC9o!0&}TEm# zNBoHeqca>9WeG|o4@nCbbIQXw4m-@%P~cqsChD-3K-Ks%+V%3M0%-~*YLC!`dJ}6> zwJKz?T78lm!=pG931Qje$HjK@%-eZl6F3k}dV9qr+dyUTMap^uHlqjL5H<=Fb-O>b zLhF>=GDY6%*>M@CZn!Oh8MnFv;ea@jN8jbJ-(Ou_-Q3>Z-rikbUyu7;8ir(smZGIJ zj>CS$OffgC?DzYdo143Lcel4Um?W-dsI6+eGt;z~kYhM_Sd*+0@CZt>wlp**vc4+E zR{{{jQ_aww1r}x!k7cDT%&=8%a$hFCK+bJ-bX-H1P<)js?_5^E;pmh&a=`8^O=2VC zkV5B`hFA2>Dd(IFBgk~)h6x1W=yqt+V}v`TkCC>NB9anzyi?4hDUI8CFB#qF?l=4P zlF_*35{Z^hzb9A?K}U$+zRF>tSfMlMwNApw>w(I@DZLxw(wxcpN#;{%0rOT0m||Mr zS}L|-fxo1Q_%~$cC8Tmtah%5}U6}gK!@yfThcORWc%_9IDe+z!ssfCvu~(52*GG5D zvMBWNJE2gXhQ}738$gOQW9db6ddlX28W1e>eCK(Z=Xt_Qw*azJ;(=1kVSy1;In{da z6=1V0teObPP$dfhA}DP1RM~nQRdBz5gQW?96hIt>RKREpSi5XMv>YLVl0^@Ax8Gl1 zU*Fu^ynlap_x}Cu&F$6I)wtV9xm(V|xZ91p9VQWX<9OKbZ*Okz?%v(r-0t`LoU^M~ zFG7_P<*&;^C^6nq1!UB|QZzFXIB!*7tYC)eRRF@rD4ltw4KCso{wnkKIQIvVhBW)p zy$%7yCLS#v$BKC}U%rM&ivlYd_DD&hCh_PEt2?V6FpRQ}Ng+uY1*@DpK(yw}uCN>8 zep`{rpl?)-Sb-wGHN5Q1;=!CrqT?duGN0F=so5Tu;l3@%VleU+2~jO5Oh_!$O;b}0 z!(T;N1c1L*YGY}(e4C6Jblp0#>qxU|?K(i^4WwC#)GmnF_|P>@P)e0ug3z(E za6`FO4pyg9t<;3~T3yHE#zE}B8^^pG$8nUfbi#$O{Khmd1T+GIY&f$7)JIBmNhPSB zuyaFCtpWpm52p`tX)F#X<|8bqJ^hm(fm1eMOJ8_kN6)Ie zZi;J#y8`z>_6daX5<8??Q!OblKob4p!?T@M z_08Sg-G>h!-hcS;?%lhq>uZcT`(hhk?K%wO;p*z<=H~Y1=H}{ZzuOHN+mDKpuf}DF z6^&0!`_65#zlk~9pd~8}1K{`szoBls8de=kkXs?cW(OB(s36AZh)Nb(@Ijwbgibox z*N=~uOxKhOR1KC}_Zu;Yp$A4%>W;Je{9*XUMgfiXhh14I0T@i!%rswyuZM}B-xy>t z4JK|{N#hHj8fA!_TX4gt?+h@u6<3d$wcP{Yg=T~(gU%q}d#2~GrHjps2h#I5$^Zlb zgR>=7svg&&3_^$SgZq8Ke`T(+n7~+rwOR)jw*OL zpQqFF>FMe8^fWy^&&TI-KG$isd4}~Zg$rt})Kp-Ns_Do<*O*cMnb+c5(1#3sLZ1Y3 zH1Ec!{+O9{O-WX9#T083cu))<71hlLrdRC=TG>=_zE`|rN{^y%Zr54U&ku5NDjhr@2aA9v%h8^`@_x8Lor z4mYI+;ik5i!~ zpg|e1zR-&e9IC?6vUQaO^5$xpbmnJAm9m3{pZvR8lI=CJBf^lSwX!AxpW& zxw`zj7BE#CiWzv4cwv+tZxU|JV&em2T|DV7WoyU7yV9i5_3ckE%zBdLWJC8^RWn?d zmc2BoVj3M=F_a?3V!fXE1&9Y_#6C29-RouW)S57^>oP^9)U{ZqA=86n=|-hNi`3L&P?RzVJTT7`L$pUM<&?Sa2wOP0?}$T1DS1~n@gN~5LA1P}4=Br$1hZoas#~N9GS93`}@=5^Za})=X05+I?r_$xoSyh z1(a$9rdL(58iWRHIxayp@NZ}hr$+N`+7wmHlF2I?SJ+)BRj+@%cWTzKYAKk6@HAes zs2#$4V&#dg6Yk^n$|fUlp?l+cH+PnE9>?+O>gw*@?Z@{YzWem)4}bXn`|rR1^y$<4 z4h5jm4GLg!P?kDaESg zgd21?yonV(DXXIfw6UX|SOQc1_oC~ab%4+2+*Ouy3m)HX7pr&!Tta$RX&sl6=-InK z_W*a2eH|veH!(6Zvur5~cNUPLQLE^{$_B%sF@PmQdw|03&TO~%X<0n4imEg0M$Dnv zL*_BV)@Z#GHP0lgC%`j066CzuU1yL@fUna7;J)#0)`ewV1m3K=MaV^%b-w@55O*K; z#SXuKRk@p|-q?cQ0%@NR*k56Vy4+sKOt1=KW-!CO53Q?7YL)7&gJlGb?O9Z&OlD$`s_F?4_n zY#1$2L}^)=2A6#tfWEpf+tk^Fl`0V{G-uLBdslr>euZCn(sOpBrQnLFG%%5ej(zs1Wi4ou&5tpU+n+K#1MF?Oj6y1EQyY zBaf?BS974Zd4dwTzJA<9xMgG=r&V^nn)laU*I_?eOLZ#w;@w{jWbHz^eNMdGb8KBq zhEgaW4TV-1`ey|%0nqdo=dU(G3?UBPnOq??!}^9S*deklaPgrW*#QB3`6hR9wuQ{( zL1zS=kz#t1MTKa1t((b7f6edvb6BOBQDv*D{wehFgc3_vi;vqmK!!vz3&Zf%2g_&k zB{K5h>-p;=P?LiaqtNGyEW;?Cj&iVZ9&(3*ou1m6g`J@^Y`lYMMUL$ND@se#JC;U3 zuju<7Fei{A^KwhoiA{!-AXUvTS6ZMrUINwu`CLz;##K(ZbePuzR1S}RPd8vA6Ih0WeV(}oUYSrfhX zeD`{H{@_PvnOjboe(>^xG``h%Z$3EuuWBpAlaJiC3jO*%jJRH912`Kz3HKD9S*1!2 zoSlg|Mdp_!tPslyb$7aZgedRbD@1j9sbb1xq|X$OtH~bAH3(-%Ys_xXR_#vc33`P3 zgPLy%Dx;7szyH&Kdh1oqRnKJ2#&bw&v)$ezNB8U<)wYB8+ak|^yDnG((E!! zK)MFIQSlIpc%3~{yXNei9HdBSGK^pco9cVYLu%*PlZn1pJ+cf} zOwlL(336K~NLcu$lvqGQd~-uWa$Rsuk^qtwJ-YMbO}~#T)6P}%I1+PZe&fDolFN2= z?G=y38N%@2I?}VFgDd{78iwQxZ(7@U2m+{y*eRKWR^<5FQHLbI7WSLab9A0HZG_@S zm=JnKjvSo4y4`{)(YSGB5Hf~t2k zX0g(azIp|lcPLgd>z=tfB|$!IZ+?EXV#)YXTwXI#*6lpH2-vTPro$p}7g5sCC+usU z<>i$`oFV-xF-6A!O)zyKZ*lYKLrqjo=|kzs7ZsW*rmBvblJ&S6bJ(xwbLx?OuL^_> zid-1eJ*!mZM~i$Mn$N${8cFf&=UF7YrLM!4&55y+Fx2vRaY>{(b+b#>^CuA6iCyab zfw$r|&{{jn4uEetqzU}O&t!_VL?@1m znMCIk=>&8`$swuInboc8xxXFy zV$@7?$TjQJG^rJXn?dyk>%oEZd~eY`@fIwY;m=y#0f|fb`hpG>JzHBl4mj$30M@lb z32O*zDl5NWjUry4B=7?Gh&8B?-7ja5kVpI|p_|VpW*_7_^3)P$@gl4u5Mn`^-s$&v zqB6W9YUmXg64zjd%~1_2J*C<+0g(Zu1tY14ur555o^3xVrlg6obi z!5;_@hM7B${5}kXK3Aq1{*wRCYg|q!>4fvS6`k@#cX95&YNh zgUGF3w3L_u(gqmp34VAn$^C zzCDvWlX>=xH`6J|uwj1U==GJG=q~r<{=a{2bdVFry=3(b{zf1CyRKU}f^IIY)Uvd5zW_nO!2YlI*L&u~Z_gF?w5M+Vu3pdAPdisvp9sEz$d{FyGGmNcqcw*e z9E!+Hh5=;I|IoV)Gto~R)cT;s@(_6Vc=J6t3mBXMa6uI`OJ6vm|&|U^EnFR;IH=NYO6O3u=*Ugpgh$ zsvu7bH#0LfrP&Y1ypTiqbpL6#jc%CMGYO9A{wxD6iFf_IzHxL#mAq@#iBJBeH`9vx zyqbWkSmRvF&|3x%mbPb|Ir7;)$E%((6{Zi~±SaL&V-LiFP7RTpv&Sw`p&eO-<| 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

    xcDd^`94C`YO#r2g$+C00lp(# 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 literal 0 HcmV?d00001 diff --git a/third_party/volk/.github/workflows/build.yml b/third_party/volk/.github/workflows/build.yml deleted file mode 100644 index 45dbc78..0000000 --- a/third_party/volk/.github/workflows/build.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: build - -on: [push, pull_request] - -jobs: - build: - strategy: - matrix: - os: [ubuntu, macos, windows] - name: ${{matrix.os}} - runs-on: ${{matrix.os}}-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/checkout@v4 - with: - repository: KhronosGroup/Vulkan-Headers - ref: main - path: Vulkan-Headers - fetch-depth: 0 - fetch-tags: true - - name: move sdk - shell: bash - run: | - mv Vulkan-Headers ~/Vulkan-Headers - - name: build main - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout main - test/run_tests.sh - - name: build 1.1.101 - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout sdk-1.1.101 - test/run_tests.sh - - name: build 1.2.131 - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout sdk-1.2.131 - test/run_tests.sh - - name: build 1.2.182 - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout sdk-1.2.182 - test/run_tests.sh - - name: build 1.3.204 - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout sdk-1.3.204 - test/run_tests.sh - - name: build 1.3.239 - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout sdk-1.3.239 - test/run_tests.sh - - name: build 1.3.268 - shell: bash - run: | - export VULKAN_SDK=~/Vulkan-Headers - git -C ~/Vulkan-Headers checkout vulkan-sdk-1.3.268 - test/run_tests.sh diff --git a/third_party/volk/.github/workflows/update.yml b/third_party/volk/.github/workflows/update.yml deleted file mode 100644 index 1db7d45..0000000 --- a/third_party/volk/.github/workflows/update.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: update - -on: - schedule: - - cron: '0 16 * * *' - workflow_dispatch: - -jobs: - update: - if: github.repository == 'zeux/volk' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} - - name: update - run: | - python3 generate.py >version.txt - echo "VOLK_VERSION=`cat version.txt`" >> $GITHUB_ENV - rm version.txt - - name: create pr - uses: peter-evans/create-pull-request@v6 - with: - branch: update/${{env.VOLK_VERSION}} - delete-branch: true - commit-message: Update to 1.3.${{env.VOLK_VERSION}} - title: Update to 1.3.${{env.VOLK_VERSION}} - author: GitHub - - name: enable pr automerge - run: gh pr merge --merge --auto ${{env.PULL_REQUEST_NUMBER}} - env: - GH_TOKEN: ${{ github.token }} - continue-on-error: true diff --git a/third_party/volk/.gitignore b/third_party/volk/.gitignore deleted file mode 100644 index 0ff047c..0000000 --- a/third_party/volk/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -build/ -CMakeLists.txt.user diff --git a/third_party/volk/CMakeLists.txt b/third_party/volk/CMakeLists.txt deleted file mode 100644 index a7aa9a0..0000000 --- a/third_party/volk/CMakeLists.txt +++ /dev/null @@ -1,137 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -cmake_policy(PUSH) -cmake_policy(SET CMP0048 NEW) # project(... VERSION ...) support - -project(volk VERSION -# VOLK_GENERATE_VERSION -280 -# VOLK_GENERATE_VERSION - LANGUAGES C -) - -# CMake 3.12 changes the default behaviour of option() to leave local variables -# unchanged if they exist (which we want), but we must work with older CMake versions. -if(NOT DEFINED VOLK_STATIC_DEFINES) - option(VOLK_STATIC_DEFINES "Additional defines for building the volk static library, e.g. Vulkan platform defines" "") -endif() -if(NOT DEFINED VOLK_PULL_IN_VULKAN) - option(VOLK_PULL_IN_VULKAN "Vulkan as a transitive dependency" ON) -endif() -if(NOT DEFINED VOLK_INSTALL) - option(VOLK_INSTALL "Create installation targets" OFF) -endif() -if(NOT DEFINED VOLK_HEADERS_ONLY) - option(VOLK_HEADERS_ONLY "Add interface library only" OFF) -endif() -if(NOT DEFINED VULKAN_HEADERS_INSTALL_DIR) - option(VULKAN_HEADERS_INSTALL_DIR "Where to get the Vulkan headers" "") -endif() - -# ----------------------------------------------------- -# Static library - -if(NOT VOLK_HEADERS_ONLY OR VOLK_INSTALL) - add_library(volk STATIC volk.h volk.c) - add_library(volk::volk ALIAS volk) - target_include_directories(volk PUBLIC - $ - $ - ) - if(VOLK_STATIC_DEFINES) - target_compile_definitions(volk PUBLIC ${VOLK_STATIC_DEFINES}) - endif() - if (NOT WIN32) - target_link_libraries(volk PUBLIC ${CMAKE_DL_LIBS}) - endif() -endif() - -# ----------------------------------------------------- -# Interface library - -add_library(volk_headers INTERFACE) -add_library(volk::volk_headers ALIAS volk_headers) -target_include_directories(volk_headers INTERFACE - $ - $ -) -if (NOT WIN32) - target_link_libraries(volk_headers INTERFACE ${CMAKE_DL_LIBS}) -endif() - -# ----------------------------------------------------- -# Vulkan transitive dependency - -if(VOLK_PULL_IN_VULKAN) - # If CMake has the FindVulkan module and it works, use it. - find_package(Vulkan QUIET) - - # Try an explicit CMake variable first, then any Vulkan paths - # discovered by FindVulkan.cmake, then the $VULKAN_SDK environment - # variable if nothing else works. - if(VULKAN_HEADERS_INSTALL_DIR) - message("volk: using VULKAN_HEADERS_INSTALL_DIR option") - set(VOLK_INCLUDES "${VULKAN_HEADERS_INSTALL_DIR}/include") - elseif(Vulkan_INCLUDE_DIRS) - message("volk: using Vulkan_INCLUDE_DIRS from FindVulkan module") - set(VOLK_INCLUDES "${Vulkan_INCLUDE_DIRS}") - elseif(DEFINED ENV{VULKAN_SDK}) - message("volk: using VULKAN_SDK environment variable") - set(VOLK_INCLUDES "$ENV{VULKAN_SDK}/include") - endif() - - if(VOLK_INCLUDES) - if(TARGET volk) - target_include_directories(volk PUBLIC "${VOLK_INCLUDES}") - endif() - target_include_directories(volk_headers INTERFACE "${VOLK_INCLUDES}") - endif() -endif() - -# ----------------------------------------------------- -# Installation - -if(VOLK_INSTALL) - - include(GNUInstallDirs) - set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/volk) - - # Install files - install(FILES volk.h volk.c DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - - # Install library target and add it and any dependencies to export set. - install(TARGETS volk volk_headers - EXPORT volk-targets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ) - - # Actually write exported config w/ imported targets - install(EXPORT volk-targets - FILE volkTargets.cmake - NAMESPACE volk:: - DESTINATION ${INSTALL_CONFIGDIR} - ) - - # Create a ConfigVersion.cmake file: - include(CMakePackageConfigHelpers) - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/volkConfigVersion.cmake - COMPATIBILITY AnyNewerVersion - ) - - # Configure config file - configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/volkConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/volkConfig.cmake - INSTALL_DESTINATION ${INSTALL_CONFIGDIR} - ) - - # Install the fully generated config and configVersion files - install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/volkConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/volkConfigVersion.cmake - DESTINATION ${INSTALL_CONFIGDIR} - ) - -endif() -cmake_policy(POP) diff --git a/third_party/volk/LICENSE.md b/third_party/volk/LICENSE.md deleted file mode 100644 index 5a717f2..0000000 --- a/third_party/volk/LICENSE.md +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-2024 Arseny Kapoulkine - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/third_party/volk/README.md b/third_party/volk/README.md deleted file mode 100644 index 30faaf9..0000000 --- a/third_party/volk/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# 🐺 volk [![Build Status](https://github.com/zeux/volk/workflows/build/badge.svg)](https://github.com/zeux/volk/actions) - -## Purpose - -volk is a meta-loader for Vulkan. It allows you to dynamically load entrypoints required to use Vulkan -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 -Vulkan entrypoints directly from the driver which can increase performance by skipping loader dispatch overhead. - -volk is written in C89 and supports Windows, Linux, Android and macOS (via MoltenVK). - -## Building - -There are multiple ways to use volk in your project: - -1. You can just 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`. -2. You can use provided CMake files, with the usage detailed below. -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. - -## Basic usage - -To use volk, you have to include `volk.h` instead of `vulkan/vulkan.h`; this is necessary to use function definitions from volk. - -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. - -To initialize volk, call this function first: - -```c++ -VkResult volkInitialize(); -``` - -This will attempt to load Vulkan loader from the system; if this function returns `VK_SUCCESS` you can proceed to create Vulkan instance. -If this function fails, this means Vulkan loader isn't installed on your system. - -After creating the Vulkan instance using Vulkan API, call this function: - -```c++ -void volkLoadInstance(VkInstance instance); -``` - -This function will load all required Vulkan entrypoints, including all extensions; you can use Vulkan from here on as usual. - -## Optimizing device calls - -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. -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. - -To avoid this, you have two options: - -1. For applications that use just one VkDevice object, load device-related Vulkan entrypoints directly from the driver with this function: - -```c++ -void volkLoadDevice(VkDevice device); -``` - -2. For applications that use multiple VkDevice objects, load device-related Vulkan entrypoints into a table: - -```c++ -void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device); -``` - -The second option requires you to change the application code to store one `VolkDeviceTable` per `VkDevice` and call functions from this table instead. - -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. - -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`. - -## CMake support - -If your project uses CMake, volk provides you with targets corresponding to the different use cases: - -1. Target `volk` is a static library. Any platform defines can be passed to the compiler by setting `VOLK_STATIC_DEFINES`. Example: -```cmake -if (WIN32) - set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_WIN32_KHR) -elseif() - ... -endif() -add_subdirectory(volk) -target_link_library(my_application PRIVATE volk) -``` -2. Target `volk_headers` is an interface target for the header-only style. Example: -```cmake -add_subdirectory(volk) -target_link_library(my_application PRIVATE volk_headers) -``` -and in the code: -```c -/* ...any logic setting VK_USE_PLATFORM_WIN32_KHR and friends... */ -#define VOLK_IMPLEMENTATION -#include "volk.h" -``` - -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. - -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`. - -## License - -This library is available to anybody free of charge, under the terms of MIT License (see LICENSE.md). diff --git a/third_party/volk/cmake/volkConfig.cmake.in b/third_party/volk/cmake/volkConfig.cmake.in deleted file mode 100644 index 6e45c37..0000000 --- a/third_party/volk/cmake/volkConfig.cmake.in +++ /dev/null @@ -1,21 +0,0 @@ -get_filename_component(volk_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - -if(NOT TARGET volk::volk) - include("${volk_CMAKE_DIR}/volkTargets.cmake") -endif() - -# Mirror the default behaviour of the respective option. -if(NOT DEFINED VOLK_PULL_IN_VULKAN) - set(VOLK_PULL_IN_VULKAN ON) -endif() - -if(VOLK_PULL_IN_VULKAN) - find_package(Vulkan QUIET) - if(TARGET Vulkan::Vulkan) - add_dependencies(volk::volk Vulkan::Vulkan) - add_dependencies(volk::volk_headers Vulkan::Vulkan) - elseif(DEFINED ENV{VULKAN_SDK}) - target_include_directories(volk::volk INTERFACE "$ENV{VULKAN_SDK}/include") - target_include_directories(volk::volk_headers INTERFACE "$ENV{VULKAN_SDK}/include") - endif() -endif() diff --git a/third_party/volk/generate.py b/third_party/volk/generate.py deleted file mode 100644 index acff128..0000000 --- a/third_party/volk/generate.py +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/python3 -# This file is part of volk library; see volk.h for version/license details - -from collections import OrderedDict -import re -import sys -import urllib -import xml.etree.ElementTree as etree -import urllib.request - -cmdversions = { - "vkCmdSetDiscardRectangleEnableEXT": 2, - "vkCmdSetDiscardRectangleModeEXT": 2, - "vkCmdSetExclusiveScissorEnableNV": 2 -} - -def parse_xml(path): - file = urllib.request.urlopen(path) if path.startswith("http") else open(path, 'r') - with file: - tree = etree.parse(file) - return tree - -def patch_file(path, blocks): - result = [] - block = None - - with open(path, 'r') as file: - for line in file.readlines(): - if block: - if line == block: - result.append(line) - block = None - else: - result.append(line) - # C comment marker - if line.strip().startswith('/* VOLK_GENERATE_'): - block = line - result.append(blocks[line.strip()[17:-3]]) - # Shell/CMake comment marker - elif line.strip().startswith('# VOLK_GENERATE_'): - block = line - result.append(blocks[line.strip()[16:]]) - - with open(path, 'w', newline='\n') as file: - for line in result: - file.write(line) - -def is_descendant_type(types, name, base): - if name == base: - return True - type = types.get(name) - if not type: - return False - parents = type.get('parent') - if not parents: - return False - return any([is_descendant_type(types, parent, base) for parent in parents.split(',')]) - -def defined(key): - return 'defined(' + key + ')' - -def cdepends(key): - return re.sub(r'[a-zA-Z0-9_]+', lambda m: defined(m.group(0)), key).replace(',', ' || ').replace('+', ' && ') - -if __name__ == "__main__": - specpath = "https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/main/xml/vk.xml" - - if len(sys.argv) > 1: - specpath = sys.argv[1] - - spec = parse_xml(specpath) - - block_keys = ('DEVICE_TABLE', 'PROTOTYPES_H', 'PROTOTYPES_C', 'LOAD_LOADER', 'LOAD_INSTANCE', 'LOAD_DEVICE', 'LOAD_DEVICE_TABLE') - - blocks = {} - - version = spec.find('types/type[name="VK_HEADER_VERSION"]') - blocks['VERSION'] = version.find('name').tail.strip() + '\n' - blocks['VERSION_DEFINE'] = '#define VOLK_HEADER_VERSION ' + version.find('name').tail.strip() + '\n' - - command_groups = OrderedDict() - instance_commands = set() - - for feature in spec.findall('feature'): - api = feature.get('api') - if 'vulkan' not in api.split(','): - continue - key = defined(feature.get('name')) - cmdrefs = feature.findall('require/command') - command_groups[key] = [cmdref.get('name') for cmdref in cmdrefs] - - for ext in sorted(spec.findall('extensions/extension'), key=lambda ext: ext.get('name')): - supported = ext.get('supported') - if 'vulkan' not in supported.split(','): - continue - name = ext.get('name') - type = ext.get('type') - for req in ext.findall('require'): - key = defined(name) - if req.get('feature'): # old-style XML depends specification - for i in req.get('feature').split(','): - key += ' && ' + defined(i) - if req.get('extension'): # old-style XML depends specification - for i in req.get('extension').split(','): - key += ' && ' + defined(i) - if req.get('depends'): # new-style XML depends specification - dep = cdepends(req.get('depends')) - key += ' && ' + ('(' + dep + ')' if '||' in dep else dep) - cmdrefs = req.findall('command') - for cmdref in cmdrefs: - ver = cmdversions.get(cmdref.get('name')) - if ver: - command_groups.setdefault(key + ' && ' + name.upper() + '_SPEC_VERSION >= ' + str(ver), []).append(cmdref.get('name')) - else: - command_groups.setdefault(key, []).append(cmdref.get('name')) - if type == 'instance': - for cmdref in cmdrefs: - instance_commands.add(cmdref.get('name')) - - commands_to_groups = OrderedDict() - - for (group, cmdnames) in command_groups.items(): - for name in cmdnames: - commands_to_groups.setdefault(name, []).append(group) - - for (group, cmdnames) in command_groups.items(): - command_groups[group] = [name for name in cmdnames if len(commands_to_groups[name]) == 1] - - for (name, groups) in commands_to_groups.items(): - if len(groups) == 1: - continue - key = ' || '.join(['(' + g + ')' for g in groups]) - command_groups.setdefault(key, []).append(name) - - commands = {} - - for cmd in spec.findall('commands/command'): - if not cmd.get('alias'): - name = cmd.findtext('proto/name') - commands[name] = cmd - - for cmd in spec.findall('commands/command'): - if cmd.get('alias'): - name = cmd.get('name') - commands[name] = commands[cmd.get('alias')] - - types = {} - - for type in spec.findall('types/type'): - name = type.findtext('name') - if name: - types[name] = type - - for key in block_keys: - blocks[key] = '' - - for (group, cmdnames) in command_groups.items(): - ifdef = '#if ' + group + '\n' - - for key in block_keys: - blocks[key] += ifdef - - for name in sorted(cmdnames): - cmd = commands[name] - type = cmd.findtext('param[1]/type') - - if name == 'vkGetInstanceProcAddr': - type = '' - if name == 'vkGetDeviceProcAddr': - type = 'VkInstance' - - if is_descendant_type(types, type, 'VkDevice') and name not in instance_commands: - blocks['LOAD_DEVICE'] += '\t' + name + ' = (PFN_' + name + ')load(context, "' + name + '");\n' - blocks['DEVICE_TABLE'] += '\tPFN_' + name + ' ' + name + ';\n' - blocks['LOAD_DEVICE_TABLE'] += '\ttable->' + name + ' = (PFN_' + name + ')load(context, "' + name + '");\n' - elif is_descendant_type(types, type, 'VkInstance'): - blocks['LOAD_INSTANCE'] += '\t' + name + ' = (PFN_' + name + ')load(context, "' + name + '");\n' - elif type != '': - blocks['LOAD_LOADER'] += '\t' + name + ' = (PFN_' + name + ')load(context, "' + name + '");\n' - - blocks['PROTOTYPES_H'] += 'extern PFN_' + name + ' ' + name + ';\n' - blocks['PROTOTYPES_C'] += 'PFN_' + name + ' ' + name + ';\n' - - for key in block_keys: - if blocks[key].endswith(ifdef): - blocks[key] = blocks[key][:-len(ifdef)] - else: - blocks[key] += '#endif /* ' + group + ' */\n' - - patch_file('volk.h', blocks) - patch_file('volk.c', blocks) - patch_file('CMakeLists.txt', blocks) - - print(version.find('name').tail.strip()) diff --git a/third_party/volk/test/cmake_using_installed_headers/CMakeLists.txt b/third_party/volk/test/cmake_using_installed_headers/CMakeLists.txt deleted file mode 100644 index d9b441b..0000000 --- a/third_party/volk/test/cmake_using_installed_headers/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(volk_test LANGUAGES C) - -# Include volk from a CMake package config. -# CMAKE_PREFIX_PATH or volk_DIR must be set properly. -find_package(volk CONFIG REQUIRED) - -add_executable(volk_test main.c) -target_link_libraries(volk_test PRIVATE volk::volk_headers) diff --git a/third_party/volk/test/cmake_using_installed_headers/main.c b/third_party/volk/test/cmake_using_installed_headers/main.c deleted file mode 100644 index 0f772d8..0000000 --- a/third_party/volk/test/cmake_using_installed_headers/main.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Set platform defines at build time for volk to pick up. */ -#if defined(_WIN32) -# define VK_USE_PLATFORM_WIN32_KHR -#elif defined(__linux__) || defined(__unix__) -# define VK_USE_PLATFORM_XLIB_KHR -#elif defined(__APPLE__) -# define VK_USE_PLATFORM_MACOS_MVK -#else -# error "Platform not supported by this example." -#endif - -#define VOLK_IMPLEMENTATION -#include "volk.h" - -#include "stdio.h" -#include "stdlib.h" - -int main() -{ - VkResult r; - uint32_t version; - void* ptr; - - /* This won't compile if the appropriate Vulkan platform define isn't set. */ - ptr = -#if defined(_WIN32) - &vkCreateWin32SurfaceKHR; -#elif defined(__linux__) || defined(__unix__) - &vkCreateXlibSurfaceKHR; -#elif defined(__APPLE__) - &vkCreateMacOSSurfaceMVK; -#else - /* Platform not recogized for testing. */ - NULL; -#endif - - /* Try to initialize volk. This might not work on CI builds, but the - * above should have compiled at least. */ - r = volkInitialize(); - if (r != VK_SUCCESS) { - printf("volkInitialize failed!\n"); - return -1; - } - - version = volkGetInstanceVersion(); - printf("Vulkan version %d.%d.%d initialized.\n", - VK_VERSION_MAJOR(version), - VK_VERSION_MINOR(version), - VK_VERSION_PATCH(version)); - - - return 0; -} - diff --git a/third_party/volk/test/cmake_using_source_directly/CMakeLists.txt b/third_party/volk/test/cmake_using_source_directly/CMakeLists.txt deleted file mode 100644 index 080dda8..0000000 --- a/third_party/volk/test/cmake_using_source_directly/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -# Compiles the volk sources as part of a user project. -# Volk comes with a volk.c for this purpose. -# Note that for volk to properly handle platform defines, -# those have to be set at build time. -# Also note that this way the Vulkan headers must -# handled by the user project as well as linking to dl on -# non-Windows platforms. -# For these reasons it's recommended to use one of -# the other ways to include volk (see the other examples). - -cmake_minimum_required(VERSION 3.5) -project(volk_test LANGUAGES C) - -add_executable(volk_test main.c ../../volk.c) - -# Set include path for volk.h -target_include_directories(volk_test PRIVATE ../..) - -# Set suitable platform defines -if(CMAKE_SYSTEM_NAME STREQUAL Windows) - target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_WIN32_KHR) -elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) - target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_XLIB_KHR) -elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_MACOS_MVK) -endif() - -# Link requires libraries -if(NOT WIN32) - target_link_libraries(volk_test PRIVATE dl) -endif() - -# Get Vulkan dependency -find_package(Vulkan QUIET) -if(TARGET Vulkan::Vulkan) - # Note: We don't use target_link_libraries for Vulkan::Vulkan to avoid a static dependency on libvulkan1 - target_include_directories(volk_test PRIVATE ${Vulkan_INCLUDE_DIRS}) -elseif(DEFINED ENV{VULKAN_SDK}) - target_include_directories(volk_test PRIVATE "$ENV{VULKAN_SDK}/include") -endif() diff --git a/third_party/volk/test/cmake_using_source_directly/main.c b/third_party/volk/test/cmake_using_source_directly/main.c deleted file mode 100644 index 6ce41ea..0000000 --- a/third_party/volk/test/cmake_using_source_directly/main.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "volk.h" - -#include "stdio.h" -#include "stdlib.h" - -int main() -{ - VkResult r; - uint32_t version; - void* ptr; - - /* This won't compile if the appropriate Vulkan platform define isn't set. */ - ptr = -#if defined(_WIN32) - &vkCreateWin32SurfaceKHR; -#elif defined(__linux__) || defined(__unix__) - &vkCreateXlibSurfaceKHR; -#elif defined(__APPLE__) - &vkCreateMacOSSurfaceMVK; -#else - /* Platform not recogized for testing. */ - NULL; -#endif - - /* Try to initialize volk. This might not work on CI builds, but the - * above should have compiled at least. */ - r = volkInitialize(); - if (r != VK_SUCCESS) { - printf("volkInitialize failed!\n"); - return -1; - } - - version = volkGetInstanceVersion(); - printf("Vulkan version %d.%d.%d initialized.\n", - VK_VERSION_MAJOR(version), - VK_VERSION_MINOR(version), - VK_VERSION_PATCH(version)); - - return 0; -} - diff --git a/third_party/volk/test/cmake_using_subdir_headers/CMakeLists.txt b/third_party/volk/test/cmake_using_subdir_headers/CMakeLists.txt deleted file mode 100644 index 3d27ddd..0000000 --- a/third_party/volk/test/cmake_using_subdir_headers/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# Include the volk target through add_subdirectory. - -cmake_minimum_required(VERSION 3.5) -project(volk_test LANGUAGES C) - -# Include volk as part of the build tree to make the target known. -# The two-argument version of add_subdirectory allows adding non-subdirs. -add_subdirectory(../.. volk) - -add_executable(volk_test main.c) -target_link_libraries(volk_test PRIVATE volk_headers) diff --git a/third_party/volk/test/cmake_using_subdir_headers/main.c b/third_party/volk/test/cmake_using_subdir_headers/main.c deleted file mode 100644 index bc0ce90..0000000 --- a/third_party/volk/test/cmake_using_subdir_headers/main.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Set platform defines at build time for volk to pick up. */ -#if defined(_WIN32) -# define VK_USE_PLATFORM_WIN32_KHR -#elif defined(__linux__) || defined(__unix__) -# define VK_USE_PLATFORM_XLIB_KHR -#elif defined(__APPLE__) -# define VK_USE_PLATFORM_MACOS_MVK -#else -# error "Platform not supported by this example." -#endif - -#define VOLK_IMPLEMENTATION -#include "volk.h" - -#include "stdio.h" -#include "stdlib.h" - -int main() -{ - VkResult r; - uint32_t version; - void* ptr; - - /* This won't compile if the appropriate Vulkan platform define isn't set. */ - ptr = -#if defined(_WIN32) - &vkCreateWin32SurfaceKHR; -#elif defined(__linux__) || defined(__unix__) - &vkCreateXlibSurfaceKHR; -#elif defined(__APPLE__) - &vkCreateMacOSSurfaceMVK; -#else - /* Platform not recogized for testing. */ - NULL; -#endif - - /* Try to initialize volk. This might not work on CI builds, but the - * above should have compiled at least. */ - r = volkInitialize(); - if (r != VK_SUCCESS) { - printf("volkInitialize failed!\n"); - return -1; - } - - version = volkGetInstanceVersion(); - printf("Vulkan version %d.%d.%d initialized.\n", - VK_VERSION_MAJOR(version), - VK_VERSION_MINOR(version), - VK_VERSION_PATCH(version)); - - return 0; -} - diff --git a/third_party/volk/test/cmake_using_subdir_static/CMakeLists.txt b/third_party/volk/test/cmake_using_subdir_static/CMakeLists.txt deleted file mode 100644 index cb4c870..0000000 --- a/third_party/volk/test/cmake_using_subdir_static/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Include the volk target through add_subdirectory, use the static lib target. -# We must set platform defines. -# By default, Vulkan is pulled in as transitive dependency if found. - -cmake_minimum_required(VERSION 3.5) -project(volk_test LANGUAGES C) - -# Set a suitable platform define to compile volk with. -if(CMAKE_SYSTEM_NAME STREQUAL Windows) - set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_WIN32_KHR) -elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) - set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_XLIB_KHR) -elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_MACOS_MVK) -endif() - -# Include volk as part of the build tree to make the target known. -# The two-argument version of add_subdirectory allows adding non-subdirs. -add_subdirectory(../.. volk) - -add_executable(volk_test main.c) -target_link_libraries(volk_test PRIVATE volk) diff --git a/third_party/volk/test/cmake_using_subdir_static/main.c b/third_party/volk/test/cmake_using_subdir_static/main.c deleted file mode 100644 index 6ce41ea..0000000 --- a/third_party/volk/test/cmake_using_subdir_static/main.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "volk.h" - -#include "stdio.h" -#include "stdlib.h" - -int main() -{ - VkResult r; - uint32_t version; - void* ptr; - - /* This won't compile if the appropriate Vulkan platform define isn't set. */ - ptr = -#if defined(_WIN32) - &vkCreateWin32SurfaceKHR; -#elif defined(__linux__) || defined(__unix__) - &vkCreateXlibSurfaceKHR; -#elif defined(__APPLE__) - &vkCreateMacOSSurfaceMVK; -#else - /* Platform not recogized for testing. */ - NULL; -#endif - - /* Try to initialize volk. This might not work on CI builds, but the - * above should have compiled at least. */ - r = volkInitialize(); - if (r != VK_SUCCESS) { - printf("volkInitialize failed!\n"); - return -1; - } - - version = volkGetInstanceVersion(); - printf("Vulkan version %d.%d.%d initialized.\n", - VK_VERSION_MAJOR(version), - VK_VERSION_MINOR(version), - VK_VERSION_PATCH(version)); - - return 0; -} - diff --git a/third_party/volk/test/run_tests.sh b/third_party/volk/test/run_tests.sh deleted file mode 100644 index 2d06459..0000000 --- a/third_party/volk/test/run_tests.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -function reset_build { - for DIR in "_build" "_installed" - do - if [ -d $DIR ]; then - rm -rf $DIR - fi - mkdir -p $DIR - done -} -function run_volk_test { - for FILE in "./volk_test" "./volk_test.exe" "Debug/volk_test.exe" "Release/volk_test.exe" - do - if [ -f $FILE ]; then - echo "Running test:" - $FILE - RC=$? - break - fi - done - echo "volk_test return code: $RC" -} - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -pushd $SCRIPT_DIR/.. - -reset_build -pushd _build -cmake -DCMAKE_INSTALL_PREFIX=../_installed -DVOLK_INSTALL=ON .. || exit 1 -cmake --build . --target install || exit 1 -popd - -echo -echo "cmake_using_source_directly =======================================>" -echo - -pushd test/cmake_using_source_directly -reset_build -pushd _build -cmake .. || exit 1 -cmake --build . || exit 1 -run_volk_test -popd -popd - -echo -echo "cmake_using_subdir_static =======================================>" -echo - -pushd test/cmake_using_subdir_static -reset_build -pushd _build -cmake .. || exit 1 -cmake --build . || exit 1 -run_volk_test -popd -popd - -echo -echo "cmake_using_subdir_headers =======================================>" -echo - -pushd test/cmake_using_subdir_headers -reset_build -pushd _build -cmake .. || exit 1 -cmake --build . || exit 1 -run_volk_test -popd -popd - -echo -echo "cmake_using_installed_headers =======================================>" -echo - -pushd test/cmake_using_installed_headers -reset_build -pushd _build -cmake -DCMAKE_INSTALL_PREFIX=../../../_installed/lib/cmake .. || exit 1 -cmake --build . || exit 1 -run_volk_test -popd -popd - -popd - diff --git a/third_party/volk/volk.c b/third_party/volk/volk.c deleted file mode 100644 index b097b1e..0000000 --- a/third_party/volk/volk.c +++ /dev/null @@ -1,3179 +0,0 @@ -/* This file is part of volk library; see volk.h for version/license details */ -/* clang-format off */ -#include "volk.h" - -#ifdef _WIN32 - typedef const char* LPCSTR; - typedef struct HINSTANCE__* HINSTANCE; - typedef HINSTANCE HMODULE; - #if defined(_MINWINDEF_) - /* minwindef.h defines FARPROC, and attempting to redefine it may conflict with -Wstrict-prototypes */ - #elif defined(_WIN64) - typedef __int64 (__stdcall* FARPROC)(void); - #else - typedef int (__stdcall* FARPROC)(void); - #endif -#else -# include -#endif - -#ifdef __APPLE__ -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _WIN32 -__declspec(dllimport) HMODULE __stdcall LoadLibraryA(LPCSTR); -__declspec(dllimport) FARPROC __stdcall GetProcAddress(HMODULE, LPCSTR); -__declspec(dllimport) int __stdcall FreeLibrary(HMODULE); -#endif - -static void* loadedModule = NULL; -static VkInstance loadedInstance = VK_NULL_HANDLE; -static VkDevice loadedDevice = VK_NULL_HANDLE; - -static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*)); -static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*)); -static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*)); -static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*)); - -static PFN_vkVoidFunction vkGetInstanceProcAddrStub(void* context, const char* name) -{ - return vkGetInstanceProcAddr((VkInstance)context, name); -} - -static PFN_vkVoidFunction vkGetDeviceProcAddrStub(void* context, const char* name) -{ - return vkGetDeviceProcAddr((VkDevice)context, name); -} - -static PFN_vkVoidFunction nullProcAddrStub(void* context, const char* name) -{ - (void)context; - (void)name; - return NULL; -} - -VkResult volkInitialize(void) -{ -#if defined(_WIN32) - HMODULE module = LoadLibraryA("vulkan-1.dll"); - if (!module) - return VK_ERROR_INITIALIZATION_FAILED; - - // note: function pointer is cast through void function pointer to silence cast-function-type warning on gcc8 - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)(void(*)(void))GetProcAddress(module, "vkGetInstanceProcAddr"); -#elif defined(__APPLE__) - void* module = dlopen("libvulkan.dylib", RTLD_NOW | RTLD_LOCAL); - if (!module) - module = dlopen("libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL); - if (!module) - module = dlopen("libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL); - // Add support for using Vulkan and MoltenVK in a Framework. App store rules for iOS - // strictly enforce no .dylib's. If they aren't found it just falls through - if (!module) - module = dlopen("vulkan.framework/vulkan", RTLD_NOW | RTLD_LOCAL); - if (!module) - module = dlopen("MoltenVK.framework/MoltenVK", RTLD_NOW | RTLD_LOCAL); - // modern versions of macOS don't search /usr/local/lib automatically contrary to what man dlopen says - // Vulkan SDK uses this as the system-wide installation location, so we're going to fallback to this if all else fails - if (!module && getenv("DYLD_FALLBACK_LIBRARY_PATH") == NULL) - module = dlopen("/usr/local/lib/libvulkan.dylib", RTLD_NOW | RTLD_LOCAL); - if (!module) - return VK_ERROR_INITIALIZATION_FAILED; - - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr"); -#else - void* module = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL); - if (!module) - module = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL); - if (!module) - return VK_ERROR_INITIALIZATION_FAILED; - - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr"); -#endif - - loadedModule = module; - volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub); - - return VK_SUCCESS; -} - -void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler) -{ - vkGetInstanceProcAddr = handler; - - loadedModule = NULL; - volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub); -} - -void volkFinalize(void) -{ - if (loadedModule) - { -#if defined(_WIN32) - FreeLibrary((HMODULE)loadedModule); -#else - dlclose(loadedModule); -#endif - } - - vkGetInstanceProcAddr = NULL; - volkGenLoadLoader(NULL, nullProcAddrStub); - volkGenLoadInstance(NULL, nullProcAddrStub); - volkGenLoadDevice(NULL, nullProcAddrStub); - - loadedModule = NULL; - loadedInstance = VK_NULL_HANDLE; - loadedDevice = VK_NULL_HANDLE; -} - -uint32_t volkGetInstanceVersion(void) -{ -#if defined(VK_VERSION_1_1) - uint32_t apiVersion = 0; - if (vkEnumerateInstanceVersion && vkEnumerateInstanceVersion(&apiVersion) == VK_SUCCESS) - return apiVersion; -#endif - - if (vkCreateInstance) - return VK_API_VERSION_1_0; - - return 0; -} - -void volkLoadInstance(VkInstance instance) -{ - loadedInstance = instance; - volkGenLoadInstance(instance, vkGetInstanceProcAddrStub); - volkGenLoadDevice(instance, vkGetInstanceProcAddrStub); -} - -void volkLoadInstanceOnly(VkInstance instance) -{ - loadedInstance = instance; - volkGenLoadInstance(instance, vkGetInstanceProcAddrStub); -} - -VkInstance volkGetLoadedInstance(void) -{ - return loadedInstance; -} - -void volkLoadDevice(VkDevice device) -{ - loadedDevice = device; - volkGenLoadDevice(device, vkGetDeviceProcAddrStub); -} - -VkDevice volkGetLoadedDevice(void) -{ - return loadedDevice; -} - -void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device) -{ - volkGenLoadDeviceTable(table, device, vkGetDeviceProcAddrStub); -} - -static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*)) -{ - /* VOLK_GENERATE_LOAD_LOADER */ -#if defined(VK_VERSION_1_0) - vkCreateInstance = (PFN_vkCreateInstance)load(context, "vkCreateInstance"); - vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)load(context, "vkEnumerateInstanceExtensionProperties"); - vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)load(context, "vkEnumerateInstanceLayerProperties"); -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) - vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)load(context, "vkEnumerateInstanceVersion"); -#endif /* defined(VK_VERSION_1_1) */ - /* VOLK_GENERATE_LOAD_LOADER */ -} - -static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*)) -{ - /* VOLK_GENERATE_LOAD_INSTANCE */ -#if defined(VK_VERSION_1_0) - vkCreateDevice = (PFN_vkCreateDevice)load(context, "vkCreateDevice"); - vkDestroyInstance = (PFN_vkDestroyInstance)load(context, "vkDestroyInstance"); - vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)load(context, "vkEnumerateDeviceExtensionProperties"); - vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)load(context, "vkEnumerateDeviceLayerProperties"); - vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)load(context, "vkEnumeratePhysicalDevices"); - vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)load(context, "vkGetDeviceProcAddr"); - vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)load(context, "vkGetPhysicalDeviceFeatures"); - vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)load(context, "vkGetPhysicalDeviceFormatProperties"); - vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)load(context, "vkGetPhysicalDeviceImageFormatProperties"); - vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)load(context, "vkGetPhysicalDeviceMemoryProperties"); - vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)load(context, "vkGetPhysicalDeviceProperties"); - vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)load(context, "vkGetPhysicalDeviceQueueFamilyProperties"); - vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties"); -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) - vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)load(context, "vkEnumeratePhysicalDeviceGroups"); - vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)load(context, "vkGetPhysicalDeviceExternalBufferProperties"); - vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)load(context, "vkGetPhysicalDeviceExternalFenceProperties"); - vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)load(context, "vkGetPhysicalDeviceExternalSemaphoreProperties"); - vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)load(context, "vkGetPhysicalDeviceFeatures2"); - vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)load(context, "vkGetPhysicalDeviceFormatProperties2"); - vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)load(context, "vkGetPhysicalDeviceImageFormatProperties2"); - vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)load(context, "vkGetPhysicalDeviceMemoryProperties2"); - vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)load(context, "vkGetPhysicalDeviceProperties2"); - vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2"); - vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2"); -#endif /* defined(VK_VERSION_1_1) */ -#if defined(VK_VERSION_1_3) - vkGetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)load(context, "vkGetPhysicalDeviceToolProperties"); -#endif /* defined(VK_VERSION_1_3) */ -#if defined(VK_EXT_acquire_drm_display) - vkAcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)load(context, "vkAcquireDrmDisplayEXT"); - vkGetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)load(context, "vkGetDrmDisplayEXT"); -#endif /* defined(VK_EXT_acquire_drm_display) */ -#if defined(VK_EXT_acquire_xlib_display) - vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)load(context, "vkAcquireXlibDisplayEXT"); - vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)load(context, "vkGetRandROutputDisplayEXT"); -#endif /* defined(VK_EXT_acquire_xlib_display) */ -#if defined(VK_EXT_calibrated_timestamps) - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)load(context, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"); -#endif /* defined(VK_EXT_calibrated_timestamps) */ -#if defined(VK_EXT_debug_report) - vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)load(context, "vkCreateDebugReportCallbackEXT"); - vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)load(context, "vkDebugReportMessageEXT"); - vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)load(context, "vkDestroyDebugReportCallbackEXT"); -#endif /* defined(VK_EXT_debug_report) */ -#if defined(VK_EXT_debug_utils) - vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)load(context, "vkCmdBeginDebugUtilsLabelEXT"); - vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)load(context, "vkCmdEndDebugUtilsLabelEXT"); - vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)load(context, "vkCmdInsertDebugUtilsLabelEXT"); - vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)load(context, "vkCreateDebugUtilsMessengerEXT"); - vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)load(context, "vkDestroyDebugUtilsMessengerEXT"); - vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)load(context, "vkQueueBeginDebugUtilsLabelEXT"); - vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)load(context, "vkQueueEndDebugUtilsLabelEXT"); - vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)load(context, "vkQueueInsertDebugUtilsLabelEXT"); - vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)load(context, "vkSetDebugUtilsObjectNameEXT"); - vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)load(context, "vkSetDebugUtilsObjectTagEXT"); - vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)load(context, "vkSubmitDebugUtilsMessageEXT"); -#endif /* defined(VK_EXT_debug_utils) */ -#if defined(VK_EXT_direct_mode_display) - vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)load(context, "vkReleaseDisplayEXT"); -#endif /* defined(VK_EXT_direct_mode_display) */ -#if defined(VK_EXT_directfb_surface) - vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)load(context, "vkCreateDirectFBSurfaceEXT"); - vkGetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)load(context, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"); -#endif /* defined(VK_EXT_directfb_surface) */ -#if defined(VK_EXT_display_surface_counter) - vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"); -#endif /* defined(VK_EXT_display_surface_counter) */ -#if defined(VK_EXT_full_screen_exclusive) - vkGetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)load(context, "vkGetPhysicalDeviceSurfacePresentModes2EXT"); -#endif /* defined(VK_EXT_full_screen_exclusive) */ -#if defined(VK_EXT_headless_surface) - vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)load(context, "vkCreateHeadlessSurfaceEXT"); -#endif /* defined(VK_EXT_headless_surface) */ -#if defined(VK_EXT_metal_surface) - vkCreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)load(context, "vkCreateMetalSurfaceEXT"); -#endif /* defined(VK_EXT_metal_surface) */ -#if defined(VK_EXT_sample_locations) - vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)load(context, "vkGetPhysicalDeviceMultisamplePropertiesEXT"); -#endif /* defined(VK_EXT_sample_locations) */ -#if defined(VK_EXT_tooling_info) - vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)load(context, "vkGetPhysicalDeviceToolPropertiesEXT"); -#endif /* defined(VK_EXT_tooling_info) */ -#if defined(VK_FUCHSIA_imagepipe_surface) - vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)load(context, "vkCreateImagePipeSurfaceFUCHSIA"); -#endif /* defined(VK_FUCHSIA_imagepipe_surface) */ -#if defined(VK_GGP_stream_descriptor_surface) - vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)load(context, "vkCreateStreamDescriptorSurfaceGGP"); -#endif /* defined(VK_GGP_stream_descriptor_surface) */ -#if defined(VK_KHR_android_surface) - vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)load(context, "vkCreateAndroidSurfaceKHR"); -#endif /* defined(VK_KHR_android_surface) */ -#if defined(VK_KHR_calibrated_timestamps) - vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)load(context, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"); -#endif /* defined(VK_KHR_calibrated_timestamps) */ -#if defined(VK_KHR_cooperative_matrix) - vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)load(context, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"); -#endif /* defined(VK_KHR_cooperative_matrix) */ -#if defined(VK_KHR_device_group_creation) - vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)load(context, "vkEnumeratePhysicalDeviceGroupsKHR"); -#endif /* defined(VK_KHR_device_group_creation) */ -#if defined(VK_KHR_display) - vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)load(context, "vkCreateDisplayModeKHR"); - vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)load(context, "vkCreateDisplayPlaneSurfaceKHR"); - vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)load(context, "vkGetDisplayModePropertiesKHR"); - vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)load(context, "vkGetDisplayPlaneCapabilitiesKHR"); - vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)load(context, "vkGetDisplayPlaneSupportedDisplaysKHR"); - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); - vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPropertiesKHR"); -#endif /* defined(VK_KHR_display) */ -#if defined(VK_KHR_external_fence_capabilities) - vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalFencePropertiesKHR"); -#endif /* defined(VK_KHR_external_fence_capabilities) */ -#if defined(VK_KHR_external_memory_capabilities) - vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)load(context, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"); -#endif /* defined(VK_KHR_external_memory_capabilities) */ -#if defined(VK_KHR_external_semaphore_capabilities) - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); -#endif /* defined(VK_KHR_external_semaphore_capabilities) */ -#if defined(VK_KHR_fragment_shading_rate) - vkGetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)load(context, "vkGetPhysicalDeviceFragmentShadingRatesKHR"); -#endif /* defined(VK_KHR_fragment_shading_rate) */ -#if defined(VK_KHR_get_display_properties2) - vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)load(context, "vkGetDisplayModeProperties2KHR"); - vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)load(context, "vkGetDisplayPlaneCapabilities2KHR"); - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); - vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayProperties2KHR"); -#endif /* defined(VK_KHR_get_display_properties2) */ -#if defined(VK_KHR_get_physical_device_properties2) - vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)load(context, "vkGetPhysicalDeviceFeatures2KHR"); - vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)load(context, "vkGetPhysicalDeviceFormatProperties2KHR"); - vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceImageFormatProperties2KHR"); - vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)load(context, "vkGetPhysicalDeviceMemoryProperties2KHR"); - vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)load(context, "vkGetPhysicalDeviceProperties2KHR"); - vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"); - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); -#endif /* defined(VK_KHR_get_physical_device_properties2) */ -#if defined(VK_KHR_get_surface_capabilities2) - vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"); - vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)load(context, "vkGetPhysicalDeviceSurfaceFormats2KHR"); -#endif /* defined(VK_KHR_get_surface_capabilities2) */ -#if defined(VK_KHR_performance_query) - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)load(context, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"); - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)load(context, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"); -#endif /* defined(VK_KHR_performance_query) */ -#if defined(VK_KHR_surface) - vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)load(context, "vkDestroySurfaceKHR"); - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); - vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)load(context, "vkGetPhysicalDeviceSurfaceFormatsKHR"); - vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)load(context, "vkGetPhysicalDeviceSurfacePresentModesKHR"); - vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)load(context, "vkGetPhysicalDeviceSurfaceSupportKHR"); -#endif /* defined(VK_KHR_surface) */ -#if defined(VK_KHR_video_encode_queue) - vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)load(context, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR"); -#endif /* defined(VK_KHR_video_encode_queue) */ -#if defined(VK_KHR_video_queue) - vkGetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)load(context, "vkGetPhysicalDeviceVideoCapabilitiesKHR"); - vkGetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)load(context, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"); -#endif /* defined(VK_KHR_video_queue) */ -#if defined(VK_KHR_wayland_surface) - vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)load(context, "vkCreateWaylandSurfaceKHR"); - vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)load(context, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"); -#endif /* defined(VK_KHR_wayland_surface) */ -#if defined(VK_KHR_win32_surface) - vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)load(context, "vkCreateWin32SurfaceKHR"); - vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)load(context, "vkGetPhysicalDeviceWin32PresentationSupportKHR"); -#endif /* defined(VK_KHR_win32_surface) */ -#if defined(VK_KHR_xcb_surface) - vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)load(context, "vkCreateXcbSurfaceKHR"); - vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXcbPresentationSupportKHR"); -#endif /* defined(VK_KHR_xcb_surface) */ -#if defined(VK_KHR_xlib_surface) - vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)load(context, "vkCreateXlibSurfaceKHR"); - vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXlibPresentationSupportKHR"); -#endif /* defined(VK_KHR_xlib_surface) */ -#if defined(VK_MVK_ios_surface) - vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)load(context, "vkCreateIOSSurfaceMVK"); -#endif /* defined(VK_MVK_ios_surface) */ -#if defined(VK_MVK_macos_surface) - vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)load(context, "vkCreateMacOSSurfaceMVK"); -#endif /* defined(VK_MVK_macos_surface) */ -#if defined(VK_NN_vi_surface) - vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)load(context, "vkCreateViSurfaceNN"); -#endif /* defined(VK_NN_vi_surface) */ -#if defined(VK_NV_acquire_winrt_display) - vkAcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)load(context, "vkAcquireWinrtDisplayNV"); - vkGetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)load(context, "vkGetWinrtDisplayNV"); -#endif /* defined(VK_NV_acquire_winrt_display) */ -#if defined(VK_NV_cooperative_matrix) - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)load(context, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); -#endif /* defined(VK_NV_cooperative_matrix) */ -#if defined(VK_NV_coverage_reduction_mode) - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)load(context, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"); -#endif /* defined(VK_NV_coverage_reduction_mode) */ -#if defined(VK_NV_external_memory_capabilities) - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)load(context, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); -#endif /* defined(VK_NV_external_memory_capabilities) */ -#if defined(VK_NV_optical_flow) - vkGetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)load(context, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); -#endif /* defined(VK_NV_optical_flow) */ -#if defined(VK_QNX_screen_surface) - vkCreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)load(context, "vkCreateScreenSurfaceQNX"); - vkGetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)load(context, "vkGetPhysicalDeviceScreenPresentationSupportQNX"); -#endif /* defined(VK_QNX_screen_surface) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)load(context, "vkGetPhysicalDevicePresentRectanglesKHR"); -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ - /* VOLK_GENERATE_LOAD_INSTANCE */ -} - -static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*)) -{ - /* VOLK_GENERATE_LOAD_DEVICE */ -#if defined(VK_VERSION_1_0) - vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers"); - vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets"); - vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory"); - vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer"); - vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory"); - vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory"); - vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery"); - vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass"); - vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets"); - vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer"); - vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline"); - vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers"); - vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage"); - vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments"); - vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage"); - vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage"); - vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer"); - vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage"); - vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage"); - vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer"); - vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults"); - vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch"); - vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect"); - vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw"); - vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed"); - vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect"); - vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect"); - vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery"); - vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass"); - vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands"); - vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer"); - vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass"); - vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier"); - vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants"); - vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent"); - vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool"); - vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage"); - vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants"); - vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias"); - vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds"); - vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent"); - vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth"); - vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor"); - vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask"); - vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference"); - vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask"); - vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport"); - vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer"); - vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents"); - vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp"); - vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer"); - vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView"); - vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool"); - vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines"); - vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool"); - vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout"); - vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent"); - vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence"); - vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer"); - vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines"); - vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage"); - vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView"); - vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache"); - vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout"); - vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool"); - vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass"); - vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler"); - vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore"); - vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule"); - vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer"); - vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView"); - vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool"); - vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool"); - vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout"); - vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice"); - vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent"); - vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence"); - vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer"); - vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage"); - vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView"); - vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline"); - vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache"); - vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout"); - vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool"); - vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass"); - vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler"); - vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore"); - vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule"); - vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle"); - vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer"); - vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges"); - vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers"); - vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets"); - vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory"); - vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements"); - vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment"); - vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue"); - vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus"); - vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus"); - vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements"); - vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements"); - vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout"); - vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData"); - vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults"); - vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity"); - vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges"); - vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory"); - vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches"); - vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse"); - vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit"); - vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle"); - vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer"); - vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool"); - vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool"); - vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent"); - vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences"); - vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent"); - vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory"); - vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets"); - vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences"); -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) - vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2"); - vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2"); - vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase"); - vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask"); - vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate"); - vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion"); - vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate"); - vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion"); - vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2"); - vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport"); - vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures"); - vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2"); - vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2"); - vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2"); - vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool"); - vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate"); -#endif /* defined(VK_VERSION_1_1) */ -#if defined(VK_VERSION_1_2) - vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)load(context, "vkCmdBeginRenderPass2"); - vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)load(context, "vkCmdDrawIndexedIndirectCount"); - vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)load(context, "vkCmdDrawIndirectCount"); - vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)load(context, "vkCmdEndRenderPass2"); - vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)load(context, "vkCmdNextSubpass2"); - vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)load(context, "vkCreateRenderPass2"); - vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)load(context, "vkGetBufferDeviceAddress"); - vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)load(context, "vkGetBufferOpaqueCaptureAddress"); - vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)load(context, "vkGetDeviceMemoryOpaqueCaptureAddress"); - vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)load(context, "vkGetSemaphoreCounterValue"); - vkResetQueryPool = (PFN_vkResetQueryPool)load(context, "vkResetQueryPool"); - vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore"); - vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores"); -#endif /* defined(VK_VERSION_1_2) */ -#if defined(VK_VERSION_1_3) - vkCmdBeginRendering = (PFN_vkCmdBeginRendering)load(context, "vkCmdBeginRendering"); - vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)load(context, "vkCmdBindVertexBuffers2"); - vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)load(context, "vkCmdBlitImage2"); - vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)load(context, "vkCmdCopyBuffer2"); - vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)load(context, "vkCmdCopyBufferToImage2"); - vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)load(context, "vkCmdCopyImage2"); - vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)load(context, "vkCmdCopyImageToBuffer2"); - vkCmdEndRendering = (PFN_vkCmdEndRendering)load(context, "vkCmdEndRendering"); - vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)load(context, "vkCmdPipelineBarrier2"); - vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)load(context, "vkCmdResetEvent2"); - vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)load(context, "vkCmdResolveImage2"); - vkCmdSetCullMode = (PFN_vkCmdSetCullMode)load(context, "vkCmdSetCullMode"); - vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)load(context, "vkCmdSetDepthBiasEnable"); - vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)load(context, "vkCmdSetDepthBoundsTestEnable"); - vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)load(context, "vkCmdSetDepthCompareOp"); - vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)load(context, "vkCmdSetDepthTestEnable"); - vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)load(context, "vkCmdSetDepthWriteEnable"); - vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)load(context, "vkCmdSetEvent2"); - vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)load(context, "vkCmdSetFrontFace"); - vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)load(context, "vkCmdSetPrimitiveRestartEnable"); - vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)load(context, "vkCmdSetPrimitiveTopology"); - vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)load(context, "vkCmdSetRasterizerDiscardEnable"); - vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)load(context, "vkCmdSetScissorWithCount"); - vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)load(context, "vkCmdSetStencilOp"); - vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)load(context, "vkCmdSetStencilTestEnable"); - vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)load(context, "vkCmdSetViewportWithCount"); - vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)load(context, "vkCmdWaitEvents2"); - vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)load(context, "vkCmdWriteTimestamp2"); - vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)load(context, "vkCreatePrivateDataSlot"); - vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)load(context, "vkDestroyPrivateDataSlot"); - vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)load(context, "vkGetDeviceBufferMemoryRequirements"); - vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)load(context, "vkGetDeviceImageMemoryRequirements"); - vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)load(context, "vkGetDeviceImageSparseMemoryRequirements"); - vkGetPrivateData = (PFN_vkGetPrivateData)load(context, "vkGetPrivateData"); - vkQueueSubmit2 = (PFN_vkQueueSubmit2)load(context, "vkQueueSubmit2"); - vkSetPrivateData = (PFN_vkSetPrivateData)load(context, "vkSetPrivateData"); -#endif /* defined(VK_VERSION_1_3) */ -#if defined(VK_AMDX_shader_enqueue) - vkCmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)load(context, "vkCmdDispatchGraphAMDX"); - vkCmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)load(context, "vkCmdDispatchGraphIndirectAMDX"); - vkCmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)load(context, "vkCmdDispatchGraphIndirectCountAMDX"); - vkCmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)load(context, "vkCmdInitializeGraphScratchMemoryAMDX"); - vkCreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)load(context, "vkCreateExecutionGraphPipelinesAMDX"); - vkGetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)load(context, "vkGetExecutionGraphPipelineNodeIndexAMDX"); - vkGetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)load(context, "vkGetExecutionGraphPipelineScratchSizeAMDX"); -#endif /* defined(VK_AMDX_shader_enqueue) */ -#if defined(VK_AMD_buffer_marker) - vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD"); -#endif /* defined(VK_AMD_buffer_marker) */ -#if defined(VK_AMD_display_native_hdr) - vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)load(context, "vkSetLocalDimmingAMD"); -#endif /* defined(VK_AMD_display_native_hdr) */ -#if defined(VK_AMD_draw_indirect_count) - vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD"); - vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD"); -#endif /* defined(VK_AMD_draw_indirect_count) */ -#if defined(VK_AMD_shader_info) - vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD"); -#endif /* defined(VK_AMD_shader_info) */ -#if defined(VK_ANDROID_external_memory_android_hardware_buffer) - vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID"); - vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID"); -#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ -#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) - vkCmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)load(context, "vkCmdSetAttachmentFeedbackLoopEnableEXT"); -#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ -#if defined(VK_EXT_buffer_device_address) - vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)load(context, "vkGetBufferDeviceAddressEXT"); -#endif /* defined(VK_EXT_buffer_device_address) */ -#if defined(VK_EXT_calibrated_timestamps) - vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT"); -#endif /* defined(VK_EXT_calibrated_timestamps) */ -#if defined(VK_EXT_color_write_enable) - vkCmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)load(context, "vkCmdSetColorWriteEnableEXT"); -#endif /* defined(VK_EXT_color_write_enable) */ -#if defined(VK_EXT_conditional_rendering) - vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT"); - vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT"); -#endif /* defined(VK_EXT_conditional_rendering) */ -#if defined(VK_EXT_debug_marker) - vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT"); - vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT"); - vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT"); - vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT"); - vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT"); -#endif /* defined(VK_EXT_debug_marker) */ -#if defined(VK_EXT_depth_bias_control) - vkCmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)load(context, "vkCmdSetDepthBias2EXT"); -#endif /* defined(VK_EXT_depth_bias_control) */ -#if defined(VK_EXT_descriptor_buffer) - vkCmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)load(context, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"); - vkCmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)load(context, "vkCmdBindDescriptorBuffersEXT"); - vkCmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)load(context, "vkCmdSetDescriptorBufferOffsetsEXT"); - vkGetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)load(context, "vkGetBufferOpaqueCaptureDescriptorDataEXT"); - vkGetDescriptorEXT = (PFN_vkGetDescriptorEXT)load(context, "vkGetDescriptorEXT"); - vkGetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)load(context, "vkGetDescriptorSetLayoutBindingOffsetEXT"); - vkGetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)load(context, "vkGetDescriptorSetLayoutSizeEXT"); - vkGetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageOpaqueCaptureDescriptorDataEXT"); - vkGetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageViewOpaqueCaptureDescriptorDataEXT"); - vkGetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)load(context, "vkGetSamplerOpaqueCaptureDescriptorDataEXT"); -#endif /* defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) - vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)load(context, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"); -#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ -#if defined(VK_EXT_device_fault) - vkGetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)load(context, "vkGetDeviceFaultInfoEXT"); -#endif /* defined(VK_EXT_device_fault) */ -#if defined(VK_EXT_discard_rectangles) - vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT"); -#endif /* defined(VK_EXT_discard_rectangles) */ -#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 - vkCmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)load(context, "vkCmdSetDiscardRectangleEnableEXT"); - vkCmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)load(context, "vkCmdSetDiscardRectangleModeEXT"); -#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ -#if defined(VK_EXT_display_control) - vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT"); - vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT"); - vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT"); - vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT"); -#endif /* defined(VK_EXT_display_control) */ -#if defined(VK_EXT_external_memory_host) - vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT"); -#endif /* defined(VK_EXT_external_memory_host) */ -#if defined(VK_EXT_full_screen_exclusive) - vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)load(context, "vkAcquireFullScreenExclusiveModeEXT"); - vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)load(context, "vkReleaseFullScreenExclusiveModeEXT"); -#endif /* defined(VK_EXT_full_screen_exclusive) */ -#if defined(VK_EXT_hdr_metadata) - vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT"); -#endif /* defined(VK_EXT_hdr_metadata) */ -#if defined(VK_EXT_host_image_copy) - vkCopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)load(context, "vkCopyImageToImageEXT"); - vkCopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)load(context, "vkCopyImageToMemoryEXT"); - vkCopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)load(context, "vkCopyMemoryToImageEXT"); - vkTransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)load(context, "vkTransitionImageLayoutEXT"); -#endif /* defined(VK_EXT_host_image_copy) */ -#if defined(VK_EXT_host_query_reset) - vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT"); -#endif /* defined(VK_EXT_host_query_reset) */ -#if defined(VK_EXT_image_drm_format_modifier) - vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT"); -#endif /* defined(VK_EXT_image_drm_format_modifier) */ -#if defined(VK_EXT_line_rasterization) - vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)load(context, "vkCmdSetLineStippleEXT"); -#endif /* defined(VK_EXT_line_rasterization) */ -#if defined(VK_EXT_mesh_shader) - vkCmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)load(context, "vkCmdDrawMeshTasksEXT"); - vkCmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)load(context, "vkCmdDrawMeshTasksIndirectCountEXT"); - vkCmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)load(context, "vkCmdDrawMeshTasksIndirectEXT"); -#endif /* defined(VK_EXT_mesh_shader) */ -#if defined(VK_EXT_metal_objects) - vkExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)load(context, "vkExportMetalObjectsEXT"); -#endif /* defined(VK_EXT_metal_objects) */ -#if defined(VK_EXT_multi_draw) - vkCmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)load(context, "vkCmdDrawMultiEXT"); - vkCmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)load(context, "vkCmdDrawMultiIndexedEXT"); -#endif /* defined(VK_EXT_multi_draw) */ -#if defined(VK_EXT_opacity_micromap) - vkBuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)load(context, "vkBuildMicromapsEXT"); - vkCmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)load(context, "vkCmdBuildMicromapsEXT"); - vkCmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)load(context, "vkCmdCopyMemoryToMicromapEXT"); - vkCmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)load(context, "vkCmdCopyMicromapEXT"); - vkCmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)load(context, "vkCmdCopyMicromapToMemoryEXT"); - vkCmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)load(context, "vkCmdWriteMicromapsPropertiesEXT"); - vkCopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)load(context, "vkCopyMemoryToMicromapEXT"); - vkCopyMicromapEXT = (PFN_vkCopyMicromapEXT)load(context, "vkCopyMicromapEXT"); - vkCopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)load(context, "vkCopyMicromapToMemoryEXT"); - vkCreateMicromapEXT = (PFN_vkCreateMicromapEXT)load(context, "vkCreateMicromapEXT"); - vkDestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)load(context, "vkDestroyMicromapEXT"); - vkGetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)load(context, "vkGetDeviceMicromapCompatibilityEXT"); - vkGetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)load(context, "vkGetMicromapBuildSizesEXT"); - vkWriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)load(context, "vkWriteMicromapsPropertiesEXT"); -#endif /* defined(VK_EXT_opacity_micromap) */ -#if defined(VK_EXT_pageable_device_local_memory) - vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)load(context, "vkSetDeviceMemoryPriorityEXT"); -#endif /* defined(VK_EXT_pageable_device_local_memory) */ -#if defined(VK_EXT_pipeline_properties) - vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)load(context, "vkGetPipelinePropertiesEXT"); -#endif /* defined(VK_EXT_pipeline_properties) */ -#if defined(VK_EXT_private_data) - vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)load(context, "vkCreatePrivateDataSlotEXT"); - vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)load(context, "vkDestroyPrivateDataSlotEXT"); - vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)load(context, "vkGetPrivateDataEXT"); - vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)load(context, "vkSetPrivateDataEXT"); -#endif /* defined(VK_EXT_private_data) */ -#if defined(VK_EXT_sample_locations) - vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT"); -#endif /* defined(VK_EXT_sample_locations) */ -#if defined(VK_EXT_shader_module_identifier) - vkGetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)load(context, "vkGetShaderModuleCreateInfoIdentifierEXT"); - vkGetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)load(context, "vkGetShaderModuleIdentifierEXT"); -#endif /* defined(VK_EXT_shader_module_identifier) */ -#if defined(VK_EXT_shader_object) - vkCmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)load(context, "vkCmdBindShadersEXT"); - vkCreateShadersEXT = (PFN_vkCreateShadersEXT)load(context, "vkCreateShadersEXT"); - vkDestroyShaderEXT = (PFN_vkDestroyShaderEXT)load(context, "vkDestroyShaderEXT"); - vkGetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)load(context, "vkGetShaderBinaryDataEXT"); -#endif /* defined(VK_EXT_shader_object) */ -#if defined(VK_EXT_swapchain_maintenance1) - vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)load(context, "vkReleaseSwapchainImagesEXT"); -#endif /* defined(VK_EXT_swapchain_maintenance1) */ -#if defined(VK_EXT_transform_feedback) - vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT"); - vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT"); - vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT"); - vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT"); - vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT"); - vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT"); -#endif /* defined(VK_EXT_transform_feedback) */ -#if defined(VK_EXT_validation_cache) - vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT"); - vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT"); - vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT"); - vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT"); -#endif /* defined(VK_EXT_validation_cache) */ -#if defined(VK_FUCHSIA_buffer_collection) - vkCreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)load(context, "vkCreateBufferCollectionFUCHSIA"); - vkDestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)load(context, "vkDestroyBufferCollectionFUCHSIA"); - vkGetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)load(context, "vkGetBufferCollectionPropertiesFUCHSIA"); - vkSetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)load(context, "vkSetBufferCollectionBufferConstraintsFUCHSIA"); - vkSetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)load(context, "vkSetBufferCollectionImageConstraintsFUCHSIA"); -#endif /* defined(VK_FUCHSIA_buffer_collection) */ -#if defined(VK_FUCHSIA_external_memory) - vkGetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)load(context, "vkGetMemoryZirconHandleFUCHSIA"); - vkGetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)load(context, "vkGetMemoryZirconHandlePropertiesFUCHSIA"); -#endif /* defined(VK_FUCHSIA_external_memory) */ -#if defined(VK_FUCHSIA_external_semaphore) - vkGetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)load(context, "vkGetSemaphoreZirconHandleFUCHSIA"); - vkImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)load(context, "vkImportSemaphoreZirconHandleFUCHSIA"); -#endif /* defined(VK_FUCHSIA_external_semaphore) */ -#if defined(VK_GOOGLE_display_timing) - vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE"); - vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE"); -#endif /* defined(VK_GOOGLE_display_timing) */ -#if defined(VK_HUAWEI_cluster_culling_shader) - vkCmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)load(context, "vkCmdDrawClusterHUAWEI"); - vkCmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)load(context, "vkCmdDrawClusterIndirectHUAWEI"); -#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ -#if defined(VK_HUAWEI_invocation_mask) - vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)load(context, "vkCmdBindInvocationMaskHUAWEI"); -#endif /* defined(VK_HUAWEI_invocation_mask) */ -#if defined(VK_HUAWEI_subpass_shading) - vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)load(context, "vkCmdSubpassShadingHUAWEI"); - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); -#endif /* defined(VK_HUAWEI_subpass_shading) */ -#if defined(VK_INTEL_performance_query) - vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL"); - vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)load(context, "vkCmdSetPerformanceMarkerINTEL"); - vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)load(context, "vkCmdSetPerformanceOverrideINTEL"); - vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)load(context, "vkCmdSetPerformanceStreamMarkerINTEL"); - vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)load(context, "vkGetPerformanceParameterINTEL"); - vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)load(context, "vkInitializePerformanceApiINTEL"); - vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)load(context, "vkQueueSetPerformanceConfigurationINTEL"); - vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)load(context, "vkReleasePerformanceConfigurationINTEL"); - vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)load(context, "vkUninitializePerformanceApiINTEL"); -#endif /* defined(VK_INTEL_performance_query) */ -#if defined(VK_KHR_acceleration_structure) - vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)load(context, "vkBuildAccelerationStructuresKHR"); - vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)load(context, "vkCmdBuildAccelerationStructuresIndirectKHR"); - vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)load(context, "vkCmdBuildAccelerationStructuresKHR"); - vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)load(context, "vkCmdCopyAccelerationStructureKHR"); - vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)load(context, "vkCmdCopyAccelerationStructureToMemoryKHR"); - vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)load(context, "vkCmdCopyMemoryToAccelerationStructureKHR"); - vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)load(context, "vkCmdWriteAccelerationStructuresPropertiesKHR"); - vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)load(context, "vkCopyAccelerationStructureKHR"); - vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)load(context, "vkCopyAccelerationStructureToMemoryKHR"); - vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)load(context, "vkCopyMemoryToAccelerationStructureKHR"); - vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)load(context, "vkCreateAccelerationStructureKHR"); - vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)load(context, "vkDestroyAccelerationStructureKHR"); - vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)load(context, "vkGetAccelerationStructureBuildSizesKHR"); - vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)load(context, "vkGetAccelerationStructureDeviceAddressKHR"); - vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)load(context, "vkGetDeviceAccelerationStructureCompatibilityKHR"); - vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)load(context, "vkWriteAccelerationStructuresPropertiesKHR"); -#endif /* defined(VK_KHR_acceleration_structure) */ -#if defined(VK_KHR_bind_memory2) - vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR"); - vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR"); -#endif /* defined(VK_KHR_bind_memory2) */ -#if defined(VK_KHR_buffer_device_address) - vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)load(context, "vkGetBufferDeviceAddressKHR"); - vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)load(context, "vkGetBufferOpaqueCaptureAddressKHR"); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)load(context, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"); -#endif /* defined(VK_KHR_buffer_device_address) */ -#if defined(VK_KHR_calibrated_timestamps) - vkGetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)load(context, "vkGetCalibratedTimestampsKHR"); -#endif /* defined(VK_KHR_calibrated_timestamps) */ -#if defined(VK_KHR_copy_commands2) - vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)load(context, "vkCmdBlitImage2KHR"); - vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)load(context, "vkCmdCopyBuffer2KHR"); - vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)load(context, "vkCmdCopyBufferToImage2KHR"); - vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)load(context, "vkCmdCopyImage2KHR"); - vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)load(context, "vkCmdCopyImageToBuffer2KHR"); - vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)load(context, "vkCmdResolveImage2KHR"); -#endif /* defined(VK_KHR_copy_commands2) */ -#if defined(VK_KHR_create_renderpass2) - vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR"); - vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR"); - vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR"); - vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR"); -#endif /* defined(VK_KHR_create_renderpass2) */ -#if defined(VK_KHR_deferred_host_operations) - vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)load(context, "vkCreateDeferredOperationKHR"); - vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)load(context, "vkDeferredOperationJoinKHR"); - vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)load(context, "vkDestroyDeferredOperationKHR"); - vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)load(context, "vkGetDeferredOperationMaxConcurrencyKHR"); - vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)load(context, "vkGetDeferredOperationResultKHR"); -#endif /* defined(VK_KHR_deferred_host_operations) */ -#if defined(VK_KHR_descriptor_update_template) - vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR"); - vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR"); - vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR"); -#endif /* defined(VK_KHR_descriptor_update_template) */ -#if defined(VK_KHR_device_group) - vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR"); - vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR"); - vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR"); -#endif /* defined(VK_KHR_device_group) */ -#if defined(VK_KHR_display_swapchain) - vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR"); -#endif /* defined(VK_KHR_display_swapchain) */ -#if defined(VK_KHR_draw_indirect_count) - vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR"); - vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR"); -#endif /* defined(VK_KHR_draw_indirect_count) */ -#if defined(VK_KHR_dynamic_rendering) - vkCmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)load(context, "vkCmdBeginRenderingKHR"); - vkCmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)load(context, "vkCmdEndRenderingKHR"); -#endif /* defined(VK_KHR_dynamic_rendering) */ -#if defined(VK_KHR_dynamic_rendering_local_read) - vkCmdSetRenderingAttachmentLocationsKHR = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)load(context, "vkCmdSetRenderingAttachmentLocationsKHR"); - vkCmdSetRenderingInputAttachmentIndicesKHR = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)load(context, "vkCmdSetRenderingInputAttachmentIndicesKHR"); -#endif /* defined(VK_KHR_dynamic_rendering_local_read) */ -#if defined(VK_KHR_external_fence_fd) - vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR"); - vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR"); -#endif /* defined(VK_KHR_external_fence_fd) */ -#if defined(VK_KHR_external_fence_win32) - vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR"); - vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR"); -#endif /* defined(VK_KHR_external_fence_win32) */ -#if defined(VK_KHR_external_memory_fd) - vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR"); - vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR"); -#endif /* defined(VK_KHR_external_memory_fd) */ -#if defined(VK_KHR_external_memory_win32) - vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR"); - vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR"); -#endif /* defined(VK_KHR_external_memory_win32) */ -#if defined(VK_KHR_external_semaphore_fd) - vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR"); - vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR"); -#endif /* defined(VK_KHR_external_semaphore_fd) */ -#if defined(VK_KHR_external_semaphore_win32) - vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR"); - vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR"); -#endif /* defined(VK_KHR_external_semaphore_win32) */ -#if defined(VK_KHR_fragment_shading_rate) - vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)load(context, "vkCmdSetFragmentShadingRateKHR"); -#endif /* defined(VK_KHR_fragment_shading_rate) */ -#if defined(VK_KHR_get_memory_requirements2) - vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR"); - vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR"); - vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR"); -#endif /* defined(VK_KHR_get_memory_requirements2) */ -#if defined(VK_KHR_line_rasterization) - vkCmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)load(context, "vkCmdSetLineStippleKHR"); -#endif /* defined(VK_KHR_line_rasterization) */ -#if defined(VK_KHR_maintenance1) - vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR"); -#endif /* defined(VK_KHR_maintenance1) */ -#if defined(VK_KHR_maintenance3) - vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR"); -#endif /* defined(VK_KHR_maintenance3) */ -#if defined(VK_KHR_maintenance4) - vkGetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)load(context, "vkGetDeviceBufferMemoryRequirementsKHR"); - vkGetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)load(context, "vkGetDeviceImageMemoryRequirementsKHR"); - vkGetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)load(context, "vkGetDeviceImageSparseMemoryRequirementsKHR"); -#endif /* defined(VK_KHR_maintenance4) */ -#if defined(VK_KHR_maintenance5) - vkCmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)load(context, "vkCmdBindIndexBuffer2KHR"); - vkGetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)load(context, "vkGetDeviceImageSubresourceLayoutKHR"); - vkGetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)load(context, "vkGetImageSubresourceLayout2KHR"); - vkGetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)load(context, "vkGetRenderingAreaGranularityKHR"); -#endif /* defined(VK_KHR_maintenance5) */ -#if defined(VK_KHR_maintenance6) - vkCmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)load(context, "vkCmdBindDescriptorSets2KHR"); - vkCmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)load(context, "vkCmdPushConstants2KHR"); -#endif /* defined(VK_KHR_maintenance6) */ -#if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) - vkCmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)load(context, "vkCmdPushDescriptorSet2KHR"); - vkCmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)load(context, "vkCmdPushDescriptorSetWithTemplate2KHR"); -#endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) - vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)load(context, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT"); - vkCmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)load(context, "vkCmdSetDescriptorBufferOffsets2EXT"); -#endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_KHR_map_memory2) - vkMapMemory2KHR = (PFN_vkMapMemory2KHR)load(context, "vkMapMemory2KHR"); - vkUnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)load(context, "vkUnmapMemory2KHR"); -#endif /* defined(VK_KHR_map_memory2) */ -#if defined(VK_KHR_performance_query) - vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)load(context, "vkAcquireProfilingLockKHR"); - vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)load(context, "vkReleaseProfilingLockKHR"); -#endif /* defined(VK_KHR_performance_query) */ -#if defined(VK_KHR_pipeline_executable_properties) - vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)load(context, "vkGetPipelineExecutableInternalRepresentationsKHR"); - vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR"); - vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR"); -#endif /* defined(VK_KHR_pipeline_executable_properties) */ -#if defined(VK_KHR_present_wait) - vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)load(context, "vkWaitForPresentKHR"); -#endif /* defined(VK_KHR_present_wait) */ -#if defined(VK_KHR_push_descriptor) - vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR"); -#endif /* defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) - vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)load(context, "vkCmdTraceRaysIndirect2KHR"); -#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_ray_tracing_pipeline) - vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)load(context, "vkCmdSetRayTracingPipelineStackSizeKHR"); - vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR"); - vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)load(context, "vkCmdTraceRaysKHR"); - vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)load(context, "vkCreateRayTracingPipelinesKHR"); - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)load(context, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); - vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)load(context, "vkGetRayTracingShaderGroupHandlesKHR"); - vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)load(context, "vkGetRayTracingShaderGroupStackSizeKHR"); -#endif /* defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_sampler_ycbcr_conversion) - vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR"); - vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR"); -#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ -#if defined(VK_KHR_shared_presentable_image) - vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR"); -#endif /* defined(VK_KHR_shared_presentable_image) */ -#if defined(VK_KHR_swapchain) - vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR"); - vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR"); - vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR"); - vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR"); - vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR"); -#endif /* defined(VK_KHR_swapchain) */ -#if defined(VK_KHR_synchronization2) - vkCmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)load(context, "vkCmdPipelineBarrier2KHR"); - vkCmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)load(context, "vkCmdResetEvent2KHR"); - vkCmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)load(context, "vkCmdSetEvent2KHR"); - vkCmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)load(context, "vkCmdWaitEvents2KHR"); - vkCmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)load(context, "vkCmdWriteTimestamp2KHR"); - vkQueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)load(context, "vkQueueSubmit2KHR"); -#endif /* defined(VK_KHR_synchronization2) */ -#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) - vkCmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)load(context, "vkCmdWriteBufferMarker2AMD"); -#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ -#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) - vkGetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)load(context, "vkGetQueueCheckpointData2NV"); -#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_KHR_timeline_semaphore) - vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)load(context, "vkGetSemaphoreCounterValueKHR"); - vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)load(context, "vkSignalSemaphoreKHR"); - vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)load(context, "vkWaitSemaphoresKHR"); -#endif /* defined(VK_KHR_timeline_semaphore) */ -#if defined(VK_KHR_video_decode_queue) - vkCmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)load(context, "vkCmdDecodeVideoKHR"); -#endif /* defined(VK_KHR_video_decode_queue) */ -#if defined(VK_KHR_video_encode_queue) - vkCmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)load(context, "vkCmdEncodeVideoKHR"); - vkGetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)load(context, "vkGetEncodedVideoSessionParametersKHR"); -#endif /* defined(VK_KHR_video_encode_queue) */ -#if defined(VK_KHR_video_queue) - vkBindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)load(context, "vkBindVideoSessionMemoryKHR"); - vkCmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)load(context, "vkCmdBeginVideoCodingKHR"); - vkCmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)load(context, "vkCmdControlVideoCodingKHR"); - vkCmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)load(context, "vkCmdEndVideoCodingKHR"); - vkCreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)load(context, "vkCreateVideoSessionKHR"); - vkCreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)load(context, "vkCreateVideoSessionParametersKHR"); - vkDestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)load(context, "vkDestroyVideoSessionKHR"); - vkDestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)load(context, "vkDestroyVideoSessionParametersKHR"); - vkGetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)load(context, "vkGetVideoSessionMemoryRequirementsKHR"); - vkUpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)load(context, "vkUpdateVideoSessionParametersKHR"); -#endif /* defined(VK_KHR_video_queue) */ -#if defined(VK_NVX_binary_import) - vkCmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)load(context, "vkCmdCuLaunchKernelNVX"); - vkCreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)load(context, "vkCreateCuFunctionNVX"); - vkCreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)load(context, "vkCreateCuModuleNVX"); - vkDestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)load(context, "vkDestroyCuFunctionNVX"); - vkDestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)load(context, "vkDestroyCuModuleNVX"); -#endif /* defined(VK_NVX_binary_import) */ -#if defined(VK_NVX_image_view_handle) - vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)load(context, "vkGetImageViewAddressNVX"); - vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)load(context, "vkGetImageViewHandleNVX"); -#endif /* defined(VK_NVX_image_view_handle) */ -#if defined(VK_NV_clip_space_w_scaling) - vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV"); -#endif /* defined(VK_NV_clip_space_w_scaling) */ -#if defined(VK_NV_copy_memory_indirect) - vkCmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)load(context, "vkCmdCopyMemoryIndirectNV"); - vkCmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)load(context, "vkCmdCopyMemoryToImageIndirectNV"); -#endif /* defined(VK_NV_copy_memory_indirect) */ -#if defined(VK_NV_cuda_kernel_launch) - vkCmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)load(context, "vkCmdCudaLaunchKernelNV"); - vkCreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)load(context, "vkCreateCudaFunctionNV"); - vkCreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)load(context, "vkCreateCudaModuleNV"); - vkDestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)load(context, "vkDestroyCudaFunctionNV"); - vkDestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)load(context, "vkDestroyCudaModuleNV"); - vkGetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)load(context, "vkGetCudaModuleCacheNV"); -#endif /* defined(VK_NV_cuda_kernel_launch) */ -#if defined(VK_NV_device_diagnostic_checkpoints) - vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV"); - vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV"); -#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_NV_device_generated_commands) - vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)load(context, "vkCmdBindPipelineShaderGroupNV"); - vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)load(context, "vkCmdExecuteGeneratedCommandsNV"); - vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)load(context, "vkCmdPreprocessGeneratedCommandsNV"); - vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)load(context, "vkCreateIndirectCommandsLayoutNV"); - vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV"); - vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV"); -#endif /* defined(VK_NV_device_generated_commands) */ -#if defined(VK_NV_device_generated_commands_compute) - vkCmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)load(context, "vkCmdUpdatePipelineIndirectBufferNV"); - vkGetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)load(context, "vkGetPipelineIndirectDeviceAddressNV"); - vkGetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)load(context, "vkGetPipelineIndirectMemoryRequirementsNV"); -#endif /* defined(VK_NV_device_generated_commands_compute) */ -#if defined(VK_NV_external_memory_rdma) - vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)load(context, "vkGetMemoryRemoteAddressNV"); -#endif /* defined(VK_NV_external_memory_rdma) */ -#if defined(VK_NV_external_memory_win32) - vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV"); -#endif /* defined(VK_NV_external_memory_win32) */ -#if defined(VK_NV_fragment_shading_rate_enums) - vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)load(context, "vkCmdSetFragmentShadingRateEnumNV"); -#endif /* defined(VK_NV_fragment_shading_rate_enums) */ -#if defined(VK_NV_low_latency2) - vkGetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)load(context, "vkGetLatencyTimingsNV"); - vkLatencySleepNV = (PFN_vkLatencySleepNV)load(context, "vkLatencySleepNV"); - vkQueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)load(context, "vkQueueNotifyOutOfBandNV"); - vkSetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)load(context, "vkSetLatencyMarkerNV"); - vkSetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)load(context, "vkSetLatencySleepModeNV"); -#endif /* defined(VK_NV_low_latency2) */ -#if defined(VK_NV_memory_decompression) - vkCmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)load(context, "vkCmdDecompressMemoryIndirectCountNV"); - vkCmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)load(context, "vkCmdDecompressMemoryNV"); -#endif /* defined(VK_NV_memory_decompression) */ -#if defined(VK_NV_mesh_shader) - vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV"); - vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV"); - vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV"); -#endif /* defined(VK_NV_mesh_shader) */ -#if defined(VK_NV_optical_flow) - vkBindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)load(context, "vkBindOpticalFlowSessionImageNV"); - vkCmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)load(context, "vkCmdOpticalFlowExecuteNV"); - vkCreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)load(context, "vkCreateOpticalFlowSessionNV"); - vkDestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)load(context, "vkDestroyOpticalFlowSessionNV"); -#endif /* defined(VK_NV_optical_flow) */ -#if defined(VK_NV_ray_tracing) - vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV"); - vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV"); - vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV"); - vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV"); - vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV"); - vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV"); - vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV"); - vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV"); - vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV"); - vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV"); - vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV"); - vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV"); -#endif /* defined(VK_NV_ray_tracing) */ -#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 - vkCmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)load(context, "vkCmdSetExclusiveScissorEnableNV"); -#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ -#if defined(VK_NV_scissor_exclusive) - vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV"); -#endif /* defined(VK_NV_scissor_exclusive) */ -#if defined(VK_NV_shading_rate_image) - vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV"); - vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV"); - vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV"); -#endif /* defined(VK_NV_shading_rate_image) */ -#if defined(VK_QCOM_tile_properties) - vkGetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)load(context, "vkGetDynamicRenderingTilePropertiesQCOM"); - vkGetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)load(context, "vkGetFramebufferTilePropertiesQCOM"); -#endif /* defined(VK_QCOM_tile_properties) */ -#if defined(VK_QNX_external_memory_screen_buffer) - vkGetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)load(context, "vkGetScreenBufferPropertiesQNX"); -#endif /* defined(VK_QNX_external_memory_screen_buffer) */ -#if defined(VK_VALVE_descriptor_set_host_mapping) - vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE"); - vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); -#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ -#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) - vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)load(context, "vkCmdBindVertexBuffers2EXT"); - vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)load(context, "vkCmdSetCullModeEXT"); - vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)load(context, "vkCmdSetDepthBoundsTestEnableEXT"); - vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)load(context, "vkCmdSetDepthCompareOpEXT"); - vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)load(context, "vkCmdSetDepthTestEnableEXT"); - vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)load(context, "vkCmdSetDepthWriteEnableEXT"); - vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)load(context, "vkCmdSetFrontFaceEXT"); - vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)load(context, "vkCmdSetPrimitiveTopologyEXT"); - vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)load(context, "vkCmdSetScissorWithCountEXT"); - vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)load(context, "vkCmdSetStencilOpEXT"); - vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)load(context, "vkCmdSetStencilTestEnableEXT"); - vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)load(context, "vkCmdSetViewportWithCountEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) - vkCmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)load(context, "vkCmdSetDepthBiasEnableEXT"); - vkCmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)load(context, "vkCmdSetLogicOpEXT"); - vkCmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)load(context, "vkCmdSetPatchControlPointsEXT"); - vkCmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)load(context, "vkCmdSetPrimitiveRestartEnableEXT"); - vkCmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)load(context, "vkCmdSetRasterizerDiscardEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) - vkCmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)load(context, "vkCmdSetAlphaToCoverageEnableEXT"); - vkCmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)load(context, "vkCmdSetAlphaToOneEnableEXT"); - vkCmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)load(context, "vkCmdSetColorBlendEnableEXT"); - vkCmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)load(context, "vkCmdSetColorBlendEquationEXT"); - vkCmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)load(context, "vkCmdSetColorWriteMaskEXT"); - vkCmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)load(context, "vkCmdSetDepthClampEnableEXT"); - vkCmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)load(context, "vkCmdSetLogicOpEnableEXT"); - vkCmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)load(context, "vkCmdSetPolygonModeEXT"); - vkCmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)load(context, "vkCmdSetRasterizationSamplesEXT"); - vkCmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)load(context, "vkCmdSetSampleMaskEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) - vkCmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)load(context, "vkCmdSetTessellationDomainOriginEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) - vkCmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)load(context, "vkCmdSetRasterizationStreamEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) - vkCmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)load(context, "vkCmdSetConservativeRasterizationModeEXT"); - vkCmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)load(context, "vkCmdSetExtraPrimitiveOverestimationSizeEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) - vkCmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)load(context, "vkCmdSetDepthClipEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) - vkCmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)load(context, "vkCmdSetSampleLocationsEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) - vkCmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)load(context, "vkCmdSetColorBlendAdvancedEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) - vkCmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)load(context, "vkCmdSetProvokingVertexModeEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) - vkCmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)load(context, "vkCmdSetLineRasterizationModeEXT"); - vkCmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)load(context, "vkCmdSetLineStippleEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) - vkCmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)load(context, "vkCmdSetDepthClipNegativeOneToOneEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ -#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)) - vkCmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)load(context, "vkCmdSetViewportWScalingEnableNV"); -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) - vkCmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)load(context, "vkCmdSetViewportSwizzleNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ -#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)) - vkCmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)load(context, "vkCmdSetCoverageToColorEnableNV"); - vkCmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)load(context, "vkCmdSetCoverageToColorLocationNV"); -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) - vkCmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)load(context, "vkCmdSetCoverageModulationModeNV"); - vkCmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)load(context, "vkCmdSetCoverageModulationTableEnableNV"); - vkCmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)load(context, "vkCmdSetCoverageModulationTableNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) - vkCmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)load(context, "vkCmdSetShadingRateImageEnableNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) - vkCmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)load(context, "vkCmdSetRepresentativeFragmentTestEnableNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) - vkCmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)load(context, "vkCmdSetCoverageReductionModeNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ -#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) - vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT"); -#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) - vkGetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)load(context, "vkGetImageSubresourceLayout2EXT"); -#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ -#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) - vkCmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)load(context, "vkCmdSetVertexInputEXT"); -#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) - vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR"); -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR"); - vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR"); -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR"); -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ - /* VOLK_GENERATE_LOAD_DEVICE */ -} - -static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*)) -{ - /* VOLK_GENERATE_LOAD_DEVICE_TABLE */ -#if defined(VK_VERSION_1_0) - table->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers"); - table->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets"); - table->vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory"); - table->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer"); - table->vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory"); - table->vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory"); - table->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery"); - table->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass"); - table->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets"); - table->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer"); - table->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline"); - table->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers"); - table->vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage"); - table->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments"); - table->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage"); - table->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage"); - table->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer"); - table->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage"); - table->vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage"); - table->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer"); - table->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults"); - table->vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch"); - table->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect"); - table->vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw"); - table->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed"); - table->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect"); - table->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect"); - table->vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery"); - table->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass"); - table->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands"); - table->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer"); - table->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass"); - table->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier"); - table->vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants"); - table->vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent"); - table->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool"); - table->vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage"); - table->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants"); - table->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias"); - table->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds"); - table->vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent"); - table->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth"); - table->vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor"); - table->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask"); - table->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference"); - table->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask"); - table->vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport"); - table->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer"); - table->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents"); - table->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp"); - table->vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer"); - table->vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView"); - table->vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool"); - table->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines"); - table->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool"); - table->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout"); - table->vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent"); - table->vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence"); - table->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer"); - table->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines"); - table->vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage"); - table->vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView"); - table->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache"); - table->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout"); - table->vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool"); - table->vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass"); - table->vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler"); - table->vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore"); - table->vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule"); - table->vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer"); - table->vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView"); - table->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool"); - table->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool"); - table->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout"); - table->vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice"); - table->vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent"); - table->vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence"); - table->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer"); - table->vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage"); - table->vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView"); - table->vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline"); - table->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache"); - table->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout"); - table->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool"); - table->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass"); - table->vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler"); - table->vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore"); - table->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule"); - table->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle"); - table->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer"); - table->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges"); - table->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers"); - table->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets"); - table->vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory"); - table->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements"); - table->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment"); - table->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue"); - table->vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus"); - table->vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus"); - table->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements"); - table->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements"); - table->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout"); - table->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData"); - table->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults"); - table->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity"); - table->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges"); - table->vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory"); - table->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches"); - table->vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse"); - table->vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit"); - table->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle"); - table->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer"); - table->vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool"); - table->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool"); - table->vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent"); - table->vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences"); - table->vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent"); - table->vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory"); - table->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets"); - table->vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences"); -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) - table->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2"); - table->vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2"); - table->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase"); - table->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask"); - table->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate"); - table->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion"); - table->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate"); - table->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion"); - table->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2"); - table->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport"); - table->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures"); - table->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2"); - table->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2"); - table->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2"); - table->vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool"); - table->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate"); -#endif /* defined(VK_VERSION_1_1) */ -#if defined(VK_VERSION_1_2) - table->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)load(context, "vkCmdBeginRenderPass2"); - table->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)load(context, "vkCmdDrawIndexedIndirectCount"); - table->vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)load(context, "vkCmdDrawIndirectCount"); - table->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)load(context, "vkCmdEndRenderPass2"); - table->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)load(context, "vkCmdNextSubpass2"); - table->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)load(context, "vkCreateRenderPass2"); - table->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)load(context, "vkGetBufferDeviceAddress"); - table->vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)load(context, "vkGetBufferOpaqueCaptureAddress"); - table->vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)load(context, "vkGetDeviceMemoryOpaqueCaptureAddress"); - table->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)load(context, "vkGetSemaphoreCounterValue"); - table->vkResetQueryPool = (PFN_vkResetQueryPool)load(context, "vkResetQueryPool"); - table->vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore"); - table->vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores"); -#endif /* defined(VK_VERSION_1_2) */ -#if defined(VK_VERSION_1_3) - table->vkCmdBeginRendering = (PFN_vkCmdBeginRendering)load(context, "vkCmdBeginRendering"); - table->vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)load(context, "vkCmdBindVertexBuffers2"); - table->vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)load(context, "vkCmdBlitImage2"); - table->vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)load(context, "vkCmdCopyBuffer2"); - table->vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)load(context, "vkCmdCopyBufferToImage2"); - table->vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)load(context, "vkCmdCopyImage2"); - table->vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)load(context, "vkCmdCopyImageToBuffer2"); - table->vkCmdEndRendering = (PFN_vkCmdEndRendering)load(context, "vkCmdEndRendering"); - table->vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)load(context, "vkCmdPipelineBarrier2"); - table->vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)load(context, "vkCmdResetEvent2"); - table->vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)load(context, "vkCmdResolveImage2"); - table->vkCmdSetCullMode = (PFN_vkCmdSetCullMode)load(context, "vkCmdSetCullMode"); - table->vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)load(context, "vkCmdSetDepthBiasEnable"); - table->vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)load(context, "vkCmdSetDepthBoundsTestEnable"); - table->vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)load(context, "vkCmdSetDepthCompareOp"); - table->vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)load(context, "vkCmdSetDepthTestEnable"); - table->vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)load(context, "vkCmdSetDepthWriteEnable"); - table->vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)load(context, "vkCmdSetEvent2"); - table->vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)load(context, "vkCmdSetFrontFace"); - table->vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)load(context, "vkCmdSetPrimitiveRestartEnable"); - table->vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)load(context, "vkCmdSetPrimitiveTopology"); - table->vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)load(context, "vkCmdSetRasterizerDiscardEnable"); - table->vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)load(context, "vkCmdSetScissorWithCount"); - table->vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)load(context, "vkCmdSetStencilOp"); - table->vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)load(context, "vkCmdSetStencilTestEnable"); - table->vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)load(context, "vkCmdSetViewportWithCount"); - table->vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)load(context, "vkCmdWaitEvents2"); - table->vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)load(context, "vkCmdWriteTimestamp2"); - table->vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)load(context, "vkCreatePrivateDataSlot"); - table->vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)load(context, "vkDestroyPrivateDataSlot"); - table->vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)load(context, "vkGetDeviceBufferMemoryRequirements"); - table->vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)load(context, "vkGetDeviceImageMemoryRequirements"); - table->vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)load(context, "vkGetDeviceImageSparseMemoryRequirements"); - table->vkGetPrivateData = (PFN_vkGetPrivateData)load(context, "vkGetPrivateData"); - table->vkQueueSubmit2 = (PFN_vkQueueSubmit2)load(context, "vkQueueSubmit2"); - table->vkSetPrivateData = (PFN_vkSetPrivateData)load(context, "vkSetPrivateData"); -#endif /* defined(VK_VERSION_1_3) */ -#if defined(VK_AMDX_shader_enqueue) - table->vkCmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)load(context, "vkCmdDispatchGraphAMDX"); - table->vkCmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)load(context, "vkCmdDispatchGraphIndirectAMDX"); - table->vkCmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)load(context, "vkCmdDispatchGraphIndirectCountAMDX"); - table->vkCmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)load(context, "vkCmdInitializeGraphScratchMemoryAMDX"); - table->vkCreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)load(context, "vkCreateExecutionGraphPipelinesAMDX"); - table->vkGetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)load(context, "vkGetExecutionGraphPipelineNodeIndexAMDX"); - table->vkGetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)load(context, "vkGetExecutionGraphPipelineScratchSizeAMDX"); -#endif /* defined(VK_AMDX_shader_enqueue) */ -#if defined(VK_AMD_buffer_marker) - table->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD"); -#endif /* defined(VK_AMD_buffer_marker) */ -#if defined(VK_AMD_display_native_hdr) - table->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)load(context, "vkSetLocalDimmingAMD"); -#endif /* defined(VK_AMD_display_native_hdr) */ -#if defined(VK_AMD_draw_indirect_count) - table->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD"); - table->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD"); -#endif /* defined(VK_AMD_draw_indirect_count) */ -#if defined(VK_AMD_shader_info) - table->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD"); -#endif /* defined(VK_AMD_shader_info) */ -#if defined(VK_ANDROID_external_memory_android_hardware_buffer) - table->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID"); - table->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID"); -#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ -#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) - table->vkCmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)load(context, "vkCmdSetAttachmentFeedbackLoopEnableEXT"); -#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ -#if defined(VK_EXT_buffer_device_address) - table->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)load(context, "vkGetBufferDeviceAddressEXT"); -#endif /* defined(VK_EXT_buffer_device_address) */ -#if defined(VK_EXT_calibrated_timestamps) - table->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT"); -#endif /* defined(VK_EXT_calibrated_timestamps) */ -#if defined(VK_EXT_color_write_enable) - table->vkCmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)load(context, "vkCmdSetColorWriteEnableEXT"); -#endif /* defined(VK_EXT_color_write_enable) */ -#if defined(VK_EXT_conditional_rendering) - table->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT"); - table->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT"); -#endif /* defined(VK_EXT_conditional_rendering) */ -#if defined(VK_EXT_debug_marker) - table->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT"); - table->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT"); - table->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT"); - table->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT"); - table->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT"); -#endif /* defined(VK_EXT_debug_marker) */ -#if defined(VK_EXT_depth_bias_control) - table->vkCmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)load(context, "vkCmdSetDepthBias2EXT"); -#endif /* defined(VK_EXT_depth_bias_control) */ -#if defined(VK_EXT_descriptor_buffer) - table->vkCmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)load(context, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"); - table->vkCmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)load(context, "vkCmdBindDescriptorBuffersEXT"); - table->vkCmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)load(context, "vkCmdSetDescriptorBufferOffsetsEXT"); - table->vkGetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)load(context, "vkGetBufferOpaqueCaptureDescriptorDataEXT"); - table->vkGetDescriptorEXT = (PFN_vkGetDescriptorEXT)load(context, "vkGetDescriptorEXT"); - table->vkGetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)load(context, "vkGetDescriptorSetLayoutBindingOffsetEXT"); - table->vkGetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)load(context, "vkGetDescriptorSetLayoutSizeEXT"); - table->vkGetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageOpaqueCaptureDescriptorDataEXT"); - table->vkGetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageViewOpaqueCaptureDescriptorDataEXT"); - table->vkGetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)load(context, "vkGetSamplerOpaqueCaptureDescriptorDataEXT"); -#endif /* defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) - table->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)load(context, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"); -#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ -#if defined(VK_EXT_device_fault) - table->vkGetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)load(context, "vkGetDeviceFaultInfoEXT"); -#endif /* defined(VK_EXT_device_fault) */ -#if defined(VK_EXT_discard_rectangles) - table->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT"); -#endif /* defined(VK_EXT_discard_rectangles) */ -#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 - table->vkCmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)load(context, "vkCmdSetDiscardRectangleEnableEXT"); - table->vkCmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)load(context, "vkCmdSetDiscardRectangleModeEXT"); -#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ -#if defined(VK_EXT_display_control) - table->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT"); - table->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT"); - table->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT"); - table->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT"); -#endif /* defined(VK_EXT_display_control) */ -#if defined(VK_EXT_external_memory_host) - table->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT"); -#endif /* defined(VK_EXT_external_memory_host) */ -#if defined(VK_EXT_full_screen_exclusive) - table->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)load(context, "vkAcquireFullScreenExclusiveModeEXT"); - table->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)load(context, "vkReleaseFullScreenExclusiveModeEXT"); -#endif /* defined(VK_EXT_full_screen_exclusive) */ -#if defined(VK_EXT_hdr_metadata) - table->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT"); -#endif /* defined(VK_EXT_hdr_metadata) */ -#if defined(VK_EXT_host_image_copy) - table->vkCopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)load(context, "vkCopyImageToImageEXT"); - table->vkCopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)load(context, "vkCopyImageToMemoryEXT"); - table->vkCopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)load(context, "vkCopyMemoryToImageEXT"); - table->vkTransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)load(context, "vkTransitionImageLayoutEXT"); -#endif /* defined(VK_EXT_host_image_copy) */ -#if defined(VK_EXT_host_query_reset) - table->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT"); -#endif /* defined(VK_EXT_host_query_reset) */ -#if defined(VK_EXT_image_drm_format_modifier) - table->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT"); -#endif /* defined(VK_EXT_image_drm_format_modifier) */ -#if defined(VK_EXT_line_rasterization) - table->vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)load(context, "vkCmdSetLineStippleEXT"); -#endif /* defined(VK_EXT_line_rasterization) */ -#if defined(VK_EXT_mesh_shader) - table->vkCmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)load(context, "vkCmdDrawMeshTasksEXT"); - table->vkCmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)load(context, "vkCmdDrawMeshTasksIndirectCountEXT"); - table->vkCmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)load(context, "vkCmdDrawMeshTasksIndirectEXT"); -#endif /* defined(VK_EXT_mesh_shader) */ -#if defined(VK_EXT_metal_objects) - table->vkExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)load(context, "vkExportMetalObjectsEXT"); -#endif /* defined(VK_EXT_metal_objects) */ -#if defined(VK_EXT_multi_draw) - table->vkCmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)load(context, "vkCmdDrawMultiEXT"); - table->vkCmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)load(context, "vkCmdDrawMultiIndexedEXT"); -#endif /* defined(VK_EXT_multi_draw) */ -#if defined(VK_EXT_opacity_micromap) - table->vkBuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)load(context, "vkBuildMicromapsEXT"); - table->vkCmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)load(context, "vkCmdBuildMicromapsEXT"); - table->vkCmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)load(context, "vkCmdCopyMemoryToMicromapEXT"); - table->vkCmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)load(context, "vkCmdCopyMicromapEXT"); - table->vkCmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)load(context, "vkCmdCopyMicromapToMemoryEXT"); - table->vkCmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)load(context, "vkCmdWriteMicromapsPropertiesEXT"); - table->vkCopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)load(context, "vkCopyMemoryToMicromapEXT"); - table->vkCopyMicromapEXT = (PFN_vkCopyMicromapEXT)load(context, "vkCopyMicromapEXT"); - table->vkCopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)load(context, "vkCopyMicromapToMemoryEXT"); - table->vkCreateMicromapEXT = (PFN_vkCreateMicromapEXT)load(context, "vkCreateMicromapEXT"); - table->vkDestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)load(context, "vkDestroyMicromapEXT"); - table->vkGetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)load(context, "vkGetDeviceMicromapCompatibilityEXT"); - table->vkGetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)load(context, "vkGetMicromapBuildSizesEXT"); - table->vkWriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)load(context, "vkWriteMicromapsPropertiesEXT"); -#endif /* defined(VK_EXT_opacity_micromap) */ -#if defined(VK_EXT_pageable_device_local_memory) - table->vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)load(context, "vkSetDeviceMemoryPriorityEXT"); -#endif /* defined(VK_EXT_pageable_device_local_memory) */ -#if defined(VK_EXT_pipeline_properties) - table->vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)load(context, "vkGetPipelinePropertiesEXT"); -#endif /* defined(VK_EXT_pipeline_properties) */ -#if defined(VK_EXT_private_data) - table->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)load(context, "vkCreatePrivateDataSlotEXT"); - table->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)load(context, "vkDestroyPrivateDataSlotEXT"); - table->vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)load(context, "vkGetPrivateDataEXT"); - table->vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)load(context, "vkSetPrivateDataEXT"); -#endif /* defined(VK_EXT_private_data) */ -#if defined(VK_EXT_sample_locations) - table->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT"); -#endif /* defined(VK_EXT_sample_locations) */ -#if defined(VK_EXT_shader_module_identifier) - table->vkGetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)load(context, "vkGetShaderModuleCreateInfoIdentifierEXT"); - table->vkGetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)load(context, "vkGetShaderModuleIdentifierEXT"); -#endif /* defined(VK_EXT_shader_module_identifier) */ -#if defined(VK_EXT_shader_object) - table->vkCmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)load(context, "vkCmdBindShadersEXT"); - table->vkCreateShadersEXT = (PFN_vkCreateShadersEXT)load(context, "vkCreateShadersEXT"); - table->vkDestroyShaderEXT = (PFN_vkDestroyShaderEXT)load(context, "vkDestroyShaderEXT"); - table->vkGetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)load(context, "vkGetShaderBinaryDataEXT"); -#endif /* defined(VK_EXT_shader_object) */ -#if defined(VK_EXT_swapchain_maintenance1) - table->vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)load(context, "vkReleaseSwapchainImagesEXT"); -#endif /* defined(VK_EXT_swapchain_maintenance1) */ -#if defined(VK_EXT_transform_feedback) - table->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT"); - table->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT"); - table->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT"); - table->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT"); - table->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT"); - table->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT"); -#endif /* defined(VK_EXT_transform_feedback) */ -#if defined(VK_EXT_validation_cache) - table->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT"); - table->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT"); - table->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT"); - table->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT"); -#endif /* defined(VK_EXT_validation_cache) */ -#if defined(VK_FUCHSIA_buffer_collection) - table->vkCreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)load(context, "vkCreateBufferCollectionFUCHSIA"); - table->vkDestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)load(context, "vkDestroyBufferCollectionFUCHSIA"); - table->vkGetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)load(context, "vkGetBufferCollectionPropertiesFUCHSIA"); - table->vkSetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)load(context, "vkSetBufferCollectionBufferConstraintsFUCHSIA"); - table->vkSetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)load(context, "vkSetBufferCollectionImageConstraintsFUCHSIA"); -#endif /* defined(VK_FUCHSIA_buffer_collection) */ -#if defined(VK_FUCHSIA_external_memory) - table->vkGetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)load(context, "vkGetMemoryZirconHandleFUCHSIA"); - table->vkGetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)load(context, "vkGetMemoryZirconHandlePropertiesFUCHSIA"); -#endif /* defined(VK_FUCHSIA_external_memory) */ -#if defined(VK_FUCHSIA_external_semaphore) - table->vkGetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)load(context, "vkGetSemaphoreZirconHandleFUCHSIA"); - table->vkImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)load(context, "vkImportSemaphoreZirconHandleFUCHSIA"); -#endif /* defined(VK_FUCHSIA_external_semaphore) */ -#if defined(VK_GOOGLE_display_timing) - table->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE"); - table->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE"); -#endif /* defined(VK_GOOGLE_display_timing) */ -#if defined(VK_HUAWEI_cluster_culling_shader) - table->vkCmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)load(context, "vkCmdDrawClusterHUAWEI"); - table->vkCmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)load(context, "vkCmdDrawClusterIndirectHUAWEI"); -#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ -#if defined(VK_HUAWEI_invocation_mask) - table->vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)load(context, "vkCmdBindInvocationMaskHUAWEI"); -#endif /* defined(VK_HUAWEI_invocation_mask) */ -#if defined(VK_HUAWEI_subpass_shading) - table->vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)load(context, "vkCmdSubpassShadingHUAWEI"); - table->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); -#endif /* defined(VK_HUAWEI_subpass_shading) */ -#if defined(VK_INTEL_performance_query) - table->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL"); - table->vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)load(context, "vkCmdSetPerformanceMarkerINTEL"); - table->vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)load(context, "vkCmdSetPerformanceOverrideINTEL"); - table->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)load(context, "vkCmdSetPerformanceStreamMarkerINTEL"); - table->vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)load(context, "vkGetPerformanceParameterINTEL"); - table->vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)load(context, "vkInitializePerformanceApiINTEL"); - table->vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)load(context, "vkQueueSetPerformanceConfigurationINTEL"); - table->vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)load(context, "vkReleasePerformanceConfigurationINTEL"); - table->vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)load(context, "vkUninitializePerformanceApiINTEL"); -#endif /* defined(VK_INTEL_performance_query) */ -#if defined(VK_KHR_acceleration_structure) - table->vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)load(context, "vkBuildAccelerationStructuresKHR"); - table->vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)load(context, "vkCmdBuildAccelerationStructuresIndirectKHR"); - table->vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)load(context, "vkCmdBuildAccelerationStructuresKHR"); - table->vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)load(context, "vkCmdCopyAccelerationStructureKHR"); - table->vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)load(context, "vkCmdCopyAccelerationStructureToMemoryKHR"); - table->vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)load(context, "vkCmdCopyMemoryToAccelerationStructureKHR"); - table->vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)load(context, "vkCmdWriteAccelerationStructuresPropertiesKHR"); - table->vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)load(context, "vkCopyAccelerationStructureKHR"); - table->vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)load(context, "vkCopyAccelerationStructureToMemoryKHR"); - table->vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)load(context, "vkCopyMemoryToAccelerationStructureKHR"); - table->vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)load(context, "vkCreateAccelerationStructureKHR"); - table->vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)load(context, "vkDestroyAccelerationStructureKHR"); - table->vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)load(context, "vkGetAccelerationStructureBuildSizesKHR"); - table->vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)load(context, "vkGetAccelerationStructureDeviceAddressKHR"); - table->vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)load(context, "vkGetDeviceAccelerationStructureCompatibilityKHR"); - table->vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)load(context, "vkWriteAccelerationStructuresPropertiesKHR"); -#endif /* defined(VK_KHR_acceleration_structure) */ -#if defined(VK_KHR_bind_memory2) - table->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR"); - table->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR"); -#endif /* defined(VK_KHR_bind_memory2) */ -#if defined(VK_KHR_buffer_device_address) - table->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)load(context, "vkGetBufferDeviceAddressKHR"); - table->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)load(context, "vkGetBufferOpaqueCaptureAddressKHR"); - table->vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)load(context, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"); -#endif /* defined(VK_KHR_buffer_device_address) */ -#if defined(VK_KHR_calibrated_timestamps) - table->vkGetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)load(context, "vkGetCalibratedTimestampsKHR"); -#endif /* defined(VK_KHR_calibrated_timestamps) */ -#if defined(VK_KHR_copy_commands2) - table->vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)load(context, "vkCmdBlitImage2KHR"); - table->vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)load(context, "vkCmdCopyBuffer2KHR"); - table->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)load(context, "vkCmdCopyBufferToImage2KHR"); - table->vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)load(context, "vkCmdCopyImage2KHR"); - table->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)load(context, "vkCmdCopyImageToBuffer2KHR"); - table->vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)load(context, "vkCmdResolveImage2KHR"); -#endif /* defined(VK_KHR_copy_commands2) */ -#if defined(VK_KHR_create_renderpass2) - table->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR"); - table->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR"); - table->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR"); - table->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR"); -#endif /* defined(VK_KHR_create_renderpass2) */ -#if defined(VK_KHR_deferred_host_operations) - table->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)load(context, "vkCreateDeferredOperationKHR"); - table->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)load(context, "vkDeferredOperationJoinKHR"); - table->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)load(context, "vkDestroyDeferredOperationKHR"); - table->vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)load(context, "vkGetDeferredOperationMaxConcurrencyKHR"); - table->vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)load(context, "vkGetDeferredOperationResultKHR"); -#endif /* defined(VK_KHR_deferred_host_operations) */ -#if defined(VK_KHR_descriptor_update_template) - table->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR"); - table->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR"); - table->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR"); -#endif /* defined(VK_KHR_descriptor_update_template) */ -#if defined(VK_KHR_device_group) - table->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR"); - table->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR"); - table->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR"); -#endif /* defined(VK_KHR_device_group) */ -#if defined(VK_KHR_display_swapchain) - table->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR"); -#endif /* defined(VK_KHR_display_swapchain) */ -#if defined(VK_KHR_draw_indirect_count) - table->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR"); - table->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR"); -#endif /* defined(VK_KHR_draw_indirect_count) */ -#if defined(VK_KHR_dynamic_rendering) - table->vkCmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)load(context, "vkCmdBeginRenderingKHR"); - table->vkCmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)load(context, "vkCmdEndRenderingKHR"); -#endif /* defined(VK_KHR_dynamic_rendering) */ -#if defined(VK_KHR_dynamic_rendering_local_read) - table->vkCmdSetRenderingAttachmentLocationsKHR = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)load(context, "vkCmdSetRenderingAttachmentLocationsKHR"); - table->vkCmdSetRenderingInputAttachmentIndicesKHR = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)load(context, "vkCmdSetRenderingInputAttachmentIndicesKHR"); -#endif /* defined(VK_KHR_dynamic_rendering_local_read) */ -#if defined(VK_KHR_external_fence_fd) - table->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR"); - table->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR"); -#endif /* defined(VK_KHR_external_fence_fd) */ -#if defined(VK_KHR_external_fence_win32) - table->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR"); - table->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR"); -#endif /* defined(VK_KHR_external_fence_win32) */ -#if defined(VK_KHR_external_memory_fd) - table->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR"); - table->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR"); -#endif /* defined(VK_KHR_external_memory_fd) */ -#if defined(VK_KHR_external_memory_win32) - table->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR"); - table->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR"); -#endif /* defined(VK_KHR_external_memory_win32) */ -#if defined(VK_KHR_external_semaphore_fd) - table->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR"); - table->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR"); -#endif /* defined(VK_KHR_external_semaphore_fd) */ -#if defined(VK_KHR_external_semaphore_win32) - table->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR"); - table->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR"); -#endif /* defined(VK_KHR_external_semaphore_win32) */ -#if defined(VK_KHR_fragment_shading_rate) - table->vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)load(context, "vkCmdSetFragmentShadingRateKHR"); -#endif /* defined(VK_KHR_fragment_shading_rate) */ -#if defined(VK_KHR_get_memory_requirements2) - table->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR"); - table->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR"); - table->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR"); -#endif /* defined(VK_KHR_get_memory_requirements2) */ -#if defined(VK_KHR_line_rasterization) - table->vkCmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)load(context, "vkCmdSetLineStippleKHR"); -#endif /* defined(VK_KHR_line_rasterization) */ -#if defined(VK_KHR_maintenance1) - table->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR"); -#endif /* defined(VK_KHR_maintenance1) */ -#if defined(VK_KHR_maintenance3) - table->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR"); -#endif /* defined(VK_KHR_maintenance3) */ -#if defined(VK_KHR_maintenance4) - table->vkGetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)load(context, "vkGetDeviceBufferMemoryRequirementsKHR"); - table->vkGetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)load(context, "vkGetDeviceImageMemoryRequirementsKHR"); - table->vkGetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)load(context, "vkGetDeviceImageSparseMemoryRequirementsKHR"); -#endif /* defined(VK_KHR_maintenance4) */ -#if defined(VK_KHR_maintenance5) - table->vkCmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)load(context, "vkCmdBindIndexBuffer2KHR"); - table->vkGetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)load(context, "vkGetDeviceImageSubresourceLayoutKHR"); - table->vkGetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)load(context, "vkGetImageSubresourceLayout2KHR"); - table->vkGetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)load(context, "vkGetRenderingAreaGranularityKHR"); -#endif /* defined(VK_KHR_maintenance5) */ -#if defined(VK_KHR_maintenance6) - table->vkCmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)load(context, "vkCmdBindDescriptorSets2KHR"); - table->vkCmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)load(context, "vkCmdPushConstants2KHR"); -#endif /* defined(VK_KHR_maintenance6) */ -#if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) - table->vkCmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)load(context, "vkCmdPushDescriptorSet2KHR"); - table->vkCmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)load(context, "vkCmdPushDescriptorSetWithTemplate2KHR"); -#endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) - table->vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)load(context, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT"); - table->vkCmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)load(context, "vkCmdSetDescriptorBufferOffsets2EXT"); -#endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_KHR_map_memory2) - table->vkMapMemory2KHR = (PFN_vkMapMemory2KHR)load(context, "vkMapMemory2KHR"); - table->vkUnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)load(context, "vkUnmapMemory2KHR"); -#endif /* defined(VK_KHR_map_memory2) */ -#if defined(VK_KHR_performance_query) - table->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)load(context, "vkAcquireProfilingLockKHR"); - table->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)load(context, "vkReleaseProfilingLockKHR"); -#endif /* defined(VK_KHR_performance_query) */ -#if defined(VK_KHR_pipeline_executable_properties) - table->vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)load(context, "vkGetPipelineExecutableInternalRepresentationsKHR"); - table->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR"); - table->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR"); -#endif /* defined(VK_KHR_pipeline_executable_properties) */ -#if defined(VK_KHR_present_wait) - table->vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)load(context, "vkWaitForPresentKHR"); -#endif /* defined(VK_KHR_present_wait) */ -#if defined(VK_KHR_push_descriptor) - table->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR"); -#endif /* defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) - table->vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)load(context, "vkCmdTraceRaysIndirect2KHR"); -#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_ray_tracing_pipeline) - table->vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)load(context, "vkCmdSetRayTracingPipelineStackSizeKHR"); - table->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR"); - table->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)load(context, "vkCmdTraceRaysKHR"); - table->vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)load(context, "vkCreateRayTracingPipelinesKHR"); - table->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)load(context, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); - table->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)load(context, "vkGetRayTracingShaderGroupHandlesKHR"); - table->vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)load(context, "vkGetRayTracingShaderGroupStackSizeKHR"); -#endif /* defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_sampler_ycbcr_conversion) - table->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR"); - table->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR"); -#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ -#if defined(VK_KHR_shared_presentable_image) - table->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR"); -#endif /* defined(VK_KHR_shared_presentable_image) */ -#if defined(VK_KHR_swapchain) - table->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR"); - table->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR"); - table->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR"); - table->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR"); - table->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR"); -#endif /* defined(VK_KHR_swapchain) */ -#if defined(VK_KHR_synchronization2) - table->vkCmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)load(context, "vkCmdPipelineBarrier2KHR"); - table->vkCmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)load(context, "vkCmdResetEvent2KHR"); - table->vkCmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)load(context, "vkCmdSetEvent2KHR"); - table->vkCmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)load(context, "vkCmdWaitEvents2KHR"); - table->vkCmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)load(context, "vkCmdWriteTimestamp2KHR"); - table->vkQueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)load(context, "vkQueueSubmit2KHR"); -#endif /* defined(VK_KHR_synchronization2) */ -#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) - table->vkCmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)load(context, "vkCmdWriteBufferMarker2AMD"); -#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ -#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) - table->vkGetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)load(context, "vkGetQueueCheckpointData2NV"); -#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_KHR_timeline_semaphore) - table->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)load(context, "vkGetSemaphoreCounterValueKHR"); - table->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)load(context, "vkSignalSemaphoreKHR"); - table->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)load(context, "vkWaitSemaphoresKHR"); -#endif /* defined(VK_KHR_timeline_semaphore) */ -#if defined(VK_KHR_video_decode_queue) - table->vkCmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)load(context, "vkCmdDecodeVideoKHR"); -#endif /* defined(VK_KHR_video_decode_queue) */ -#if defined(VK_KHR_video_encode_queue) - table->vkCmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)load(context, "vkCmdEncodeVideoKHR"); - table->vkGetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)load(context, "vkGetEncodedVideoSessionParametersKHR"); -#endif /* defined(VK_KHR_video_encode_queue) */ -#if defined(VK_KHR_video_queue) - table->vkBindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)load(context, "vkBindVideoSessionMemoryKHR"); - table->vkCmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)load(context, "vkCmdBeginVideoCodingKHR"); - table->vkCmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)load(context, "vkCmdControlVideoCodingKHR"); - table->vkCmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)load(context, "vkCmdEndVideoCodingKHR"); - table->vkCreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)load(context, "vkCreateVideoSessionKHR"); - table->vkCreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)load(context, "vkCreateVideoSessionParametersKHR"); - table->vkDestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)load(context, "vkDestroyVideoSessionKHR"); - table->vkDestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)load(context, "vkDestroyVideoSessionParametersKHR"); - table->vkGetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)load(context, "vkGetVideoSessionMemoryRequirementsKHR"); - table->vkUpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)load(context, "vkUpdateVideoSessionParametersKHR"); -#endif /* defined(VK_KHR_video_queue) */ -#if defined(VK_NVX_binary_import) - table->vkCmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)load(context, "vkCmdCuLaunchKernelNVX"); - table->vkCreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)load(context, "vkCreateCuFunctionNVX"); - table->vkCreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)load(context, "vkCreateCuModuleNVX"); - table->vkDestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)load(context, "vkDestroyCuFunctionNVX"); - table->vkDestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)load(context, "vkDestroyCuModuleNVX"); -#endif /* defined(VK_NVX_binary_import) */ -#if defined(VK_NVX_image_view_handle) - table->vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)load(context, "vkGetImageViewAddressNVX"); - table->vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)load(context, "vkGetImageViewHandleNVX"); -#endif /* defined(VK_NVX_image_view_handle) */ -#if defined(VK_NV_clip_space_w_scaling) - table->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV"); -#endif /* defined(VK_NV_clip_space_w_scaling) */ -#if defined(VK_NV_copy_memory_indirect) - table->vkCmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)load(context, "vkCmdCopyMemoryIndirectNV"); - table->vkCmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)load(context, "vkCmdCopyMemoryToImageIndirectNV"); -#endif /* defined(VK_NV_copy_memory_indirect) */ -#if defined(VK_NV_cuda_kernel_launch) - table->vkCmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)load(context, "vkCmdCudaLaunchKernelNV"); - table->vkCreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)load(context, "vkCreateCudaFunctionNV"); - table->vkCreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)load(context, "vkCreateCudaModuleNV"); - table->vkDestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)load(context, "vkDestroyCudaFunctionNV"); - table->vkDestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)load(context, "vkDestroyCudaModuleNV"); - table->vkGetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)load(context, "vkGetCudaModuleCacheNV"); -#endif /* defined(VK_NV_cuda_kernel_launch) */ -#if defined(VK_NV_device_diagnostic_checkpoints) - table->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV"); - table->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV"); -#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_NV_device_generated_commands) - table->vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)load(context, "vkCmdBindPipelineShaderGroupNV"); - table->vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)load(context, "vkCmdExecuteGeneratedCommandsNV"); - table->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)load(context, "vkCmdPreprocessGeneratedCommandsNV"); - table->vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)load(context, "vkCreateIndirectCommandsLayoutNV"); - table->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV"); - table->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV"); -#endif /* defined(VK_NV_device_generated_commands) */ -#if defined(VK_NV_device_generated_commands_compute) - table->vkCmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)load(context, "vkCmdUpdatePipelineIndirectBufferNV"); - table->vkGetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)load(context, "vkGetPipelineIndirectDeviceAddressNV"); - table->vkGetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)load(context, "vkGetPipelineIndirectMemoryRequirementsNV"); -#endif /* defined(VK_NV_device_generated_commands_compute) */ -#if defined(VK_NV_external_memory_rdma) - table->vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)load(context, "vkGetMemoryRemoteAddressNV"); -#endif /* defined(VK_NV_external_memory_rdma) */ -#if defined(VK_NV_external_memory_win32) - table->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV"); -#endif /* defined(VK_NV_external_memory_win32) */ -#if defined(VK_NV_fragment_shading_rate_enums) - table->vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)load(context, "vkCmdSetFragmentShadingRateEnumNV"); -#endif /* defined(VK_NV_fragment_shading_rate_enums) */ -#if defined(VK_NV_low_latency2) - table->vkGetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)load(context, "vkGetLatencyTimingsNV"); - table->vkLatencySleepNV = (PFN_vkLatencySleepNV)load(context, "vkLatencySleepNV"); - table->vkQueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)load(context, "vkQueueNotifyOutOfBandNV"); - table->vkSetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)load(context, "vkSetLatencyMarkerNV"); - table->vkSetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)load(context, "vkSetLatencySleepModeNV"); -#endif /* defined(VK_NV_low_latency2) */ -#if defined(VK_NV_memory_decompression) - table->vkCmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)load(context, "vkCmdDecompressMemoryIndirectCountNV"); - table->vkCmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)load(context, "vkCmdDecompressMemoryNV"); -#endif /* defined(VK_NV_memory_decompression) */ -#if defined(VK_NV_mesh_shader) - table->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV"); - table->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV"); - table->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV"); -#endif /* defined(VK_NV_mesh_shader) */ -#if defined(VK_NV_optical_flow) - table->vkBindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)load(context, "vkBindOpticalFlowSessionImageNV"); - table->vkCmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)load(context, "vkCmdOpticalFlowExecuteNV"); - table->vkCreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)load(context, "vkCreateOpticalFlowSessionNV"); - table->vkDestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)load(context, "vkDestroyOpticalFlowSessionNV"); -#endif /* defined(VK_NV_optical_flow) */ -#if defined(VK_NV_ray_tracing) - table->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV"); - table->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV"); - table->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV"); - table->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV"); - table->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV"); - table->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV"); - table->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV"); - table->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV"); - table->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV"); - table->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV"); - table->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV"); - table->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV"); -#endif /* defined(VK_NV_ray_tracing) */ -#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 - table->vkCmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)load(context, "vkCmdSetExclusiveScissorEnableNV"); -#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ -#if defined(VK_NV_scissor_exclusive) - table->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV"); -#endif /* defined(VK_NV_scissor_exclusive) */ -#if defined(VK_NV_shading_rate_image) - table->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV"); - table->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV"); - table->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV"); -#endif /* defined(VK_NV_shading_rate_image) */ -#if defined(VK_QCOM_tile_properties) - table->vkGetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)load(context, "vkGetDynamicRenderingTilePropertiesQCOM"); - table->vkGetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)load(context, "vkGetFramebufferTilePropertiesQCOM"); -#endif /* defined(VK_QCOM_tile_properties) */ -#if defined(VK_QNX_external_memory_screen_buffer) - table->vkGetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)load(context, "vkGetScreenBufferPropertiesQNX"); -#endif /* defined(VK_QNX_external_memory_screen_buffer) */ -#if defined(VK_VALVE_descriptor_set_host_mapping) - table->vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE"); - table->vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); -#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ -#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) - table->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)load(context, "vkCmdBindVertexBuffers2EXT"); - table->vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)load(context, "vkCmdSetCullModeEXT"); - table->vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)load(context, "vkCmdSetDepthBoundsTestEnableEXT"); - table->vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)load(context, "vkCmdSetDepthCompareOpEXT"); - table->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)load(context, "vkCmdSetDepthTestEnableEXT"); - table->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)load(context, "vkCmdSetDepthWriteEnableEXT"); - table->vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)load(context, "vkCmdSetFrontFaceEXT"); - table->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)load(context, "vkCmdSetPrimitiveTopologyEXT"); - table->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)load(context, "vkCmdSetScissorWithCountEXT"); - table->vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)load(context, "vkCmdSetStencilOpEXT"); - table->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)load(context, "vkCmdSetStencilTestEnableEXT"); - table->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)load(context, "vkCmdSetViewportWithCountEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) - table->vkCmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)load(context, "vkCmdSetDepthBiasEnableEXT"); - table->vkCmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)load(context, "vkCmdSetLogicOpEXT"); - table->vkCmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)load(context, "vkCmdSetPatchControlPointsEXT"); - table->vkCmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)load(context, "vkCmdSetPrimitiveRestartEnableEXT"); - table->vkCmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)load(context, "vkCmdSetRasterizerDiscardEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) - table->vkCmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)load(context, "vkCmdSetAlphaToCoverageEnableEXT"); - table->vkCmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)load(context, "vkCmdSetAlphaToOneEnableEXT"); - table->vkCmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)load(context, "vkCmdSetColorBlendEnableEXT"); - table->vkCmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)load(context, "vkCmdSetColorBlendEquationEXT"); - table->vkCmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)load(context, "vkCmdSetColorWriteMaskEXT"); - table->vkCmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)load(context, "vkCmdSetDepthClampEnableEXT"); - table->vkCmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)load(context, "vkCmdSetLogicOpEnableEXT"); - table->vkCmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)load(context, "vkCmdSetPolygonModeEXT"); - table->vkCmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)load(context, "vkCmdSetRasterizationSamplesEXT"); - table->vkCmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)load(context, "vkCmdSetSampleMaskEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) - table->vkCmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)load(context, "vkCmdSetTessellationDomainOriginEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) - table->vkCmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)load(context, "vkCmdSetRasterizationStreamEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) - table->vkCmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)load(context, "vkCmdSetConservativeRasterizationModeEXT"); - table->vkCmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)load(context, "vkCmdSetExtraPrimitiveOverestimationSizeEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) - table->vkCmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)load(context, "vkCmdSetDepthClipEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) - table->vkCmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)load(context, "vkCmdSetSampleLocationsEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) - table->vkCmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)load(context, "vkCmdSetColorBlendAdvancedEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) - table->vkCmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)load(context, "vkCmdSetProvokingVertexModeEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) - table->vkCmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)load(context, "vkCmdSetLineRasterizationModeEXT"); - table->vkCmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)load(context, "vkCmdSetLineStippleEnableEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) - table->vkCmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)load(context, "vkCmdSetDepthClipNegativeOneToOneEXT"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ -#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)) - table->vkCmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)load(context, "vkCmdSetViewportWScalingEnableNV"); -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) - table->vkCmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)load(context, "vkCmdSetViewportSwizzleNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ -#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)) - table->vkCmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)load(context, "vkCmdSetCoverageToColorEnableNV"); - table->vkCmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)load(context, "vkCmdSetCoverageToColorLocationNV"); -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) - table->vkCmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)load(context, "vkCmdSetCoverageModulationModeNV"); - table->vkCmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)load(context, "vkCmdSetCoverageModulationTableEnableNV"); - table->vkCmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)load(context, "vkCmdSetCoverageModulationTableNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) - table->vkCmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)load(context, "vkCmdSetShadingRateImageEnableNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) - table->vkCmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)load(context, "vkCmdSetRepresentativeFragmentTestEnableNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) - table->vkCmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)load(context, "vkCmdSetCoverageReductionModeNV"); -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ -#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) - table->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT"); -#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) - table->vkGetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)load(context, "vkGetImageSubresourceLayout2EXT"); -#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ -#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) - table->vkCmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)load(context, "vkCmdSetVertexInputEXT"); -#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) - table->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR"); -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - table->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR"); - table->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR"); -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - table->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR"); -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ - /* VOLK_GENERATE_LOAD_DEVICE_TABLE */ -} - -#ifdef __GNUC__ -#ifdef VOLK_DEFAULT_VISIBILITY -# pragma GCC visibility push(default) -#else -# pragma GCC visibility push(hidden) -#endif -#endif - -/* VOLK_GENERATE_PROTOTYPES_C */ -#if defined(VK_VERSION_1_0) -PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; -PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; -PFN_vkAllocateMemory vkAllocateMemory; -PFN_vkBeginCommandBuffer vkBeginCommandBuffer; -PFN_vkBindBufferMemory vkBindBufferMemory; -PFN_vkBindImageMemory vkBindImageMemory; -PFN_vkCmdBeginQuery vkCmdBeginQuery; -PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; -PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; -PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; -PFN_vkCmdBindPipeline vkCmdBindPipeline; -PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; -PFN_vkCmdBlitImage vkCmdBlitImage; -PFN_vkCmdClearAttachments vkCmdClearAttachments; -PFN_vkCmdClearColorImage vkCmdClearColorImage; -PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; -PFN_vkCmdCopyBuffer vkCmdCopyBuffer; -PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; -PFN_vkCmdCopyImage vkCmdCopyImage; -PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; -PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; -PFN_vkCmdDispatch vkCmdDispatch; -PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; -PFN_vkCmdDraw vkCmdDraw; -PFN_vkCmdDrawIndexed vkCmdDrawIndexed; -PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; -PFN_vkCmdDrawIndirect vkCmdDrawIndirect; -PFN_vkCmdEndQuery vkCmdEndQuery; -PFN_vkCmdEndRenderPass vkCmdEndRenderPass; -PFN_vkCmdExecuteCommands vkCmdExecuteCommands; -PFN_vkCmdFillBuffer vkCmdFillBuffer; -PFN_vkCmdNextSubpass vkCmdNextSubpass; -PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; -PFN_vkCmdPushConstants vkCmdPushConstants; -PFN_vkCmdResetEvent vkCmdResetEvent; -PFN_vkCmdResetQueryPool vkCmdResetQueryPool; -PFN_vkCmdResolveImage vkCmdResolveImage; -PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; -PFN_vkCmdSetDepthBias vkCmdSetDepthBias; -PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; -PFN_vkCmdSetEvent vkCmdSetEvent; -PFN_vkCmdSetLineWidth vkCmdSetLineWidth; -PFN_vkCmdSetScissor vkCmdSetScissor; -PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; -PFN_vkCmdSetStencilReference vkCmdSetStencilReference; -PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; -PFN_vkCmdSetViewport vkCmdSetViewport; -PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; -PFN_vkCmdWaitEvents vkCmdWaitEvents; -PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; -PFN_vkCreateBuffer vkCreateBuffer; -PFN_vkCreateBufferView vkCreateBufferView; -PFN_vkCreateCommandPool vkCreateCommandPool; -PFN_vkCreateComputePipelines vkCreateComputePipelines; -PFN_vkCreateDescriptorPool vkCreateDescriptorPool; -PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; -PFN_vkCreateDevice vkCreateDevice; -PFN_vkCreateEvent vkCreateEvent; -PFN_vkCreateFence vkCreateFence; -PFN_vkCreateFramebuffer vkCreateFramebuffer; -PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; -PFN_vkCreateImage vkCreateImage; -PFN_vkCreateImageView vkCreateImageView; -PFN_vkCreateInstance vkCreateInstance; -PFN_vkCreatePipelineCache vkCreatePipelineCache; -PFN_vkCreatePipelineLayout vkCreatePipelineLayout; -PFN_vkCreateQueryPool vkCreateQueryPool; -PFN_vkCreateRenderPass vkCreateRenderPass; -PFN_vkCreateSampler vkCreateSampler; -PFN_vkCreateSemaphore vkCreateSemaphore; -PFN_vkCreateShaderModule vkCreateShaderModule; -PFN_vkDestroyBuffer vkDestroyBuffer; -PFN_vkDestroyBufferView vkDestroyBufferView; -PFN_vkDestroyCommandPool vkDestroyCommandPool; -PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; -PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; -PFN_vkDestroyDevice vkDestroyDevice; -PFN_vkDestroyEvent vkDestroyEvent; -PFN_vkDestroyFence vkDestroyFence; -PFN_vkDestroyFramebuffer vkDestroyFramebuffer; -PFN_vkDestroyImage vkDestroyImage; -PFN_vkDestroyImageView vkDestroyImageView; -PFN_vkDestroyInstance vkDestroyInstance; -PFN_vkDestroyPipeline vkDestroyPipeline; -PFN_vkDestroyPipelineCache vkDestroyPipelineCache; -PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; -PFN_vkDestroyQueryPool vkDestroyQueryPool; -PFN_vkDestroyRenderPass vkDestroyRenderPass; -PFN_vkDestroySampler vkDestroySampler; -PFN_vkDestroySemaphore vkDestroySemaphore; -PFN_vkDestroyShaderModule vkDestroyShaderModule; -PFN_vkDeviceWaitIdle vkDeviceWaitIdle; -PFN_vkEndCommandBuffer vkEndCommandBuffer; -PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; -PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; -PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; -PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; -PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; -PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; -PFN_vkFreeCommandBuffers vkFreeCommandBuffers; -PFN_vkFreeDescriptorSets vkFreeDescriptorSets; -PFN_vkFreeMemory vkFreeMemory; -PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; -PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; -PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; -PFN_vkGetDeviceQueue vkGetDeviceQueue; -PFN_vkGetEventStatus vkGetEventStatus; -PFN_vkGetFenceStatus vkGetFenceStatus; -PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; -PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; -PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; -PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; -PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; -PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; -PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; -PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; -PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; -PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; -PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; -PFN_vkGetPipelineCacheData vkGetPipelineCacheData; -PFN_vkGetQueryPoolResults vkGetQueryPoolResults; -PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; -PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; -PFN_vkMapMemory vkMapMemory; -PFN_vkMergePipelineCaches vkMergePipelineCaches; -PFN_vkQueueBindSparse vkQueueBindSparse; -PFN_vkQueueSubmit vkQueueSubmit; -PFN_vkQueueWaitIdle vkQueueWaitIdle; -PFN_vkResetCommandBuffer vkResetCommandBuffer; -PFN_vkResetCommandPool vkResetCommandPool; -PFN_vkResetDescriptorPool vkResetDescriptorPool; -PFN_vkResetEvent vkResetEvent; -PFN_vkResetFences vkResetFences; -PFN_vkSetEvent vkSetEvent; -PFN_vkUnmapMemory vkUnmapMemory; -PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; -PFN_vkWaitForFences vkWaitForFences; -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) -PFN_vkBindBufferMemory2 vkBindBufferMemory2; -PFN_vkBindImageMemory2 vkBindImageMemory2; -PFN_vkCmdDispatchBase vkCmdDispatchBase; -PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; -PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; -PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; -PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; -PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; -PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; -PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; -PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; -PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; -PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; -PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; -PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; -PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; -PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; -PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; -PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; -PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; -PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; -PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; -PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; -PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; -PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; -PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; -PFN_vkTrimCommandPool vkTrimCommandPool; -PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; -#endif /* defined(VK_VERSION_1_1) */ -#if defined(VK_VERSION_1_2) -PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; -PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; -PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; -PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; -PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; -PFN_vkCreateRenderPass2 vkCreateRenderPass2; -PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; -PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; -PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; -PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; -PFN_vkResetQueryPool vkResetQueryPool; -PFN_vkSignalSemaphore vkSignalSemaphore; -PFN_vkWaitSemaphores vkWaitSemaphores; -#endif /* defined(VK_VERSION_1_2) */ -#if defined(VK_VERSION_1_3) -PFN_vkCmdBeginRendering vkCmdBeginRendering; -PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; -PFN_vkCmdBlitImage2 vkCmdBlitImage2; -PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; -PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; -PFN_vkCmdCopyImage2 vkCmdCopyImage2; -PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; -PFN_vkCmdEndRendering vkCmdEndRendering; -PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; -PFN_vkCmdResetEvent2 vkCmdResetEvent2; -PFN_vkCmdResolveImage2 vkCmdResolveImage2; -PFN_vkCmdSetCullMode vkCmdSetCullMode; -PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; -PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; -PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; -PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; -PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; -PFN_vkCmdSetEvent2 vkCmdSetEvent2; -PFN_vkCmdSetFrontFace vkCmdSetFrontFace; -PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; -PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; -PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; -PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; -PFN_vkCmdSetStencilOp vkCmdSetStencilOp; -PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; -PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; -PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; -PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; -PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; -PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; -PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; -PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; -PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; -PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties; -PFN_vkGetPrivateData vkGetPrivateData; -PFN_vkQueueSubmit2 vkQueueSubmit2; -PFN_vkSetPrivateData vkSetPrivateData; -#endif /* defined(VK_VERSION_1_3) */ -#if defined(VK_AMDX_shader_enqueue) -PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; -PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; -PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; -PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; -PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; -PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; -PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; -#endif /* defined(VK_AMDX_shader_enqueue) */ -#if defined(VK_AMD_buffer_marker) -PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; -#endif /* defined(VK_AMD_buffer_marker) */ -#if defined(VK_AMD_display_native_hdr) -PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; -#endif /* defined(VK_AMD_display_native_hdr) */ -#if defined(VK_AMD_draw_indirect_count) -PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; -PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; -#endif /* defined(VK_AMD_draw_indirect_count) */ -#if defined(VK_AMD_shader_info) -PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; -#endif /* defined(VK_AMD_shader_info) */ -#if defined(VK_ANDROID_external_memory_android_hardware_buffer) -PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; -PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; -#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ -#if defined(VK_EXT_acquire_drm_display) -PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; -PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; -#endif /* defined(VK_EXT_acquire_drm_display) */ -#if defined(VK_EXT_acquire_xlib_display) -PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; -PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; -#endif /* defined(VK_EXT_acquire_xlib_display) */ -#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) -PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; -#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ -#if defined(VK_EXT_buffer_device_address) -PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; -#endif /* defined(VK_EXT_buffer_device_address) */ -#if defined(VK_EXT_calibrated_timestamps) -PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; -PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; -#endif /* defined(VK_EXT_calibrated_timestamps) */ -#if defined(VK_EXT_color_write_enable) -PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; -#endif /* defined(VK_EXT_color_write_enable) */ -#if defined(VK_EXT_conditional_rendering) -PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; -PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; -#endif /* defined(VK_EXT_conditional_rendering) */ -#if defined(VK_EXT_debug_marker) -PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; -PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; -PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; -PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; -PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; -#endif /* defined(VK_EXT_debug_marker) */ -#if defined(VK_EXT_debug_report) -PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; -PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; -PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; -#endif /* defined(VK_EXT_debug_report) */ -#if defined(VK_EXT_debug_utils) -PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; -PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; -PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; -PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; -PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; -PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; -PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; -PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; -PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; -PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; -PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; -#endif /* defined(VK_EXT_debug_utils) */ -#if defined(VK_EXT_depth_bias_control) -PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; -#endif /* defined(VK_EXT_depth_bias_control) */ -#if defined(VK_EXT_descriptor_buffer) -PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; -PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; -PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; -PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; -PFN_vkGetDescriptorEXT vkGetDescriptorEXT; -PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; -PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; -PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; -PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; -PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; -#endif /* defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) -PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; -#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ -#if defined(VK_EXT_device_fault) -PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; -#endif /* defined(VK_EXT_device_fault) */ -#if defined(VK_EXT_direct_mode_display) -PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; -#endif /* defined(VK_EXT_direct_mode_display) */ -#if defined(VK_EXT_directfb_surface) -PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT; -PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT; -#endif /* defined(VK_EXT_directfb_surface) */ -#if defined(VK_EXT_discard_rectangles) -PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; -#endif /* defined(VK_EXT_discard_rectangles) */ -#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 -PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; -PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; -#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ -#if defined(VK_EXT_display_control) -PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; -PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; -PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; -PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; -#endif /* defined(VK_EXT_display_control) */ -#if defined(VK_EXT_display_surface_counter) -PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; -#endif /* defined(VK_EXT_display_surface_counter) */ -#if defined(VK_EXT_external_memory_host) -PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; -#endif /* defined(VK_EXT_external_memory_host) */ -#if defined(VK_EXT_full_screen_exclusive) -PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; -PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT; -PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; -#endif /* defined(VK_EXT_full_screen_exclusive) */ -#if defined(VK_EXT_hdr_metadata) -PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; -#endif /* defined(VK_EXT_hdr_metadata) */ -#if defined(VK_EXT_headless_surface) -PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; -#endif /* defined(VK_EXT_headless_surface) */ -#if defined(VK_EXT_host_image_copy) -PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; -PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; -PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; -PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; -#endif /* defined(VK_EXT_host_image_copy) */ -#if defined(VK_EXT_host_query_reset) -PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; -#endif /* defined(VK_EXT_host_query_reset) */ -#if defined(VK_EXT_image_drm_format_modifier) -PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; -#endif /* defined(VK_EXT_image_drm_format_modifier) */ -#if defined(VK_EXT_line_rasterization) -PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; -#endif /* defined(VK_EXT_line_rasterization) */ -#if defined(VK_EXT_mesh_shader) -PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; -PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; -PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; -#endif /* defined(VK_EXT_mesh_shader) */ -#if defined(VK_EXT_metal_objects) -PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; -#endif /* defined(VK_EXT_metal_objects) */ -#if defined(VK_EXT_metal_surface) -PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT; -#endif /* defined(VK_EXT_metal_surface) */ -#if defined(VK_EXT_multi_draw) -PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; -PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; -#endif /* defined(VK_EXT_multi_draw) */ -#if defined(VK_EXT_opacity_micromap) -PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; -PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; -PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; -PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; -PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; -PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; -PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; -PFN_vkCopyMicromapEXT vkCopyMicromapEXT; -PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; -PFN_vkCreateMicromapEXT vkCreateMicromapEXT; -PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; -PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; -PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; -PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; -#endif /* defined(VK_EXT_opacity_micromap) */ -#if defined(VK_EXT_pageable_device_local_memory) -PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; -#endif /* defined(VK_EXT_pageable_device_local_memory) */ -#if defined(VK_EXT_pipeline_properties) -PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; -#endif /* defined(VK_EXT_pipeline_properties) */ -#if defined(VK_EXT_private_data) -PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; -PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; -PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; -PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; -#endif /* defined(VK_EXT_private_data) */ -#if defined(VK_EXT_sample_locations) -PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; -PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; -#endif /* defined(VK_EXT_sample_locations) */ -#if defined(VK_EXT_shader_module_identifier) -PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; -PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; -#endif /* defined(VK_EXT_shader_module_identifier) */ -#if defined(VK_EXT_shader_object) -PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; -PFN_vkCreateShadersEXT vkCreateShadersEXT; -PFN_vkDestroyShaderEXT vkDestroyShaderEXT; -PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; -#endif /* defined(VK_EXT_shader_object) */ -#if defined(VK_EXT_swapchain_maintenance1) -PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; -#endif /* defined(VK_EXT_swapchain_maintenance1) */ -#if defined(VK_EXT_tooling_info) -PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; -#endif /* defined(VK_EXT_tooling_info) */ -#if defined(VK_EXT_transform_feedback) -PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; -PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; -PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; -PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; -PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; -PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; -#endif /* defined(VK_EXT_transform_feedback) */ -#if defined(VK_EXT_validation_cache) -PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; -PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; -PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; -PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; -#endif /* defined(VK_EXT_validation_cache) */ -#if defined(VK_FUCHSIA_buffer_collection) -PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; -PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; -PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; -PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; -PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; -#endif /* defined(VK_FUCHSIA_buffer_collection) */ -#if defined(VK_FUCHSIA_external_memory) -PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; -PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; -#endif /* defined(VK_FUCHSIA_external_memory) */ -#if defined(VK_FUCHSIA_external_semaphore) -PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; -PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; -#endif /* defined(VK_FUCHSIA_external_semaphore) */ -#if defined(VK_FUCHSIA_imagepipe_surface) -PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; -#endif /* defined(VK_FUCHSIA_imagepipe_surface) */ -#if defined(VK_GGP_stream_descriptor_surface) -PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; -#endif /* defined(VK_GGP_stream_descriptor_surface) */ -#if defined(VK_GOOGLE_display_timing) -PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; -PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; -#endif /* defined(VK_GOOGLE_display_timing) */ -#if defined(VK_HUAWEI_cluster_culling_shader) -PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; -PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; -#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ -#if defined(VK_HUAWEI_invocation_mask) -PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; -#endif /* defined(VK_HUAWEI_invocation_mask) */ -#if defined(VK_HUAWEI_subpass_shading) -PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; -PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; -#endif /* defined(VK_HUAWEI_subpass_shading) */ -#if defined(VK_INTEL_performance_query) -PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; -PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; -PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; -PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; -PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; -PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; -PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; -PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; -PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; -#endif /* defined(VK_INTEL_performance_query) */ -#if defined(VK_KHR_acceleration_structure) -PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; -PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; -PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; -PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; -PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; -PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; -PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; -PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; -PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; -PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; -PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; -PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; -PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; -PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; -PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; -PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; -#endif /* defined(VK_KHR_acceleration_structure) */ -#if defined(VK_KHR_android_surface) -PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif /* defined(VK_KHR_android_surface) */ -#if defined(VK_KHR_bind_memory2) -PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; -PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; -#endif /* defined(VK_KHR_bind_memory2) */ -#if defined(VK_KHR_buffer_device_address) -PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; -PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; -PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; -#endif /* defined(VK_KHR_buffer_device_address) */ -#if defined(VK_KHR_calibrated_timestamps) -PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR; -PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR; -#endif /* defined(VK_KHR_calibrated_timestamps) */ -#if defined(VK_KHR_cooperative_matrix) -PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; -#endif /* defined(VK_KHR_cooperative_matrix) */ -#if defined(VK_KHR_copy_commands2) -PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; -PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; -PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; -PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; -PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; -PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; -#endif /* defined(VK_KHR_copy_commands2) */ -#if defined(VK_KHR_create_renderpass2) -PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; -PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; -PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; -PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; -#endif /* defined(VK_KHR_create_renderpass2) */ -#if defined(VK_KHR_deferred_host_operations) -PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; -PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; -PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; -PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; -PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; -#endif /* defined(VK_KHR_deferred_host_operations) */ -#if defined(VK_KHR_descriptor_update_template) -PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; -PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; -PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; -#endif /* defined(VK_KHR_descriptor_update_template) */ -#if defined(VK_KHR_device_group) -PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; -PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; -PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; -#endif /* defined(VK_KHR_device_group) */ -#if defined(VK_KHR_device_group_creation) -PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; -#endif /* defined(VK_KHR_device_group_creation) */ -#if defined(VK_KHR_display) -PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; -PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; -PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; -PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; -PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; -PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; -PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; -#endif /* defined(VK_KHR_display) */ -#if defined(VK_KHR_display_swapchain) -PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; -#endif /* defined(VK_KHR_display_swapchain) */ -#if defined(VK_KHR_draw_indirect_count) -PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; -PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; -#endif /* defined(VK_KHR_draw_indirect_count) */ -#if defined(VK_KHR_dynamic_rendering) -PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; -PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; -#endif /* defined(VK_KHR_dynamic_rendering) */ -#if defined(VK_KHR_dynamic_rendering_local_read) -PFN_vkCmdSetRenderingAttachmentLocationsKHR vkCmdSetRenderingAttachmentLocationsKHR; -PFN_vkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHR; -#endif /* defined(VK_KHR_dynamic_rendering_local_read) */ -#if defined(VK_KHR_external_fence_capabilities) -PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; -#endif /* defined(VK_KHR_external_fence_capabilities) */ -#if defined(VK_KHR_external_fence_fd) -PFN_vkGetFenceFdKHR vkGetFenceFdKHR; -PFN_vkImportFenceFdKHR vkImportFenceFdKHR; -#endif /* defined(VK_KHR_external_fence_fd) */ -#if defined(VK_KHR_external_fence_win32) -PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; -PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; -#endif /* defined(VK_KHR_external_fence_win32) */ -#if defined(VK_KHR_external_memory_capabilities) -PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; -#endif /* defined(VK_KHR_external_memory_capabilities) */ -#if defined(VK_KHR_external_memory_fd) -PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; -PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; -#endif /* defined(VK_KHR_external_memory_fd) */ -#if defined(VK_KHR_external_memory_win32) -PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; -PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; -#endif /* defined(VK_KHR_external_memory_win32) */ -#if defined(VK_KHR_external_semaphore_capabilities) -PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; -#endif /* defined(VK_KHR_external_semaphore_capabilities) */ -#if defined(VK_KHR_external_semaphore_fd) -PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; -PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; -#endif /* defined(VK_KHR_external_semaphore_fd) */ -#if defined(VK_KHR_external_semaphore_win32) -PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; -PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; -#endif /* defined(VK_KHR_external_semaphore_win32) */ -#if defined(VK_KHR_fragment_shading_rate) -PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; -PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; -#endif /* defined(VK_KHR_fragment_shading_rate) */ -#if defined(VK_KHR_get_display_properties2) -PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; -PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; -PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; -PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; -#endif /* defined(VK_KHR_get_display_properties2) */ -#if defined(VK_KHR_get_memory_requirements2) -PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; -PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; -PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; -#endif /* defined(VK_KHR_get_memory_requirements2) */ -#if defined(VK_KHR_get_physical_device_properties2) -PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; -PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; -PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; -PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; -PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; -PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; -PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; -#endif /* defined(VK_KHR_get_physical_device_properties2) */ -#if defined(VK_KHR_get_surface_capabilities2) -PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; -PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; -#endif /* defined(VK_KHR_get_surface_capabilities2) */ -#if defined(VK_KHR_line_rasterization) -PFN_vkCmdSetLineStippleKHR vkCmdSetLineStippleKHR; -#endif /* defined(VK_KHR_line_rasterization) */ -#if defined(VK_KHR_maintenance1) -PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; -#endif /* defined(VK_KHR_maintenance1) */ -#if defined(VK_KHR_maintenance3) -PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; -#endif /* defined(VK_KHR_maintenance3) */ -#if defined(VK_KHR_maintenance4) -PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; -PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; -PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; -#endif /* defined(VK_KHR_maintenance4) */ -#if defined(VK_KHR_maintenance5) -PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; -PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; -PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; -PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; -#endif /* defined(VK_KHR_maintenance5) */ -#if defined(VK_KHR_maintenance6) -PFN_vkCmdBindDescriptorSets2KHR vkCmdBindDescriptorSets2KHR; -PFN_vkCmdPushConstants2KHR vkCmdPushConstants2KHR; -#endif /* defined(VK_KHR_maintenance6) */ -#if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) -PFN_vkCmdPushDescriptorSet2KHR vkCmdPushDescriptorSet2KHR; -PFN_vkCmdPushDescriptorSetWithTemplate2KHR vkCmdPushDescriptorSetWithTemplate2KHR; -#endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) -PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; -PFN_vkCmdSetDescriptorBufferOffsets2EXT vkCmdSetDescriptorBufferOffsets2EXT; -#endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_KHR_map_memory2) -PFN_vkMapMemory2KHR vkMapMemory2KHR; -PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; -#endif /* defined(VK_KHR_map_memory2) */ -#if defined(VK_KHR_performance_query) -PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; -PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; -PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; -PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; -#endif /* defined(VK_KHR_performance_query) */ -#if defined(VK_KHR_pipeline_executable_properties) -PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; -PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; -PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; -#endif /* defined(VK_KHR_pipeline_executable_properties) */ -#if defined(VK_KHR_present_wait) -PFN_vkWaitForPresentKHR vkWaitForPresentKHR; -#endif /* defined(VK_KHR_present_wait) */ -#if defined(VK_KHR_push_descriptor) -PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; -#endif /* defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) -PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; -#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_ray_tracing_pipeline) -PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; -PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; -PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; -PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; -PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; -PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; -PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; -#endif /* defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_sampler_ycbcr_conversion) -PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; -PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; -#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ -#if defined(VK_KHR_shared_presentable_image) -PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; -#endif /* defined(VK_KHR_shared_presentable_image) */ -#if defined(VK_KHR_surface) -PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; -PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; -PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; -PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; -PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; -#endif /* defined(VK_KHR_surface) */ -#if defined(VK_KHR_swapchain) -PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; -PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; -PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; -PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; -PFN_vkQueuePresentKHR vkQueuePresentKHR; -#endif /* defined(VK_KHR_swapchain) */ -#if defined(VK_KHR_synchronization2) -PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; -PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; -PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; -PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; -PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; -PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; -#endif /* defined(VK_KHR_synchronization2) */ -#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) -PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; -#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ -#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) -PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; -#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_KHR_timeline_semaphore) -PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; -PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; -PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; -#endif /* defined(VK_KHR_timeline_semaphore) */ -#if defined(VK_KHR_video_decode_queue) -PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; -#endif /* defined(VK_KHR_video_decode_queue) */ -#if defined(VK_KHR_video_encode_queue) -PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; -PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; -PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; -#endif /* defined(VK_KHR_video_encode_queue) */ -#if defined(VK_KHR_video_queue) -PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; -PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; -PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; -PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; -PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; -PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; -PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; -PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; -PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR; -PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR; -PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; -PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; -#endif /* defined(VK_KHR_video_queue) */ -#if defined(VK_KHR_wayland_surface) -PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; -PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; -#endif /* defined(VK_KHR_wayland_surface) */ -#if defined(VK_KHR_win32_surface) -PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; -PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; -#endif /* defined(VK_KHR_win32_surface) */ -#if defined(VK_KHR_xcb_surface) -PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; -PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; -#endif /* defined(VK_KHR_xcb_surface) */ -#if defined(VK_KHR_xlib_surface) -PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; -PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; -#endif /* defined(VK_KHR_xlib_surface) */ -#if defined(VK_MVK_ios_surface) -PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; -#endif /* defined(VK_MVK_ios_surface) */ -#if defined(VK_MVK_macos_surface) -PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; -#endif /* defined(VK_MVK_macos_surface) */ -#if defined(VK_NN_vi_surface) -PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; -#endif /* defined(VK_NN_vi_surface) */ -#if defined(VK_NVX_binary_import) -PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; -PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; -PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; -PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; -PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; -#endif /* defined(VK_NVX_binary_import) */ -#if defined(VK_NVX_image_view_handle) -PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; -PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; -#endif /* defined(VK_NVX_image_view_handle) */ -#if defined(VK_NV_acquire_winrt_display) -PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV; -PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV; -#endif /* defined(VK_NV_acquire_winrt_display) */ -#if defined(VK_NV_clip_space_w_scaling) -PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; -#endif /* defined(VK_NV_clip_space_w_scaling) */ -#if defined(VK_NV_cooperative_matrix) -PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; -#endif /* defined(VK_NV_cooperative_matrix) */ -#if defined(VK_NV_copy_memory_indirect) -PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; -PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; -#endif /* defined(VK_NV_copy_memory_indirect) */ -#if defined(VK_NV_coverage_reduction_mode) -PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; -#endif /* defined(VK_NV_coverage_reduction_mode) */ -#if defined(VK_NV_cuda_kernel_launch) -PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; -PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; -PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; -PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; -PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; -PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; -#endif /* defined(VK_NV_cuda_kernel_launch) */ -#if defined(VK_NV_device_diagnostic_checkpoints) -PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; -PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; -#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_NV_device_generated_commands) -PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; -PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; -PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; -PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; -PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; -PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; -#endif /* defined(VK_NV_device_generated_commands) */ -#if defined(VK_NV_device_generated_commands_compute) -PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; -PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; -PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; -#endif /* defined(VK_NV_device_generated_commands_compute) */ -#if defined(VK_NV_external_memory_capabilities) -PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; -#endif /* defined(VK_NV_external_memory_capabilities) */ -#if defined(VK_NV_external_memory_rdma) -PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; -#endif /* defined(VK_NV_external_memory_rdma) */ -#if defined(VK_NV_external_memory_win32) -PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; -#endif /* defined(VK_NV_external_memory_win32) */ -#if defined(VK_NV_fragment_shading_rate_enums) -PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; -#endif /* defined(VK_NV_fragment_shading_rate_enums) */ -#if defined(VK_NV_low_latency2) -PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; -PFN_vkLatencySleepNV vkLatencySleepNV; -PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; -PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; -PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; -#endif /* defined(VK_NV_low_latency2) */ -#if defined(VK_NV_memory_decompression) -PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; -PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; -#endif /* defined(VK_NV_memory_decompression) */ -#if defined(VK_NV_mesh_shader) -PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; -PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; -PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; -#endif /* defined(VK_NV_mesh_shader) */ -#if defined(VK_NV_optical_flow) -PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; -PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; -PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; -PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; -PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV; -#endif /* defined(VK_NV_optical_flow) */ -#if defined(VK_NV_ray_tracing) -PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; -PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; -PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; -PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; -PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; -PFN_vkCompileDeferredNV vkCompileDeferredNV; -PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; -PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; -PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; -PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; -PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; -PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; -#endif /* defined(VK_NV_ray_tracing) */ -#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 -PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; -#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ -#if defined(VK_NV_scissor_exclusive) -PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; -#endif /* defined(VK_NV_scissor_exclusive) */ -#if defined(VK_NV_shading_rate_image) -PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; -PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; -PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; -#endif /* defined(VK_NV_shading_rate_image) */ -#if defined(VK_QCOM_tile_properties) -PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; -PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; -#endif /* defined(VK_QCOM_tile_properties) */ -#if defined(VK_QNX_external_memory_screen_buffer) -PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; -#endif /* defined(VK_QNX_external_memory_screen_buffer) */ -#if defined(VK_QNX_screen_surface) -PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; -PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; -#endif /* defined(VK_QNX_screen_surface) */ -#if defined(VK_VALVE_descriptor_set_host_mapping) -PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; -PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; -#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ -#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) -PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; -PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; -PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; -PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; -PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; -PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; -PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; -PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; -PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; -PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; -PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; -PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) -PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; -PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; -PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; -PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; -PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) -PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; -PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; -PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; -PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; -PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; -PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; -PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; -PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; -PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; -PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) -PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) -PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) -PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; -PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) -PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) -PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) -PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) -PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) -PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; -PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) -PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ -#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)) -PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) -PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ -#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)) -PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; -PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) -PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; -PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; -PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) -PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) -PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) -PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ -#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) -PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; -#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) -PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; -#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ -#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) -PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; -#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) -PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) -PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; -PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; -PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) -PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -/* VOLK_GENERATE_PROTOTYPES_C */ - -#ifdef __GNUC__ -# pragma GCC visibility pop -#endif - -#ifdef __cplusplus -} -#endif -/* clang-format on */ diff --git a/third_party/volk/volk.h b/third_party/volk/volk.h deleted file mode 100644 index 826dc62..0000000 --- a/third_party/volk/volk.h +++ /dev/null @@ -1,2069 +0,0 @@ -/** - * volk - * - * Copyright (C) 2018-2024, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) - * Report bugs and download new versions at https://github.com/zeux/volk - * - * This library is distributed under the MIT License. See notice at the end of this file. - */ -/* clang-format off */ -#ifndef VOLK_H_ -#define VOLK_H_ - -#if defined(VULKAN_H_) && !defined(VK_NO_PROTOTYPES) -# error To use volk, you need to define VK_NO_PROTOTYPES before including vulkan.h -#endif - -/* VOLK_GENERATE_VERSION_DEFINE */ -#define VOLK_HEADER_VERSION 280 -/* VOLK_GENERATE_VERSION_DEFINE */ - -#ifndef VK_NO_PROTOTYPES -# define VK_NO_PROTOTYPES -#endif - -#ifndef VULKAN_H_ -# ifdef VOLK_VULKAN_H_PATH -# include VOLK_VULKAN_H_PATH -# elif defined(VK_USE_PLATFORM_WIN32_KHR) -# include -# include - - /* When VK_USE_PLATFORM_WIN32_KHR is defined, instead of including vulkan.h directly, we include individual parts of the SDK - * This is necessary to avoid including which is very heavy - it takes 200ms to parse without WIN32_LEAN_AND_MEAN - * and 100ms to parse with it. vulkan_win32.h only needs a few symbols that are easy to redefine ourselves. - */ - typedef unsigned long DWORD; - typedef const wchar_t* LPCWSTR; - typedef void* HANDLE; - typedef struct HINSTANCE__* HINSTANCE; - typedef struct HWND__* HWND; - typedef struct HMONITOR__* HMONITOR; - typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES; - -# include - -# ifdef VK_ENABLE_BETA_EXTENSIONS -# include -# endif -# else -# include -# endif -#endif - -/* Disable several extensions on earlier SDKs because later SDKs introduce a backwards incompatible change to function signatures */ -#if VK_HEADER_VERSION < 140 -# undef VK_NVX_image_view_handle -#endif -#if VK_HEADER_VERSION < 184 -# undef VK_HUAWEI_subpass_shading -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -struct VolkDeviceTable; - -/** - * Initialize library by loading Vulkan loader; call this function before creating the Vulkan instance. - * - * Returns VK_SUCCESS on success and VK_ERROR_INITIALIZATION_FAILED otherwise. - */ -VkResult volkInitialize(void); - -/** - * Initialize library by providing a custom handler to load global symbols. - * - * This function can be used instead of volkInitialize. - * The handler function pointer will be asked to load global Vulkan symbols which require no instance - * (such as vkCreateInstance, vkEnumerateInstance* and vkEnumerateInstanceVersion if available). - */ -void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler); - -/** - * Finalize library by unloading Vulkan loader and resetting global symbols to NULL. - * - * This function does not need to be called on process exit (as loader will be unloaded automatically) or if volkInitialize failed. - * In general this function is optional to call but may be useful in rare cases eg if volk needs to be reinitialized multiple times. - */ -void volkFinalize(void); - -/** - * Get Vulkan instance version supported by the Vulkan loader, or 0 if Vulkan isn't supported - * - * Returns 0 if volkInitialize wasn't called or failed. - */ -uint32_t volkGetInstanceVersion(void); - -/** - * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance. - */ -void volkLoadInstance(VkInstance instance); - -/** - * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance. - * Skips loading device-based function pointers, requires usage of volkLoadDevice afterwards. - */ -void volkLoadInstanceOnly(VkInstance instance); - -/** - * Load global function pointers using application-created VkDevice; call this function after creating the Vulkan device. - * - * Note: this is not suitable for applications that want to use multiple VkDevice objects concurrently. - */ -void volkLoadDevice(VkDevice device); - -/** - * Return last VkInstance for which global function pointers have been loaded via volkLoadInstance(), - * or VK_NULL_HANDLE if volkLoadInstance() has not been called. - */ -VkInstance volkGetLoadedInstance(void); - -/** - * Return last VkDevice for which global function pointers have been loaded via volkLoadDevice(), - * or VK_NULL_HANDLE if volkLoadDevice() has not been called. - */ -VkDevice volkGetLoadedDevice(void); - -/** - * Load function pointers using application-created VkDevice into a table. - * Application should use function pointers from that table instead of using global function pointers. - */ -void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device); - -/** - * Device-specific function pointer table - */ -struct VolkDeviceTable -{ - /* VOLK_GENERATE_DEVICE_TABLE */ -#if defined(VK_VERSION_1_0) - PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; - PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; - PFN_vkAllocateMemory vkAllocateMemory; - PFN_vkBeginCommandBuffer vkBeginCommandBuffer; - PFN_vkBindBufferMemory vkBindBufferMemory; - PFN_vkBindImageMemory vkBindImageMemory; - PFN_vkCmdBeginQuery vkCmdBeginQuery; - PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; - PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; - PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; - PFN_vkCmdBindPipeline vkCmdBindPipeline; - PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; - PFN_vkCmdBlitImage vkCmdBlitImage; - PFN_vkCmdClearAttachments vkCmdClearAttachments; - PFN_vkCmdClearColorImage vkCmdClearColorImage; - PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; - PFN_vkCmdCopyBuffer vkCmdCopyBuffer; - PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; - PFN_vkCmdCopyImage vkCmdCopyImage; - PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; - PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; - PFN_vkCmdDispatch vkCmdDispatch; - PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; - PFN_vkCmdDraw vkCmdDraw; - PFN_vkCmdDrawIndexed vkCmdDrawIndexed; - PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; - PFN_vkCmdDrawIndirect vkCmdDrawIndirect; - PFN_vkCmdEndQuery vkCmdEndQuery; - PFN_vkCmdEndRenderPass vkCmdEndRenderPass; - PFN_vkCmdExecuteCommands vkCmdExecuteCommands; - PFN_vkCmdFillBuffer vkCmdFillBuffer; - PFN_vkCmdNextSubpass vkCmdNextSubpass; - PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; - PFN_vkCmdPushConstants vkCmdPushConstants; - PFN_vkCmdResetEvent vkCmdResetEvent; - PFN_vkCmdResetQueryPool vkCmdResetQueryPool; - PFN_vkCmdResolveImage vkCmdResolveImage; - PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; - PFN_vkCmdSetDepthBias vkCmdSetDepthBias; - PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; - PFN_vkCmdSetEvent vkCmdSetEvent; - PFN_vkCmdSetLineWidth vkCmdSetLineWidth; - PFN_vkCmdSetScissor vkCmdSetScissor; - PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; - PFN_vkCmdSetStencilReference vkCmdSetStencilReference; - PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; - PFN_vkCmdSetViewport vkCmdSetViewport; - PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; - PFN_vkCmdWaitEvents vkCmdWaitEvents; - PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; - PFN_vkCreateBuffer vkCreateBuffer; - PFN_vkCreateBufferView vkCreateBufferView; - PFN_vkCreateCommandPool vkCreateCommandPool; - PFN_vkCreateComputePipelines vkCreateComputePipelines; - PFN_vkCreateDescriptorPool vkCreateDescriptorPool; - PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; - PFN_vkCreateEvent vkCreateEvent; - PFN_vkCreateFence vkCreateFence; - PFN_vkCreateFramebuffer vkCreateFramebuffer; - PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; - PFN_vkCreateImage vkCreateImage; - PFN_vkCreateImageView vkCreateImageView; - PFN_vkCreatePipelineCache vkCreatePipelineCache; - PFN_vkCreatePipelineLayout vkCreatePipelineLayout; - PFN_vkCreateQueryPool vkCreateQueryPool; - PFN_vkCreateRenderPass vkCreateRenderPass; - PFN_vkCreateSampler vkCreateSampler; - PFN_vkCreateSemaphore vkCreateSemaphore; - PFN_vkCreateShaderModule vkCreateShaderModule; - PFN_vkDestroyBuffer vkDestroyBuffer; - PFN_vkDestroyBufferView vkDestroyBufferView; - PFN_vkDestroyCommandPool vkDestroyCommandPool; - PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; - PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; - PFN_vkDestroyDevice vkDestroyDevice; - PFN_vkDestroyEvent vkDestroyEvent; - PFN_vkDestroyFence vkDestroyFence; - PFN_vkDestroyFramebuffer vkDestroyFramebuffer; - PFN_vkDestroyImage vkDestroyImage; - PFN_vkDestroyImageView vkDestroyImageView; - PFN_vkDestroyPipeline vkDestroyPipeline; - PFN_vkDestroyPipelineCache vkDestroyPipelineCache; - PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; - PFN_vkDestroyQueryPool vkDestroyQueryPool; - PFN_vkDestroyRenderPass vkDestroyRenderPass; - PFN_vkDestroySampler vkDestroySampler; - PFN_vkDestroySemaphore vkDestroySemaphore; - PFN_vkDestroyShaderModule vkDestroyShaderModule; - PFN_vkDeviceWaitIdle vkDeviceWaitIdle; - PFN_vkEndCommandBuffer vkEndCommandBuffer; - PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; - PFN_vkFreeCommandBuffers vkFreeCommandBuffers; - PFN_vkFreeDescriptorSets vkFreeDescriptorSets; - PFN_vkFreeMemory vkFreeMemory; - PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; - PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; - PFN_vkGetDeviceQueue vkGetDeviceQueue; - PFN_vkGetEventStatus vkGetEventStatus; - PFN_vkGetFenceStatus vkGetFenceStatus; - PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; - PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; - PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; - PFN_vkGetPipelineCacheData vkGetPipelineCacheData; - PFN_vkGetQueryPoolResults vkGetQueryPoolResults; - PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; - PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; - PFN_vkMapMemory vkMapMemory; - PFN_vkMergePipelineCaches vkMergePipelineCaches; - PFN_vkQueueBindSparse vkQueueBindSparse; - PFN_vkQueueSubmit vkQueueSubmit; - PFN_vkQueueWaitIdle vkQueueWaitIdle; - PFN_vkResetCommandBuffer vkResetCommandBuffer; - PFN_vkResetCommandPool vkResetCommandPool; - PFN_vkResetDescriptorPool vkResetDescriptorPool; - PFN_vkResetEvent vkResetEvent; - PFN_vkResetFences vkResetFences; - PFN_vkSetEvent vkSetEvent; - PFN_vkUnmapMemory vkUnmapMemory; - PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; - PFN_vkWaitForFences vkWaitForFences; -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) - PFN_vkBindBufferMemory2 vkBindBufferMemory2; - PFN_vkBindImageMemory2 vkBindImageMemory2; - PFN_vkCmdDispatchBase vkCmdDispatchBase; - PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; - PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; - PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; - PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; - PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; - PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; - PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; - PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; - PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; - PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; - PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; - PFN_vkTrimCommandPool vkTrimCommandPool; - PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; -#endif /* defined(VK_VERSION_1_1) */ -#if defined(VK_VERSION_1_2) - PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; - PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; - PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; - PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; - PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; - PFN_vkCreateRenderPass2 vkCreateRenderPass2; - PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; - PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; - PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; - PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; - PFN_vkResetQueryPool vkResetQueryPool; - PFN_vkSignalSemaphore vkSignalSemaphore; - PFN_vkWaitSemaphores vkWaitSemaphores; -#endif /* defined(VK_VERSION_1_2) */ -#if defined(VK_VERSION_1_3) - PFN_vkCmdBeginRendering vkCmdBeginRendering; - PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; - PFN_vkCmdBlitImage2 vkCmdBlitImage2; - PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; - PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; - PFN_vkCmdCopyImage2 vkCmdCopyImage2; - PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; - PFN_vkCmdEndRendering vkCmdEndRendering; - PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; - PFN_vkCmdResetEvent2 vkCmdResetEvent2; - PFN_vkCmdResolveImage2 vkCmdResolveImage2; - PFN_vkCmdSetCullMode vkCmdSetCullMode; - PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; - PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; - PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; - PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; - PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; - PFN_vkCmdSetEvent2 vkCmdSetEvent2; - PFN_vkCmdSetFrontFace vkCmdSetFrontFace; - PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; - PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; - PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; - PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; - PFN_vkCmdSetStencilOp vkCmdSetStencilOp; - PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; - PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; - PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; - PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; - PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; - PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; - PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; - PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; - PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; - PFN_vkGetPrivateData vkGetPrivateData; - PFN_vkQueueSubmit2 vkQueueSubmit2; - PFN_vkSetPrivateData vkSetPrivateData; -#endif /* defined(VK_VERSION_1_3) */ -#if defined(VK_AMDX_shader_enqueue) - PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; - PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; - PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; - PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; - PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; - PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; - PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; -#endif /* defined(VK_AMDX_shader_enqueue) */ -#if defined(VK_AMD_buffer_marker) - PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; -#endif /* defined(VK_AMD_buffer_marker) */ -#if defined(VK_AMD_display_native_hdr) - PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; -#endif /* defined(VK_AMD_display_native_hdr) */ -#if defined(VK_AMD_draw_indirect_count) - PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; - PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; -#endif /* defined(VK_AMD_draw_indirect_count) */ -#if defined(VK_AMD_shader_info) - PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; -#endif /* defined(VK_AMD_shader_info) */ -#if defined(VK_ANDROID_external_memory_android_hardware_buffer) - PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; - PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; -#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ -#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) - PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; -#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ -#if defined(VK_EXT_buffer_device_address) - PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; -#endif /* defined(VK_EXT_buffer_device_address) */ -#if defined(VK_EXT_calibrated_timestamps) - PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; -#endif /* defined(VK_EXT_calibrated_timestamps) */ -#if defined(VK_EXT_color_write_enable) - PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; -#endif /* defined(VK_EXT_color_write_enable) */ -#if defined(VK_EXT_conditional_rendering) - PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; - PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; -#endif /* defined(VK_EXT_conditional_rendering) */ -#if defined(VK_EXT_debug_marker) - PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; - PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; - PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; - PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; - PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; -#endif /* defined(VK_EXT_debug_marker) */ -#if defined(VK_EXT_depth_bias_control) - PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; -#endif /* defined(VK_EXT_depth_bias_control) */ -#if defined(VK_EXT_descriptor_buffer) - PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; - PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; - PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; - PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; - PFN_vkGetDescriptorEXT vkGetDescriptorEXT; - PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; - PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; - PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; - PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; - PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; -#endif /* defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) - PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; -#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ -#if defined(VK_EXT_device_fault) - PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; -#endif /* defined(VK_EXT_device_fault) */ -#if defined(VK_EXT_discard_rectangles) - PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; -#endif /* defined(VK_EXT_discard_rectangles) */ -#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 - PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; - PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; -#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ -#if defined(VK_EXT_display_control) - PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; - PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; - PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; - PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; -#endif /* defined(VK_EXT_display_control) */ -#if defined(VK_EXT_external_memory_host) - PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; -#endif /* defined(VK_EXT_external_memory_host) */ -#if defined(VK_EXT_full_screen_exclusive) - PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; - PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; -#endif /* defined(VK_EXT_full_screen_exclusive) */ -#if defined(VK_EXT_hdr_metadata) - PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; -#endif /* defined(VK_EXT_hdr_metadata) */ -#if defined(VK_EXT_host_image_copy) - PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; - PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; - PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; - PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; -#endif /* defined(VK_EXT_host_image_copy) */ -#if defined(VK_EXT_host_query_reset) - PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; -#endif /* defined(VK_EXT_host_query_reset) */ -#if defined(VK_EXT_image_drm_format_modifier) - PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; -#endif /* defined(VK_EXT_image_drm_format_modifier) */ -#if defined(VK_EXT_line_rasterization) - PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; -#endif /* defined(VK_EXT_line_rasterization) */ -#if defined(VK_EXT_mesh_shader) - PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; - PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; - PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; -#endif /* defined(VK_EXT_mesh_shader) */ -#if defined(VK_EXT_metal_objects) - PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; -#endif /* defined(VK_EXT_metal_objects) */ -#if defined(VK_EXT_multi_draw) - PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; - PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; -#endif /* defined(VK_EXT_multi_draw) */ -#if defined(VK_EXT_opacity_micromap) - PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; - PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; - PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; - PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; - PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; - PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; - PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; - PFN_vkCopyMicromapEXT vkCopyMicromapEXT; - PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; - PFN_vkCreateMicromapEXT vkCreateMicromapEXT; - PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; - PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; - PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; - PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; -#endif /* defined(VK_EXT_opacity_micromap) */ -#if defined(VK_EXT_pageable_device_local_memory) - PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; -#endif /* defined(VK_EXT_pageable_device_local_memory) */ -#if defined(VK_EXT_pipeline_properties) - PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; -#endif /* defined(VK_EXT_pipeline_properties) */ -#if defined(VK_EXT_private_data) - PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; - PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; - PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; - PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; -#endif /* defined(VK_EXT_private_data) */ -#if defined(VK_EXT_sample_locations) - PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; -#endif /* defined(VK_EXT_sample_locations) */ -#if defined(VK_EXT_shader_module_identifier) - PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; - PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; -#endif /* defined(VK_EXT_shader_module_identifier) */ -#if defined(VK_EXT_shader_object) - PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; - PFN_vkCreateShadersEXT vkCreateShadersEXT; - PFN_vkDestroyShaderEXT vkDestroyShaderEXT; - PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; -#endif /* defined(VK_EXT_shader_object) */ -#if defined(VK_EXT_swapchain_maintenance1) - PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; -#endif /* defined(VK_EXT_swapchain_maintenance1) */ -#if defined(VK_EXT_transform_feedback) - PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; - PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; - PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; - PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; - PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; - PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; -#endif /* defined(VK_EXT_transform_feedback) */ -#if defined(VK_EXT_validation_cache) - PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; - PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; - PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; - PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; -#endif /* defined(VK_EXT_validation_cache) */ -#if defined(VK_FUCHSIA_buffer_collection) - PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; - PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; - PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; - PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; - PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; -#endif /* defined(VK_FUCHSIA_buffer_collection) */ -#if defined(VK_FUCHSIA_external_memory) - PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; - PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; -#endif /* defined(VK_FUCHSIA_external_memory) */ -#if defined(VK_FUCHSIA_external_semaphore) - PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; - PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; -#endif /* defined(VK_FUCHSIA_external_semaphore) */ -#if defined(VK_GOOGLE_display_timing) - PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; - PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; -#endif /* defined(VK_GOOGLE_display_timing) */ -#if defined(VK_HUAWEI_cluster_culling_shader) - PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; - PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; -#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ -#if defined(VK_HUAWEI_invocation_mask) - PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; -#endif /* defined(VK_HUAWEI_invocation_mask) */ -#if defined(VK_HUAWEI_subpass_shading) - PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; - PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; -#endif /* defined(VK_HUAWEI_subpass_shading) */ -#if defined(VK_INTEL_performance_query) - PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; - PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; - PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; - PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; - PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; - PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; - PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; - PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; - PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; -#endif /* defined(VK_INTEL_performance_query) */ -#if defined(VK_KHR_acceleration_structure) - PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; - PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; - PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; - PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; - PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; - PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; - PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; - PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; - PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; - PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; - PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; - PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; - PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; - PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; - PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; - PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; -#endif /* defined(VK_KHR_acceleration_structure) */ -#if defined(VK_KHR_bind_memory2) - PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; - PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; -#endif /* defined(VK_KHR_bind_memory2) */ -#if defined(VK_KHR_buffer_device_address) - PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; - PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; - PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; -#endif /* defined(VK_KHR_buffer_device_address) */ -#if defined(VK_KHR_calibrated_timestamps) - PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR; -#endif /* defined(VK_KHR_calibrated_timestamps) */ -#if defined(VK_KHR_copy_commands2) - PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; - PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; - PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; - PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; - PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; - PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; -#endif /* defined(VK_KHR_copy_commands2) */ -#if defined(VK_KHR_create_renderpass2) - PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; - PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; - PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; - PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; -#endif /* defined(VK_KHR_create_renderpass2) */ -#if defined(VK_KHR_deferred_host_operations) - PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; - PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; - PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; - PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; - PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; -#endif /* defined(VK_KHR_deferred_host_operations) */ -#if defined(VK_KHR_descriptor_update_template) - PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; - PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; - PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; -#endif /* defined(VK_KHR_descriptor_update_template) */ -#if defined(VK_KHR_device_group) - PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; - PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; - PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; -#endif /* defined(VK_KHR_device_group) */ -#if defined(VK_KHR_display_swapchain) - PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; -#endif /* defined(VK_KHR_display_swapchain) */ -#if defined(VK_KHR_draw_indirect_count) - PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; - PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; -#endif /* defined(VK_KHR_draw_indirect_count) */ -#if defined(VK_KHR_dynamic_rendering) - PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; - PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; -#endif /* defined(VK_KHR_dynamic_rendering) */ -#if defined(VK_KHR_dynamic_rendering_local_read) - PFN_vkCmdSetRenderingAttachmentLocationsKHR vkCmdSetRenderingAttachmentLocationsKHR; - PFN_vkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHR; -#endif /* defined(VK_KHR_dynamic_rendering_local_read) */ -#if defined(VK_KHR_external_fence_fd) - PFN_vkGetFenceFdKHR vkGetFenceFdKHR; - PFN_vkImportFenceFdKHR vkImportFenceFdKHR; -#endif /* defined(VK_KHR_external_fence_fd) */ -#if defined(VK_KHR_external_fence_win32) - PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; - PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; -#endif /* defined(VK_KHR_external_fence_win32) */ -#if defined(VK_KHR_external_memory_fd) - PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; - PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; -#endif /* defined(VK_KHR_external_memory_fd) */ -#if defined(VK_KHR_external_memory_win32) - PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; - PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; -#endif /* defined(VK_KHR_external_memory_win32) */ -#if defined(VK_KHR_external_semaphore_fd) - PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; - PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; -#endif /* defined(VK_KHR_external_semaphore_fd) */ -#if defined(VK_KHR_external_semaphore_win32) - PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; - PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; -#endif /* defined(VK_KHR_external_semaphore_win32) */ -#if defined(VK_KHR_fragment_shading_rate) - PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; -#endif /* defined(VK_KHR_fragment_shading_rate) */ -#if defined(VK_KHR_get_memory_requirements2) - PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; - PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; - PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; -#endif /* defined(VK_KHR_get_memory_requirements2) */ -#if defined(VK_KHR_line_rasterization) - PFN_vkCmdSetLineStippleKHR vkCmdSetLineStippleKHR; -#endif /* defined(VK_KHR_line_rasterization) */ -#if defined(VK_KHR_maintenance1) - PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; -#endif /* defined(VK_KHR_maintenance1) */ -#if defined(VK_KHR_maintenance3) - PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; -#endif /* defined(VK_KHR_maintenance3) */ -#if defined(VK_KHR_maintenance4) - PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; - PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; - PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; -#endif /* defined(VK_KHR_maintenance4) */ -#if defined(VK_KHR_maintenance5) - PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; - PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; - PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; - PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; -#endif /* defined(VK_KHR_maintenance5) */ -#if defined(VK_KHR_maintenance6) - PFN_vkCmdBindDescriptorSets2KHR vkCmdBindDescriptorSets2KHR; - PFN_vkCmdPushConstants2KHR vkCmdPushConstants2KHR; -#endif /* defined(VK_KHR_maintenance6) */ -#if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) - PFN_vkCmdPushDescriptorSet2KHR vkCmdPushDescriptorSet2KHR; - PFN_vkCmdPushDescriptorSetWithTemplate2KHR vkCmdPushDescriptorSetWithTemplate2KHR; -#endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) - PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; - PFN_vkCmdSetDescriptorBufferOffsets2EXT vkCmdSetDescriptorBufferOffsets2EXT; -#endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_KHR_map_memory2) - PFN_vkMapMemory2KHR vkMapMemory2KHR; - PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; -#endif /* defined(VK_KHR_map_memory2) */ -#if defined(VK_KHR_performance_query) - PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; - PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; -#endif /* defined(VK_KHR_performance_query) */ -#if defined(VK_KHR_pipeline_executable_properties) - PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; - PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; - PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; -#endif /* defined(VK_KHR_pipeline_executable_properties) */ -#if defined(VK_KHR_present_wait) - PFN_vkWaitForPresentKHR vkWaitForPresentKHR; -#endif /* defined(VK_KHR_present_wait) */ -#if defined(VK_KHR_push_descriptor) - PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; -#endif /* defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) - PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; -#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_ray_tracing_pipeline) - PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; - PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; - PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; - PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; - PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; - PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; - PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; -#endif /* defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_sampler_ycbcr_conversion) - PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; - PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; -#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ -#if defined(VK_KHR_shared_presentable_image) - PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; -#endif /* defined(VK_KHR_shared_presentable_image) */ -#if defined(VK_KHR_swapchain) - PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; - PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; - PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; - PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; - PFN_vkQueuePresentKHR vkQueuePresentKHR; -#endif /* defined(VK_KHR_swapchain) */ -#if defined(VK_KHR_synchronization2) - PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; - PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; - PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; - PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; - PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; - PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; -#endif /* defined(VK_KHR_synchronization2) */ -#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) - PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; -#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ -#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) - PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; -#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_KHR_timeline_semaphore) - PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; - PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; - PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; -#endif /* defined(VK_KHR_timeline_semaphore) */ -#if defined(VK_KHR_video_decode_queue) - PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; -#endif /* defined(VK_KHR_video_decode_queue) */ -#if defined(VK_KHR_video_encode_queue) - PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; - PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; -#endif /* defined(VK_KHR_video_encode_queue) */ -#if defined(VK_KHR_video_queue) - PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; - PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; - PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; - PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; - PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; - PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; - PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; - PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; - PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; - PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; -#endif /* defined(VK_KHR_video_queue) */ -#if defined(VK_NVX_binary_import) - PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; - PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; - PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; - PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; - PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; -#endif /* defined(VK_NVX_binary_import) */ -#if defined(VK_NVX_image_view_handle) - PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; - PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; -#endif /* defined(VK_NVX_image_view_handle) */ -#if defined(VK_NV_clip_space_w_scaling) - PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; -#endif /* defined(VK_NV_clip_space_w_scaling) */ -#if defined(VK_NV_copy_memory_indirect) - PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; - PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; -#endif /* defined(VK_NV_copy_memory_indirect) */ -#if defined(VK_NV_cuda_kernel_launch) - PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; - PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; - PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; - PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; - PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; - PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; -#endif /* defined(VK_NV_cuda_kernel_launch) */ -#if defined(VK_NV_device_diagnostic_checkpoints) - PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; - PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; -#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_NV_device_generated_commands) - PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; - PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; - PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; - PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; - PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; - PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; -#endif /* defined(VK_NV_device_generated_commands) */ -#if defined(VK_NV_device_generated_commands_compute) - PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; - PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; - PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; -#endif /* defined(VK_NV_device_generated_commands_compute) */ -#if defined(VK_NV_external_memory_rdma) - PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; -#endif /* defined(VK_NV_external_memory_rdma) */ -#if defined(VK_NV_external_memory_win32) - PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; -#endif /* defined(VK_NV_external_memory_win32) */ -#if defined(VK_NV_fragment_shading_rate_enums) - PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; -#endif /* defined(VK_NV_fragment_shading_rate_enums) */ -#if defined(VK_NV_low_latency2) - PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; - PFN_vkLatencySleepNV vkLatencySleepNV; - PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; - PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; - PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; -#endif /* defined(VK_NV_low_latency2) */ -#if defined(VK_NV_memory_decompression) - PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; - PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; -#endif /* defined(VK_NV_memory_decompression) */ -#if defined(VK_NV_mesh_shader) - PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; - PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; - PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; -#endif /* defined(VK_NV_mesh_shader) */ -#if defined(VK_NV_optical_flow) - PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; - PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; - PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; - PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; -#endif /* defined(VK_NV_optical_flow) */ -#if defined(VK_NV_ray_tracing) - PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; - PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; - PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; - PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; - PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; - PFN_vkCompileDeferredNV vkCompileDeferredNV; - PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; - PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; - PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; - PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; - PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; - PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; -#endif /* defined(VK_NV_ray_tracing) */ -#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 - PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; -#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ -#if defined(VK_NV_scissor_exclusive) - PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; -#endif /* defined(VK_NV_scissor_exclusive) */ -#if defined(VK_NV_shading_rate_image) - PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; - PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; - PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; -#endif /* defined(VK_NV_shading_rate_image) */ -#if defined(VK_QCOM_tile_properties) - PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; - PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; -#endif /* defined(VK_QCOM_tile_properties) */ -#if defined(VK_QNX_external_memory_screen_buffer) - PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; -#endif /* defined(VK_QNX_external_memory_screen_buffer) */ -#if defined(VK_VALVE_descriptor_set_host_mapping) - PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; - PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; -#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ -#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) - PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; - PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; - PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; - PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; - PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; - PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; - PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; - PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; - PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; - PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; - PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; - PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) - PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; - PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; - PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; - PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; - PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) - PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; - PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; - PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; - PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; - PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; - PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; - PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; - PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; - PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; - PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) - PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) - PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) - PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; - PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) - PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) - PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) - PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) - PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) - PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; - PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) - PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ -#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)) - PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) - PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ -#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)) - PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; - PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) - PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; - PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; - PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) - PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) - PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) - PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ -#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) - PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; -#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) - PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; -#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ -#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) - PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; -#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) - PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; - PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) - PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ - /* VOLK_GENERATE_DEVICE_TABLE */ -}; - -/* VOLK_GENERATE_PROTOTYPES_H */ -#if defined(VK_VERSION_1_0) -extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; -extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; -extern PFN_vkAllocateMemory vkAllocateMemory; -extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer; -extern PFN_vkBindBufferMemory vkBindBufferMemory; -extern PFN_vkBindImageMemory vkBindImageMemory; -extern PFN_vkCmdBeginQuery vkCmdBeginQuery; -extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; -extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; -extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; -extern PFN_vkCmdBindPipeline vkCmdBindPipeline; -extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; -extern PFN_vkCmdBlitImage vkCmdBlitImage; -extern PFN_vkCmdClearAttachments vkCmdClearAttachments; -extern PFN_vkCmdClearColorImage vkCmdClearColorImage; -extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; -extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer; -extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; -extern PFN_vkCmdCopyImage vkCmdCopyImage; -extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; -extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; -extern PFN_vkCmdDispatch vkCmdDispatch; -extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; -extern PFN_vkCmdDraw vkCmdDraw; -extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed; -extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; -extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect; -extern PFN_vkCmdEndQuery vkCmdEndQuery; -extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass; -extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands; -extern PFN_vkCmdFillBuffer vkCmdFillBuffer; -extern PFN_vkCmdNextSubpass vkCmdNextSubpass; -extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; -extern PFN_vkCmdPushConstants vkCmdPushConstants; -extern PFN_vkCmdResetEvent vkCmdResetEvent; -extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool; -extern PFN_vkCmdResolveImage vkCmdResolveImage; -extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; -extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias; -extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; -extern PFN_vkCmdSetEvent vkCmdSetEvent; -extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth; -extern PFN_vkCmdSetScissor vkCmdSetScissor; -extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; -extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference; -extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; -extern PFN_vkCmdSetViewport vkCmdSetViewport; -extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; -extern PFN_vkCmdWaitEvents vkCmdWaitEvents; -extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; -extern PFN_vkCreateBuffer vkCreateBuffer; -extern PFN_vkCreateBufferView vkCreateBufferView; -extern PFN_vkCreateCommandPool vkCreateCommandPool; -extern PFN_vkCreateComputePipelines vkCreateComputePipelines; -extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool; -extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; -extern PFN_vkCreateDevice vkCreateDevice; -extern PFN_vkCreateEvent vkCreateEvent; -extern PFN_vkCreateFence vkCreateFence; -extern PFN_vkCreateFramebuffer vkCreateFramebuffer; -extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; -extern PFN_vkCreateImage vkCreateImage; -extern PFN_vkCreateImageView vkCreateImageView; -extern PFN_vkCreateInstance vkCreateInstance; -extern PFN_vkCreatePipelineCache vkCreatePipelineCache; -extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout; -extern PFN_vkCreateQueryPool vkCreateQueryPool; -extern PFN_vkCreateRenderPass vkCreateRenderPass; -extern PFN_vkCreateSampler vkCreateSampler; -extern PFN_vkCreateSemaphore vkCreateSemaphore; -extern PFN_vkCreateShaderModule vkCreateShaderModule; -extern PFN_vkDestroyBuffer vkDestroyBuffer; -extern PFN_vkDestroyBufferView vkDestroyBufferView; -extern PFN_vkDestroyCommandPool vkDestroyCommandPool; -extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; -extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; -extern PFN_vkDestroyDevice vkDestroyDevice; -extern PFN_vkDestroyEvent vkDestroyEvent; -extern PFN_vkDestroyFence vkDestroyFence; -extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer; -extern PFN_vkDestroyImage vkDestroyImage; -extern PFN_vkDestroyImageView vkDestroyImageView; -extern PFN_vkDestroyInstance vkDestroyInstance; -extern PFN_vkDestroyPipeline vkDestroyPipeline; -extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache; -extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; -extern PFN_vkDestroyQueryPool vkDestroyQueryPool; -extern PFN_vkDestroyRenderPass vkDestroyRenderPass; -extern PFN_vkDestroySampler vkDestroySampler; -extern PFN_vkDestroySemaphore vkDestroySemaphore; -extern PFN_vkDestroyShaderModule vkDestroyShaderModule; -extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle; -extern PFN_vkEndCommandBuffer vkEndCommandBuffer; -extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; -extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; -extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; -extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; -extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; -extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; -extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers; -extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets; -extern PFN_vkFreeMemory vkFreeMemory; -extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; -extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; -extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; -extern PFN_vkGetDeviceQueue vkGetDeviceQueue; -extern PFN_vkGetEventStatus vkGetEventStatus; -extern PFN_vkGetFenceStatus vkGetFenceStatus; -extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; -extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; -extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; -extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; -extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; -extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; -extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; -extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; -extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; -extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; -extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; -extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData; -extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults; -extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; -extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; -extern PFN_vkMapMemory vkMapMemory; -extern PFN_vkMergePipelineCaches vkMergePipelineCaches; -extern PFN_vkQueueBindSparse vkQueueBindSparse; -extern PFN_vkQueueSubmit vkQueueSubmit; -extern PFN_vkQueueWaitIdle vkQueueWaitIdle; -extern PFN_vkResetCommandBuffer vkResetCommandBuffer; -extern PFN_vkResetCommandPool vkResetCommandPool; -extern PFN_vkResetDescriptorPool vkResetDescriptorPool; -extern PFN_vkResetEvent vkResetEvent; -extern PFN_vkResetFences vkResetFences; -extern PFN_vkSetEvent vkSetEvent; -extern PFN_vkUnmapMemory vkUnmapMemory; -extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; -extern PFN_vkWaitForFences vkWaitForFences; -#endif /* defined(VK_VERSION_1_0) */ -#if defined(VK_VERSION_1_1) -extern PFN_vkBindBufferMemory2 vkBindBufferMemory2; -extern PFN_vkBindImageMemory2 vkBindImageMemory2; -extern PFN_vkCmdDispatchBase vkCmdDispatchBase; -extern PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; -extern PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; -extern PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; -extern PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; -extern PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; -extern PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; -extern PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; -extern PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; -extern PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; -extern PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; -extern PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; -extern PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; -extern PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; -extern PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; -extern PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; -extern PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; -extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; -extern PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; -extern PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; -extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; -extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; -extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; -extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; -extern PFN_vkTrimCommandPool vkTrimCommandPool; -extern PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; -#endif /* defined(VK_VERSION_1_1) */ -#if defined(VK_VERSION_1_2) -extern PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; -extern PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; -extern PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; -extern PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; -extern PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; -extern PFN_vkCreateRenderPass2 vkCreateRenderPass2; -extern PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; -extern PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; -extern PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; -extern PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; -extern PFN_vkResetQueryPool vkResetQueryPool; -extern PFN_vkSignalSemaphore vkSignalSemaphore; -extern PFN_vkWaitSemaphores vkWaitSemaphores; -#endif /* defined(VK_VERSION_1_2) */ -#if defined(VK_VERSION_1_3) -extern PFN_vkCmdBeginRendering vkCmdBeginRendering; -extern PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; -extern PFN_vkCmdBlitImage2 vkCmdBlitImage2; -extern PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; -extern PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; -extern PFN_vkCmdCopyImage2 vkCmdCopyImage2; -extern PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; -extern PFN_vkCmdEndRendering vkCmdEndRendering; -extern PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; -extern PFN_vkCmdResetEvent2 vkCmdResetEvent2; -extern PFN_vkCmdResolveImage2 vkCmdResolveImage2; -extern PFN_vkCmdSetCullMode vkCmdSetCullMode; -extern PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; -extern PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; -extern PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; -extern PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; -extern PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; -extern PFN_vkCmdSetEvent2 vkCmdSetEvent2; -extern PFN_vkCmdSetFrontFace vkCmdSetFrontFace; -extern PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; -extern PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; -extern PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; -extern PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; -extern PFN_vkCmdSetStencilOp vkCmdSetStencilOp; -extern PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; -extern PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; -extern PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; -extern PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; -extern PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; -extern PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; -extern PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; -extern PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; -extern PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; -extern PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties; -extern PFN_vkGetPrivateData vkGetPrivateData; -extern PFN_vkQueueSubmit2 vkQueueSubmit2; -extern PFN_vkSetPrivateData vkSetPrivateData; -#endif /* defined(VK_VERSION_1_3) */ -#if defined(VK_AMDX_shader_enqueue) -extern PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; -extern PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; -extern PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; -extern PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; -extern PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; -extern PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; -extern PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; -#endif /* defined(VK_AMDX_shader_enqueue) */ -#if defined(VK_AMD_buffer_marker) -extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; -#endif /* defined(VK_AMD_buffer_marker) */ -#if defined(VK_AMD_display_native_hdr) -extern PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; -#endif /* defined(VK_AMD_display_native_hdr) */ -#if defined(VK_AMD_draw_indirect_count) -extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; -extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; -#endif /* defined(VK_AMD_draw_indirect_count) */ -#if defined(VK_AMD_shader_info) -extern PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; -#endif /* defined(VK_AMD_shader_info) */ -#if defined(VK_ANDROID_external_memory_android_hardware_buffer) -extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; -extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; -#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ -#if defined(VK_EXT_acquire_drm_display) -extern PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; -extern PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; -#endif /* defined(VK_EXT_acquire_drm_display) */ -#if defined(VK_EXT_acquire_xlib_display) -extern PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; -extern PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; -#endif /* defined(VK_EXT_acquire_xlib_display) */ -#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) -extern PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; -#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ -#if defined(VK_EXT_buffer_device_address) -extern PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; -#endif /* defined(VK_EXT_buffer_device_address) */ -#if defined(VK_EXT_calibrated_timestamps) -extern PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; -extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; -#endif /* defined(VK_EXT_calibrated_timestamps) */ -#if defined(VK_EXT_color_write_enable) -extern PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; -#endif /* defined(VK_EXT_color_write_enable) */ -#if defined(VK_EXT_conditional_rendering) -extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; -extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; -#endif /* defined(VK_EXT_conditional_rendering) */ -#if defined(VK_EXT_debug_marker) -extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; -extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; -extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; -extern PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; -extern PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; -#endif /* defined(VK_EXT_debug_marker) */ -#if defined(VK_EXT_debug_report) -extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; -extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; -extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; -#endif /* defined(VK_EXT_debug_report) */ -#if defined(VK_EXT_debug_utils) -extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; -extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; -extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; -extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; -extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; -extern PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; -extern PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; -extern PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; -extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; -extern PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; -extern PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; -#endif /* defined(VK_EXT_debug_utils) */ -#if defined(VK_EXT_depth_bias_control) -extern PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; -#endif /* defined(VK_EXT_depth_bias_control) */ -#if defined(VK_EXT_descriptor_buffer) -extern PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; -extern PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; -extern PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; -extern PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; -extern PFN_vkGetDescriptorEXT vkGetDescriptorEXT; -extern PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; -extern PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; -extern PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; -extern PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; -extern PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; -#endif /* defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) -extern PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; -#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ -#if defined(VK_EXT_device_fault) -extern PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; -#endif /* defined(VK_EXT_device_fault) */ -#if defined(VK_EXT_direct_mode_display) -extern PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; -#endif /* defined(VK_EXT_direct_mode_display) */ -#if defined(VK_EXT_directfb_surface) -extern PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT; -extern PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT; -#endif /* defined(VK_EXT_directfb_surface) */ -#if defined(VK_EXT_discard_rectangles) -extern PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; -#endif /* defined(VK_EXT_discard_rectangles) */ -#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 -extern PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; -extern PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; -#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ -#if defined(VK_EXT_display_control) -extern PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; -extern PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; -extern PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; -extern PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; -#endif /* defined(VK_EXT_display_control) */ -#if defined(VK_EXT_display_surface_counter) -extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; -#endif /* defined(VK_EXT_display_surface_counter) */ -#if defined(VK_EXT_external_memory_host) -extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; -#endif /* defined(VK_EXT_external_memory_host) */ -#if defined(VK_EXT_full_screen_exclusive) -extern PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; -extern PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT; -extern PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; -#endif /* defined(VK_EXT_full_screen_exclusive) */ -#if defined(VK_EXT_hdr_metadata) -extern PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; -#endif /* defined(VK_EXT_hdr_metadata) */ -#if defined(VK_EXT_headless_surface) -extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; -#endif /* defined(VK_EXT_headless_surface) */ -#if defined(VK_EXT_host_image_copy) -extern PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; -extern PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; -extern PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; -extern PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; -#endif /* defined(VK_EXT_host_image_copy) */ -#if defined(VK_EXT_host_query_reset) -extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; -#endif /* defined(VK_EXT_host_query_reset) */ -#if defined(VK_EXT_image_drm_format_modifier) -extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; -#endif /* defined(VK_EXT_image_drm_format_modifier) */ -#if defined(VK_EXT_line_rasterization) -extern PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; -#endif /* defined(VK_EXT_line_rasterization) */ -#if defined(VK_EXT_mesh_shader) -extern PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; -extern PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; -extern PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; -#endif /* defined(VK_EXT_mesh_shader) */ -#if defined(VK_EXT_metal_objects) -extern PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; -#endif /* defined(VK_EXT_metal_objects) */ -#if defined(VK_EXT_metal_surface) -extern PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT; -#endif /* defined(VK_EXT_metal_surface) */ -#if defined(VK_EXT_multi_draw) -extern PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; -extern PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; -#endif /* defined(VK_EXT_multi_draw) */ -#if defined(VK_EXT_opacity_micromap) -extern PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; -extern PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; -extern PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; -extern PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; -extern PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; -extern PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; -extern PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; -extern PFN_vkCopyMicromapEXT vkCopyMicromapEXT; -extern PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; -extern PFN_vkCreateMicromapEXT vkCreateMicromapEXT; -extern PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; -extern PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; -extern PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; -extern PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; -#endif /* defined(VK_EXT_opacity_micromap) */ -#if defined(VK_EXT_pageable_device_local_memory) -extern PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; -#endif /* defined(VK_EXT_pageable_device_local_memory) */ -#if defined(VK_EXT_pipeline_properties) -extern PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; -#endif /* defined(VK_EXT_pipeline_properties) */ -#if defined(VK_EXT_private_data) -extern PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; -extern PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; -extern PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; -extern PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; -#endif /* defined(VK_EXT_private_data) */ -#if defined(VK_EXT_sample_locations) -extern PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; -extern PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; -#endif /* defined(VK_EXT_sample_locations) */ -#if defined(VK_EXT_shader_module_identifier) -extern PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; -extern PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; -#endif /* defined(VK_EXT_shader_module_identifier) */ -#if defined(VK_EXT_shader_object) -extern PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; -extern PFN_vkCreateShadersEXT vkCreateShadersEXT; -extern PFN_vkDestroyShaderEXT vkDestroyShaderEXT; -extern PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; -#endif /* defined(VK_EXT_shader_object) */ -#if defined(VK_EXT_swapchain_maintenance1) -extern PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; -#endif /* defined(VK_EXT_swapchain_maintenance1) */ -#if defined(VK_EXT_tooling_info) -extern PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; -#endif /* defined(VK_EXT_tooling_info) */ -#if defined(VK_EXT_transform_feedback) -extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; -extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; -extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; -extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; -extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; -extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; -#endif /* defined(VK_EXT_transform_feedback) */ -#if defined(VK_EXT_validation_cache) -extern PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; -extern PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; -extern PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; -extern PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; -#endif /* defined(VK_EXT_validation_cache) */ -#if defined(VK_FUCHSIA_buffer_collection) -extern PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; -extern PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; -extern PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; -extern PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; -extern PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; -#endif /* defined(VK_FUCHSIA_buffer_collection) */ -#if defined(VK_FUCHSIA_external_memory) -extern PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; -extern PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; -#endif /* defined(VK_FUCHSIA_external_memory) */ -#if defined(VK_FUCHSIA_external_semaphore) -extern PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; -extern PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; -#endif /* defined(VK_FUCHSIA_external_semaphore) */ -#if defined(VK_FUCHSIA_imagepipe_surface) -extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; -#endif /* defined(VK_FUCHSIA_imagepipe_surface) */ -#if defined(VK_GGP_stream_descriptor_surface) -extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; -#endif /* defined(VK_GGP_stream_descriptor_surface) */ -#if defined(VK_GOOGLE_display_timing) -extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; -extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; -#endif /* defined(VK_GOOGLE_display_timing) */ -#if defined(VK_HUAWEI_cluster_culling_shader) -extern PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; -extern PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; -#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ -#if defined(VK_HUAWEI_invocation_mask) -extern PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; -#endif /* defined(VK_HUAWEI_invocation_mask) */ -#if defined(VK_HUAWEI_subpass_shading) -extern PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; -extern PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; -#endif /* defined(VK_HUAWEI_subpass_shading) */ -#if defined(VK_INTEL_performance_query) -extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; -extern PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; -extern PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; -extern PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; -extern PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; -extern PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; -extern PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; -extern PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; -extern PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; -#endif /* defined(VK_INTEL_performance_query) */ -#if defined(VK_KHR_acceleration_structure) -extern PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; -extern PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; -extern PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; -extern PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; -extern PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; -extern PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; -extern PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; -extern PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; -extern PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; -extern PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; -extern PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; -extern PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; -extern PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; -extern PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; -extern PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; -extern PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; -#endif /* defined(VK_KHR_acceleration_structure) */ -#if defined(VK_KHR_android_surface) -extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; -#endif /* defined(VK_KHR_android_surface) */ -#if defined(VK_KHR_bind_memory2) -extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; -extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; -#endif /* defined(VK_KHR_bind_memory2) */ -#if defined(VK_KHR_buffer_device_address) -extern PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; -extern PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; -extern PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; -#endif /* defined(VK_KHR_buffer_device_address) */ -#if defined(VK_KHR_calibrated_timestamps) -extern PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR; -extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR; -#endif /* defined(VK_KHR_calibrated_timestamps) */ -#if defined(VK_KHR_cooperative_matrix) -extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; -#endif /* defined(VK_KHR_cooperative_matrix) */ -#if defined(VK_KHR_copy_commands2) -extern PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; -extern PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; -extern PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; -extern PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; -extern PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; -extern PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; -#endif /* defined(VK_KHR_copy_commands2) */ -#if defined(VK_KHR_create_renderpass2) -extern PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; -extern PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; -extern PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; -extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; -#endif /* defined(VK_KHR_create_renderpass2) */ -#if defined(VK_KHR_deferred_host_operations) -extern PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; -extern PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; -extern PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; -extern PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; -extern PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; -#endif /* defined(VK_KHR_deferred_host_operations) */ -#if defined(VK_KHR_descriptor_update_template) -extern PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; -extern PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; -extern PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; -#endif /* defined(VK_KHR_descriptor_update_template) */ -#if defined(VK_KHR_device_group) -extern PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; -extern PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; -extern PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; -#endif /* defined(VK_KHR_device_group) */ -#if defined(VK_KHR_device_group_creation) -extern PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; -#endif /* defined(VK_KHR_device_group_creation) */ -#if defined(VK_KHR_display) -extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; -extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; -extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; -extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; -extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; -extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; -extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; -#endif /* defined(VK_KHR_display) */ -#if defined(VK_KHR_display_swapchain) -extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; -#endif /* defined(VK_KHR_display_swapchain) */ -#if defined(VK_KHR_draw_indirect_count) -extern PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; -extern PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; -#endif /* defined(VK_KHR_draw_indirect_count) */ -#if defined(VK_KHR_dynamic_rendering) -extern PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; -extern PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; -#endif /* defined(VK_KHR_dynamic_rendering) */ -#if defined(VK_KHR_dynamic_rendering_local_read) -extern PFN_vkCmdSetRenderingAttachmentLocationsKHR vkCmdSetRenderingAttachmentLocationsKHR; -extern PFN_vkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHR; -#endif /* defined(VK_KHR_dynamic_rendering_local_read) */ -#if defined(VK_KHR_external_fence_capabilities) -extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; -#endif /* defined(VK_KHR_external_fence_capabilities) */ -#if defined(VK_KHR_external_fence_fd) -extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR; -extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR; -#endif /* defined(VK_KHR_external_fence_fd) */ -#if defined(VK_KHR_external_fence_win32) -extern PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; -extern PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; -#endif /* defined(VK_KHR_external_fence_win32) */ -#if defined(VK_KHR_external_memory_capabilities) -extern PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; -#endif /* defined(VK_KHR_external_memory_capabilities) */ -#if defined(VK_KHR_external_memory_fd) -extern PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; -extern PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; -#endif /* defined(VK_KHR_external_memory_fd) */ -#if defined(VK_KHR_external_memory_win32) -extern PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; -extern PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; -#endif /* defined(VK_KHR_external_memory_win32) */ -#if defined(VK_KHR_external_semaphore_capabilities) -extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; -#endif /* defined(VK_KHR_external_semaphore_capabilities) */ -#if defined(VK_KHR_external_semaphore_fd) -extern PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; -extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; -#endif /* defined(VK_KHR_external_semaphore_fd) */ -#if defined(VK_KHR_external_semaphore_win32) -extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; -extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; -#endif /* defined(VK_KHR_external_semaphore_win32) */ -#if defined(VK_KHR_fragment_shading_rate) -extern PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; -extern PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; -#endif /* defined(VK_KHR_fragment_shading_rate) */ -#if defined(VK_KHR_get_display_properties2) -extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; -extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; -extern PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; -extern PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; -#endif /* defined(VK_KHR_get_display_properties2) */ -#if defined(VK_KHR_get_memory_requirements2) -extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; -extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; -extern PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; -#endif /* defined(VK_KHR_get_memory_requirements2) */ -#if defined(VK_KHR_get_physical_device_properties2) -extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; -extern PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; -extern PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; -extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; -extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; -extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; -extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; -#endif /* defined(VK_KHR_get_physical_device_properties2) */ -#if defined(VK_KHR_get_surface_capabilities2) -extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; -extern PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; -#endif /* defined(VK_KHR_get_surface_capabilities2) */ -#if defined(VK_KHR_line_rasterization) -extern PFN_vkCmdSetLineStippleKHR vkCmdSetLineStippleKHR; -#endif /* defined(VK_KHR_line_rasterization) */ -#if defined(VK_KHR_maintenance1) -extern PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; -#endif /* defined(VK_KHR_maintenance1) */ -#if defined(VK_KHR_maintenance3) -extern PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; -#endif /* defined(VK_KHR_maintenance3) */ -#if defined(VK_KHR_maintenance4) -extern PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; -extern PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; -extern PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; -#endif /* defined(VK_KHR_maintenance4) */ -#if defined(VK_KHR_maintenance5) -extern PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; -extern PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; -extern PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; -extern PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; -#endif /* defined(VK_KHR_maintenance5) */ -#if defined(VK_KHR_maintenance6) -extern PFN_vkCmdBindDescriptorSets2KHR vkCmdBindDescriptorSets2KHR; -extern PFN_vkCmdPushConstants2KHR vkCmdPushConstants2KHR; -#endif /* defined(VK_KHR_maintenance6) */ -#if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) -extern PFN_vkCmdPushDescriptorSet2KHR vkCmdPushDescriptorSet2KHR; -extern PFN_vkCmdPushDescriptorSetWithTemplate2KHR vkCmdPushDescriptorSetWithTemplate2KHR; -#endif /* defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) -extern PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; -extern PFN_vkCmdSetDescriptorBufferOffsets2EXT vkCmdSetDescriptorBufferOffsets2EXT; -#endif /* defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) */ -#if defined(VK_KHR_map_memory2) -extern PFN_vkMapMemory2KHR vkMapMemory2KHR; -extern PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; -#endif /* defined(VK_KHR_map_memory2) */ -#if defined(VK_KHR_performance_query) -extern PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; -extern PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; -extern PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; -extern PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; -#endif /* defined(VK_KHR_performance_query) */ -#if defined(VK_KHR_pipeline_executable_properties) -extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; -extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; -extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; -#endif /* defined(VK_KHR_pipeline_executable_properties) */ -#if defined(VK_KHR_present_wait) -extern PFN_vkWaitForPresentKHR vkWaitForPresentKHR; -#endif /* defined(VK_KHR_present_wait) */ -#if defined(VK_KHR_push_descriptor) -extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; -#endif /* defined(VK_KHR_push_descriptor) */ -#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) -extern PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; -#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_ray_tracing_pipeline) -extern PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; -extern PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; -extern PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; -extern PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; -extern PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; -extern PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; -extern PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; -#endif /* defined(VK_KHR_ray_tracing_pipeline) */ -#if defined(VK_KHR_sampler_ycbcr_conversion) -extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; -extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; -#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ -#if defined(VK_KHR_shared_presentable_image) -extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; -#endif /* defined(VK_KHR_shared_presentable_image) */ -#if defined(VK_KHR_surface) -extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; -extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; -extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; -extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; -extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; -#endif /* defined(VK_KHR_surface) */ -#if defined(VK_KHR_swapchain) -extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; -extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; -extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; -extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; -extern PFN_vkQueuePresentKHR vkQueuePresentKHR; -#endif /* defined(VK_KHR_swapchain) */ -#if defined(VK_KHR_synchronization2) -extern PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; -extern PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; -extern PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; -extern PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; -extern PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; -extern PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; -#endif /* defined(VK_KHR_synchronization2) */ -#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) -extern PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; -#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ -#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) -extern PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; -#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_KHR_timeline_semaphore) -extern PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; -extern PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; -extern PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; -#endif /* defined(VK_KHR_timeline_semaphore) */ -#if defined(VK_KHR_video_decode_queue) -extern PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; -#endif /* defined(VK_KHR_video_decode_queue) */ -#if defined(VK_KHR_video_encode_queue) -extern PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; -extern PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; -extern PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; -#endif /* defined(VK_KHR_video_encode_queue) */ -#if defined(VK_KHR_video_queue) -extern PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; -extern PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; -extern PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; -extern PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; -extern PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; -extern PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; -extern PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; -extern PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; -extern PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR; -extern PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR; -extern PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; -extern PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; -#endif /* defined(VK_KHR_video_queue) */ -#if defined(VK_KHR_wayland_surface) -extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; -extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; -#endif /* defined(VK_KHR_wayland_surface) */ -#if defined(VK_KHR_win32_surface) -extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; -extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; -#endif /* defined(VK_KHR_win32_surface) */ -#if defined(VK_KHR_xcb_surface) -extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; -extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; -#endif /* defined(VK_KHR_xcb_surface) */ -#if defined(VK_KHR_xlib_surface) -extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; -extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; -#endif /* defined(VK_KHR_xlib_surface) */ -#if defined(VK_MVK_ios_surface) -extern PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; -#endif /* defined(VK_MVK_ios_surface) */ -#if defined(VK_MVK_macos_surface) -extern PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; -#endif /* defined(VK_MVK_macos_surface) */ -#if defined(VK_NN_vi_surface) -extern PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; -#endif /* defined(VK_NN_vi_surface) */ -#if defined(VK_NVX_binary_import) -extern PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; -extern PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; -extern PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; -extern PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; -extern PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; -#endif /* defined(VK_NVX_binary_import) */ -#if defined(VK_NVX_image_view_handle) -extern PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; -extern PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; -#endif /* defined(VK_NVX_image_view_handle) */ -#if defined(VK_NV_acquire_winrt_display) -extern PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV; -extern PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV; -#endif /* defined(VK_NV_acquire_winrt_display) */ -#if defined(VK_NV_clip_space_w_scaling) -extern PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; -#endif /* defined(VK_NV_clip_space_w_scaling) */ -#if defined(VK_NV_cooperative_matrix) -extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; -#endif /* defined(VK_NV_cooperative_matrix) */ -#if defined(VK_NV_copy_memory_indirect) -extern PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; -extern PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; -#endif /* defined(VK_NV_copy_memory_indirect) */ -#if defined(VK_NV_coverage_reduction_mode) -extern PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; -#endif /* defined(VK_NV_coverage_reduction_mode) */ -#if defined(VK_NV_cuda_kernel_launch) -extern PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; -extern PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; -extern PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; -extern PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; -extern PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; -extern PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; -#endif /* defined(VK_NV_cuda_kernel_launch) */ -#if defined(VK_NV_device_diagnostic_checkpoints) -extern PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; -extern PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; -#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ -#if defined(VK_NV_device_generated_commands) -extern PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; -extern PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; -extern PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; -extern PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; -extern PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; -extern PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; -#endif /* defined(VK_NV_device_generated_commands) */ -#if defined(VK_NV_device_generated_commands_compute) -extern PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; -extern PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; -extern PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; -#endif /* defined(VK_NV_device_generated_commands_compute) */ -#if defined(VK_NV_external_memory_capabilities) -extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; -#endif /* defined(VK_NV_external_memory_capabilities) */ -#if defined(VK_NV_external_memory_rdma) -extern PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; -#endif /* defined(VK_NV_external_memory_rdma) */ -#if defined(VK_NV_external_memory_win32) -extern PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; -#endif /* defined(VK_NV_external_memory_win32) */ -#if defined(VK_NV_fragment_shading_rate_enums) -extern PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; -#endif /* defined(VK_NV_fragment_shading_rate_enums) */ -#if defined(VK_NV_low_latency2) -extern PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; -extern PFN_vkLatencySleepNV vkLatencySleepNV; -extern PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; -extern PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; -extern PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; -#endif /* defined(VK_NV_low_latency2) */ -#if defined(VK_NV_memory_decompression) -extern PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; -extern PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; -#endif /* defined(VK_NV_memory_decompression) */ -#if defined(VK_NV_mesh_shader) -extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; -extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; -extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; -#endif /* defined(VK_NV_mesh_shader) */ -#if defined(VK_NV_optical_flow) -extern PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; -extern PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; -extern PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; -extern PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; -extern PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV; -#endif /* defined(VK_NV_optical_flow) */ -#if defined(VK_NV_ray_tracing) -extern PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; -extern PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; -extern PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; -extern PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; -extern PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; -extern PFN_vkCompileDeferredNV vkCompileDeferredNV; -extern PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; -extern PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; -extern PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; -extern PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; -extern PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; -extern PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; -#endif /* defined(VK_NV_ray_tracing) */ -#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 -extern PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; -#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ -#if defined(VK_NV_scissor_exclusive) -extern PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; -#endif /* defined(VK_NV_scissor_exclusive) */ -#if defined(VK_NV_shading_rate_image) -extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; -extern PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; -extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; -#endif /* defined(VK_NV_shading_rate_image) */ -#if defined(VK_QCOM_tile_properties) -extern PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; -extern PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; -#endif /* defined(VK_QCOM_tile_properties) */ -#if defined(VK_QNX_external_memory_screen_buffer) -extern PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; -#endif /* defined(VK_QNX_external_memory_screen_buffer) */ -#if defined(VK_QNX_screen_surface) -extern PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; -extern PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; -#endif /* defined(VK_QNX_screen_surface) */ -#if defined(VK_VALVE_descriptor_set_host_mapping) -extern PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; -extern PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; -#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ -#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) -extern PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; -extern PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; -extern PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; -extern PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; -extern PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; -extern PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; -extern PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; -extern PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; -extern PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; -extern PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; -extern PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; -extern PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) -extern PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; -extern PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; -extern PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; -extern PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; -extern PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) -extern PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; -extern PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; -extern PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; -extern PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; -extern PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; -extern PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; -extern PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; -extern PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; -extern PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; -extern PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) -extern PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && (defined(VK_KHR_maintenance2) || defined(VK_VERSION_1_1))) || (defined(VK_EXT_shader_object)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) -extern PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_transform_feedback)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_transform_feedback)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) -extern PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; -extern PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_conservative_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_conservative_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) -extern PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_enable)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_enable)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) -extern PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_sample_locations)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_sample_locations)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) -extern PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_blend_operation_advanced)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_blend_operation_advanced)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) -extern PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_provoking_vertex)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_provoking_vertex)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) -extern PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; -extern PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_line_rasterization)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_line_rasterization)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) -extern PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_EXT_depth_clip_control)) || (defined(VK_EXT_shader_object) && defined(VK_EXT_depth_clip_control)) */ -#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)) -extern PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) -extern PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ -#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)) -extern PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; -extern PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; -#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)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) -extern PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; -extern PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; -extern PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) -extern PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) -extern PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ -#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) -extern PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; -#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ -#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) -extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; -#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) -extern PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; -#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ -#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) -extern PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; -#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) -extern PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; -#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_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) -extern PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; -extern PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; -extern PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) -extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; -#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ -/* VOLK_GENERATE_PROTOTYPES_H */ - -#ifdef __cplusplus -} -#endif - -#endif - -#ifdef VOLK_IMPLEMENTATION -#undef VOLK_IMPLEMENTATION -/* Prevent tools like dependency checkers from detecting a cyclic dependency */ -#define VOLK_SOURCE "volk.c" -#include VOLK_SOURCE -#endif - -/** - * Copyright (c) 2018-2024 Arseny Kapoulkine - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. -*/ -/* clang-format on */ diff --git a/vulkan/AppBase.cpp b/vulkan/AppBase.cpp index 8d329c9..a28ce81 100644 --- a/vulkan/AppBase.cpp +++ b/vulkan/AppBase.cpp @@ -13,14 +13,14 @@ void VK_CHECK(VkResult ret) assert(ret == VK_SUCCESS); } -std::string AppBase::getPath(const std::string path) -{ -#ifdef _WIN32 - std::string android_path = "app/src/main/assets/" + path; - return android_path; -#endif - return path; -} +//std::string AppBase::getPath(const std::string path) +//{ +//#ifdef _WIN32 +// std::string android_path = "app/src/main/assets/" + path; +// return android_path; +//#endif +// return path; +//} std::vector AppBase::readFile(const std::string& path) { diff --git a/vulkan/AppBase.h b/vulkan/AppBase.h index 49b2cbc..5ee3f62 100644 --- a/vulkan/AppBase.h +++ b/vulkan/AppBase.h @@ -11,7 +11,7 @@ // } \ // } while (0) -#include +//#include #ifdef _WIN32 #define logOut std::cout @@ -29,12 +29,15 @@ #include #include -#include #include #include #include #include #include +#include +#include +#include +#include void VK_CHECK(VkResult ret); @@ -52,10 +55,16 @@ class AppBase { public: std::vector readFile(const std::string& enginePath); - std::string getPath(const std::string path); + //std::string getPath(const std::string path); VkShaderModule createShaderModule(VkDevice& device, const std::vector& code); const std::vector validationLayers = {"VK_LAYER_KHRONOS_validation"}; protected: + long long getCurrentTimeMillis() { + auto now = std::chrono::system_clock::now(); + auto duration = now.time_since_epoch(); + return std::chrono::duration_cast(duration).count(); + } + VkInstance instance; void createInstance(); bool checkValidationLayerSupport(); diff --git a/vulkan/Application.cpp b/vulkan/Application.cpp index 8ffcdd3..84f9dfc 100644 --- a/vulkan/Application.cpp +++ b/vulkan/Application.cpp @@ -178,8 +178,6 @@ void Application::createLogicalDevice() { throw std::runtime_error("failed to create logical device!"); } - v_device = std::make_unique(v_gpu, device, surface); - vkGetDeviceQueue(device, indices.graphicsFamily.value(), 0, &graphicsQueue); vkGetDeviceQueue(device, indices.presentFamily.value(), 0, &presentQueue); } @@ -480,11 +478,7 @@ void Application::recordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t im vkCmdBeginRenderPass(commandBuffer, &renderPassInfo, VK_SUBPASS_CONTENTS_INLINE); - // 绑定图形管线 - vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipeline); - - // 绘制三角形 - vkCmdDraw(commandBuffer, 3, 1, 0, 0); + render(commandBuffer); // 结束渲染流程 vkCmdEndRenderPass(commandBuffer); @@ -494,6 +488,15 @@ void Application::recordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t im } } +void Application::render(VkCommandBuffer commandBuffer) +{ + // 绑定图形管线 + vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipeline); + + // 绘制三角形 + vkCmdDraw(commandBuffer, 3, 1, 0, 0); +} + void Application::drawFrame() { // 1. 等待前一帧完成 @@ -651,10 +654,10 @@ uint32_t Application::findMemoryType(VkPhysicalDevice physicalDevice, uint32_t t Texture Application::loadTexture(std::string path) { - const char* filename = getPath(path).c_str(); + std::vector data = readFile(path); std::vector image; unsigned w, h; - unsigned error = lodepng::decode(image, w, h, filename, LCT_RGBA, 8); + unsigned error = lodepng::decode(image, w, h, data.data(), LCT_RGBA, 8); Texture tex; processWithVulkan(image.data(), w, h, w * 4, image.size(), tex, true); return tex; diff --git a/vulkan/Application.h b/vulkan/Application.h index 81e02de..0edee58 100644 --- a/vulkan/Application.h +++ b/vulkan/Application.h @@ -6,8 +6,6 @@ #include #include #include -#include "framework/core/buffer.h" -#include "framework/core/device.h" struct Texture { @@ -44,12 +42,11 @@ public: void recordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex); void createSyncObjects(); void drawFrame(); + virtual void render(VkCommandBuffer commandBuffer); bool isInited() { return inited; } protected: - std::unique_ptr< vkb::core::InstanceC> v_instance; - std::unique_ptr v_gpu; - std::unique_ptr v_device; + VkPhysicalDevice physicalDevice = VK_NULL_HANDLE; // 物理设备 VkDevice device; // 逻辑设备 VkQueue graphicsQueue; // 图形队列 diff --git a/vulkan/FaceApp.cpp b/vulkan/FaceApp.cpp index 8f78fa2..afdc145 100644 --- a/vulkan/FaceApp.cpp +++ b/vulkan/FaceApp.cpp @@ -1,37 +1,298 @@ #include "FaceApp.h" -#include "common/helpers.h" +#include "hardcode_data.h" +#include + +FaceApp* FaceApp::faceIns = nullptr; FaceApp::FaceApp(/* args */) { + faceIns = this; } FaceApp::~FaceApp() { } +bool FaceApp::LoadOBJ(const std::string& filename, + std::vector& vertices, + std::vector& indices) { + + // 临时存储从OBJ文件读取的原始数据 + std::vector temp_positions; + std::vector temp_texcoords; + std::vector temp_normals; + + // 用于处理顶点索引 + std::vector vertexIndices, uvIndices, normalIndices; + + std::vector data = readFile(filename); + + // 将 vector 转换为以 null 结尾的字符串(安全做法) + std::string content(data.begin(), data.end()); + std::istringstream iss(content); // 用字符串创建字符串流 + + std::string line; + while (std::getline(iss, line)) { + // 跳过空行和注释行 + if (line.empty() || line[0] == '#') { + continue; + } + + std::istringstream iss(line); + std::string type; + iss >> type; + + if (type == "v") { // 顶点位置 + float x, y, z; + iss >> x >> y >> z; + temp_positions.push_back(x); + temp_positions.push_back(y); + temp_positions.push_back(z); + } + else if (type == "vt") { // 纹理坐标 + float u, v; + iss >> u >> v; + temp_texcoords.push_back(u); + temp_texcoords.push_back(1 - v); + } + else if (type == "vn") { // 法线 + float nx, ny, nz; + iss >> nx >> ny >> nz; + temp_normals.push_back(nx); + temp_normals.push_back(ny); + temp_normals.push_back(nz); + } + else if (type == "f") { // 面(三角形) + std::string vertex1, vertex2, vertex3; + iss >> vertex1 >> vertex2 >> vertex3; + + // 处理每个顶点的索引 + for (const std::string& vertex : { vertex1, vertex2, vertex3 }) { + std::istringstream viss(vertex); + std::string v, vt, vn; + + // 解析顶点索引格式:v/vt/vn 或 v//vn 或 v + std::getline(viss, v, '/'); + std::getline(viss, vt, '/'); + std::getline(viss, vn, '/'); + + int posIndex = std::stoi(v) - 1; // OBJ索引从1开始 + int texIndex = -1, normIndex = -1; + + if (!vt.empty()) texIndex = std::stoi(vt) - 1; + if (!vn.empty()) normIndex = std::stoi(vn) - 1; + + vertexIndices.push_back(posIndex); + uvIndices.push_back(texIndex); + normalIndices.push_back(normIndex); + } + } + } + + + // 创建顶点数据 + vertices.clear(); + indices.clear(); + + // 用于去重的哈希映射 + std::map vertexMap; + + for (size_t i = 0; i < vertexIndices.size(); i++) { + int posIndex = vertexIndices[i]; + int texIndex = uvIndices[i]; + int normIndex = normalIndices[i]; + + // 创建唯一标识符 + std::string vertexKey = std::to_string(posIndex) + "/" + + std::to_string(texIndex) + "/" + + std::to_string(normIndex); + + // 检查是否已经存在相同的顶点 + if (vertexMap.find(vertexKey) != vertexMap.end()) { + // 使用现有顶点的索引 + indices.push_back(vertexMap[vertexKey]); + } + else { + // 创建新顶点 + TextureLoadingVertexStructure vertex; + + // 设置位置 + if (posIndex >= 0 && posIndex * 3 + 2 < temp_positions.size()) { + vertex.pos[0] = temp_positions[posIndex * 3]; + vertex.pos[1] = temp_positions[posIndex * 3 + 1]; + vertex.pos[2] = temp_positions[posIndex * 3 + 2]; + } + else { + vertex.pos[0] = vertex.pos[1] = vertex.pos[2] = 0.0f; + } + + // 设置纹理坐标 + if (texIndex >= 0 && texIndex * 2 + 1 < temp_texcoords.size()) { + vertex.uv[0] = temp_texcoords[texIndex * 2]; + vertex.uv[1] = temp_texcoords[texIndex * 2 + 1]; + } + else { + vertex.uv[0] = vertex.uv[1] = 0.0f; + } + + // 设置法线 + if (normIndex >= 0 && normIndex * 3 + 2 < temp_normals.size()) { + vertex.normal[0] = temp_normals[normIndex * 3]; + vertex.normal[1] = temp_normals[normIndex * 3 + 1]; + vertex.normal[2] = temp_normals[normIndex * 3 + 2]; + } + else { + vertex.normal[0] = vertex.normal[1] = 0.0f; + vertex.normal[2] = 1.0f; // 默认法线 + } + + // 添加新顶点并记录索引 + uint32_t newIndex = static_cast(vertices.size()); + vertices.push_back(vertex); + indices.push_back(newIndex); + obj_vertices_map[newIndex] = posIndex; + vertexMap[vertexKey] = newIndex; + } + } + + return true; +} + +void FaceApp::render(VkCommandBuffer commandBuffer) +{ + Application::render(commandBuffer); + +} + void FaceApp::initVulkan() { Application::initVulkan(); - + VmaAllocatorCreateInfo allocatorInfo = {}; + allocatorInfo.physicalDevice = physicalDevice; + allocatorInfo.device = device; + allocatorInfo.instance = instance; + vmaCreateAllocator(&allocatorInfo, &allocator); + createVertexBuffer(); + LoadOBJ("face_picture_3dmax.obj", obj_vertices, obj_indices); + uploadVertexData(); } -void FaceApp::generate_quad() +void FaceApp::createVertexBuffer() { - //std::vector& vertices = obj_vertices; - //std::vector indices = obj_indices; + VkDeviceSize vertexBufferSize = sizeof(TextureLoadingVertexStructure) * obj_vertices.capacity(); + VkDeviceSize indexBufferSize = sizeof(uint32_t) * obj_indices.capacity(); - //index_count = static_cast(indices.size()); + // 创建顶点缓冲区(设备本地,用于渲染) + VkBufferCreateInfo bufferInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; + bufferInfo.size = vertexBufferSize; + bufferInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + bufferInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - //auto vertex_buffer_size = vkb::to_u32(vertices.size() * sizeof(TextureLoadingVertexStructure)); - //auto index_buffer_size = vkb::to_u32(indices.size() * sizeof(uint32_t)); + VmaAllocationCreateInfo allocInfo = {}; + allocInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; - //vkb::core::DeviceC& cDevice = reinterpret_cast(*v_device); + vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &m_vertexBuffer, &m_vertexBufferAllocation, nullptr); - //auto vertex_buffer = std::make_unique(cDevice, vertex_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU); - //vertex_buffer->update(vertices.data(), vertex_buffer_size); + // 创建暂存缓冲区(CPU可见,用于上传数据) + bufferInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + allocInfo.usage = VMA_MEMORY_USAGE_CPU_TO_GPU; - //index_buffer = std::make_unique(cDevice,index_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU); + vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &m_stagingBuffer, &m_stagingBufferAllocation, nullptr); - //index_buffer->update(indices.data(), index_buffer_size); + // 创建索引缓冲区 + bufferInfo.size = indexBufferSize; + bufferInfo.usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + allocInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; + + vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &m_indexBuffer, &m_indexBufferAllocation, nullptr); +} + +void ReceiveFacePoint(float* pos, int pointCount, int width, int height) +{ + FaceApp* self = FaceApp::Get(); + if (self != nullptr) + { + FaceApp::Get()->update_face_vertex_buffer(pos, pointCount); + } +} + +void FaceApp::update_face_vertex_buffer(float* pos, int pointCount) +{ + std::lock_guard lock(mtx_point); + last_update_time = getCurrentTimeMillis(); + + + for (int i = 0; i < obj_vertices.size(); ++i) + { + + int face_index = obj_vertices_map[HardCodeData::Get().indexMap[i]]; + float x = pos[face_index * 3 + 0]; + float y = pos[face_index * 3 + 1]; + float z = pos[face_index * 3 + 2]; + + obj_vertices[i].pos[0] = x; + obj_vertices[i].pos[1] = y; + obj_vertices[i].pos[2] = z; + } + + uploadVertexData(); +} + +void FaceApp::uploadVertexData() { + // 上传顶点数据 + void* data; + vmaMapMemory(allocator, m_stagingBufferAllocation, &data); + memcpy(data, obj_vertices.data(), sizeof(TextureLoadingVertexStructure) * obj_vertices.size()); + vmaUnmapMemory(allocator, m_stagingBufferAllocation); + + // 复制到设备内存 + copyBuffer(m_stagingBuffer, m_vertexBuffer, sizeof(TextureLoadingVertexStructure) * obj_vertices.size()); + + // 上传索引数据(如果需要暂存缓冲区,可以创建另一个) + vmaMapMemory(allocator, m_stagingBufferAllocation, &data); + memcpy(data, obj_indices.data(), sizeof(uint32_t) * obj_indices.size()); + vmaUnmapMemory(allocator, m_stagingBufferAllocation); + + copyBuffer(m_stagingBuffer, m_indexBuffer, sizeof(uint32_t) * obj_indices.size()); +} + +void FaceApp::copyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size) +{ + VkCommandBuffer commandBuffer = beginSingleTimeCommands(); + + VkBufferCopy copyRegion = {}; + copyRegion.size = size; + vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, 1, ©Region); + + endSingleTimeCommands(commandBuffer); +} + +VkCommandBuffer FaceApp::beginSingleTimeCommands() { + VkCommandBufferAllocateInfo allocInfo = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO }; + allocInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; + allocInfo.commandPool = commandPool; + allocInfo.commandBufferCount = 1; + + VkCommandBuffer commandBuffer; + vkAllocateCommandBuffers(device, &allocInfo, &commandBuffer); + + VkCommandBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO }; + beginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; + + vkBeginCommandBuffer(commandBuffer, &beginInfo); + return commandBuffer; +} + +void FaceApp::endSingleTimeCommands(VkCommandBuffer commandBuffer) { + vkEndCommandBuffer(commandBuffer); + + VkSubmitInfo submitInfo = { VK_STRUCTURE_TYPE_SUBMIT_INFO }; + submitInfo.commandBufferCount = 1; + submitInfo.pCommandBuffers = &commandBuffer; + + vkQueueSubmit(graphicsQueue, 1, &submitInfo, VK_NULL_HANDLE); + vkQueueWaitIdle(graphicsQueue); + + vkFreeCommandBuffers(device, commandPool, 1, &commandBuffer); } diff --git a/vulkan/FaceApp.h b/vulkan/FaceApp.h index 1b32319..038beb2 100644 --- a/vulkan/FaceApp.h +++ b/vulkan/FaceApp.h @@ -2,7 +2,8 @@ #define __FaceApp_H__ #include "Application.h" - +#include "vma/include/vk_mem_alloc.h" +#include struct TextureLoadingVertexStructure @@ -24,16 +25,48 @@ public: void initVulkan() override; + + void render(VkCommandBuffer commandBuffer) override; + static FaceApp* Get() { return faceIns; } + void update_face_vertex_buffer(float* pos, int pointCount); private: - void generate_quad(); + static FaceApp* faceIns; + VmaAllocator allocator = nullptr; + bool LoadOBJ(const std::string& filename, + std::vector& vertices, + std::vector& indices); + + void createVertexBuffer(); + void uploadVertexData(); + void copyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size); + VkCommandBuffer beginSingleTimeCommands(); + void endSingleTimeCommands(VkCommandBuffer commandBuffer); + + // 顶点缓冲区相关 + VkBuffer m_vertexBuffer = VK_NULL_HANDLE; + VmaAllocation m_vertexBufferAllocation = VK_NULL_HANDLE; + VkBuffer m_stagingBuffer = VK_NULL_HANDLE; + VmaAllocation m_stagingBufferAllocation = VK_NULL_HANDLE; + + // 索引缓冲区相关 + VkBuffer m_indexBuffer = VK_NULL_HANDLE; + VmaAllocation m_indexBufferAllocation = VK_NULL_HANDLE; + + // 渲染管线和描述符 + VkPipeline m_graphicsPipeline = VK_NULL_HANDLE; + VkPipelineLayout m_pipelineLayout = VK_NULL_HANDLE; + VkDescriptorSetLayout m_descriptorSetLayout = VK_NULL_HANDLE; - std::unique_ptr vertex_buffer; - std::unique_ptr index_buffer; - uint32_t index_count; std::vector obj_vertices; std::vector obj_indices; + std::map obj_vertices_map; + std::map vertices_map_3dmax; + + std::mutex mtx_point; + long long last_update_time; + }; #endif diff --git a/vulkan/hardcode_data.h b/vulkan/hardcode_data.h new file mode 100644 index 0000000..6f7f444 --- /dev/null +++ b/vulkan/hardcode_data.h @@ -0,0 +1,89 @@ +#ifndef __Hard_Code_Data__ +#define __Hard_Code_Data__ +#include + +class HardCodeData +{ +public: + static HardCodeData& Get() { + static HardCodeData instance; + return instance; + } + + + + // 顶点索引映射表 + // 用于将face_picture_3dmax.obj的顶点索引映射到face_picture.obj的顶点索引 + // 生成说明: modified_vertex_index -> original_vertex_index + // 注意: 这个映射是严格的一对一匹配,匹配容差为1e-4 + const int indexMap[468] = { + 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, + 39, 128, 121, 47, 104, 69, 67, 175, 171, 148, + 118, 50, 101, 73, 40, 9, 151, 108, 48, 115, + 131, 194, 204, 211, 74, 185, 80, 42, 183, 92, + 186, 230, 229, 202, 212, 214, 83, 18, 17, 76, + 61, 146, 160, 29, 30, 56, 157, 173, 106, 135, + 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, + 144, 24, 23, 77, 91, 205, 187, 201, 200, 182, + 90, 181, 85, 84, 206, 36, 140, 193, 189, 244, + 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, + 168, 8, 117, 228, 31, 55, 97, 99, 126, 100, + 166, 79, 218, 155, 154, 26, 209, 49, 136, 150, + 217, 223, 52, 53, 134, 170, 43, 119, 226, 130, + 63, 238, 20, 242, 46, 70, 156, 78, 62, 96, + 143, 227, 123, 111, 44, 125, 19, 216, 153, 22, + 167, 208, 142, 57, 60, 35, 113, 27, 210, 225, + 137, 116, 41, 38, 129, 64, 240, 102, 207, 184, + 169, 149, 176, 105, 66, 122, 6, 147, 65, 107, + 89, 180, 93, 15, 86, 14, 87, 145, 88, 179, + 95, 138, 172, 215, 58, 219, 81, 195, 199, 82, + 163, 110, 234, 109, 235, 191, 222, 141, 221, 197, + 25, 7, 33, 220, 237, 245, 162, 188, 174, 2, + 241, 164, 12, 13, 198, 133, 112, 243, 239, 190, + 32, 178, 132, 177, 1, 213, 59, 94, 75, 224, + 233, 114, 124, 356, 389, 368, 302, 267, 452, 350, + 349, 303, 269, 357, 343, 277, 453, 333, 332, 297, + 152, 377, 347, 348, 330, 304, 270, 336, 337, 278, + 279, 360, 418, 262, 431, 408, 409, 310, 415, 407, + 410, 450, 422, 430, 434, 313, 314, 306, 307, 375, + 387, 388, 260, 286, 414, 398, 335, 406, 364, 367, + 416, 423, 358, 327, 251, 284, 298, 281, 5, 373, + 374, 253, 320, 321, 425, 427, 411, 421, 405, 404, + 315, 16, 426, 266, 400, 369, 322, 391, 417, 465, + 464, 386, 257, 258, 466, 456, 399, 419, 285, 346, + 340, 261, 413, 441, 460, 328, 355, 371, 329, 392, + 439, 438, 382, 341, 256, 429, 420, 394, 379, 437, + 443, 444, 283, 275, 440, 363, 338, 273, 451, 446, + 342, 467, 293, 334, 282, 458, 461, 462, 276, 353, + 383, 308, 324, 325, 300, 372, 345, 447, 352, 274, + 248, 436, 381, 252, 393, 428, 287, 250, 384, 265, + 259, 424, 292, 366, 271, 294, 455, 272, 432, 395, + 299, 351, 280, 319, 295, 296, 403, 323, 454, 316, + 380, 318, 402, 365, 435, 397, 344, 311, 291, 396, + 268, 445, 254, 339, 449, 264, 10, 442, 370, 263, + 255, 359, 412, 301, 378, 326, 457, 362, 459, 463, + 354, 401, 361, 309, 376, 433, 289, 305, 448, 290, + 288, 249, 103, 385, 331, 317, 312, 390 + }; + + + + + + + + + + + + + + + + std::string face_result_point_str = "0.497176,0.654941,0.056854,0.499096,0.571142,0.101093,0.499443,0.594826,0.053191,0.486665,0.507695,0.075654,0.499822,0.551577,0.107729,0.501566,0.526343,0.100379,0.507274,0.464574,0.049972,0.384071,0.451689,-0.029412,0.510934,0.411708,0.038101,0.512489,0.385395,0.042231,0.517780,0.303259,0.021708,0.496729,0.663534,0.054564,0.496503,0.672256,0.047820,0.495962,0.678167,0.039046,0.495333,0.708580,0.029263,0.494208,0.719311,0.031647,0.493171,0.732978,0.033173,0.491888,0.745546,0.026135,0.491751,0.757028,0.002595,0.499114,0.582417,0.091598,0.482417,0.582563,0.065089,0.331655,0.382730,-0.120031,0.430957,0.469391,-0.008093,0.414008,0.470789,-0.010267,0.397406,0.470345,-0.016058,0.377172,0.459990,-0.032563,0.445480,0.465845,-0.008916,0.407104,0.414617,-0.002052,0.427153,0.417373,-0.000860,0.388613,0.417688,-0.008829,0.376612,0.425300,-0.017125,0.363639,0.473838,-0.041905,0.424317,0.760712,-0.022355,0.378095,0.447231,-0.035613,0.321751,0.462365,-0.127255,0.346235,0.459834,-0.061681,0.412989,0.556626,0.007719,0.474707,0.648701,0.052639,0.477565,0.671162,0.044046,0.453343,0.656598,0.040157,0.441169,0.666182,0.025390,0.462063,0.673138,0.035794,0.451410,0.677070,0.022132,0.415549,0.701012,-0.009850,0.482972,0.570121,0.099036,0.480842,0.550994,0.104616,0.354530,0.407162,-0.024088,0.450885,0.506449,0.013582,0.439753,0.566562,0.050407,0.438681,0.556687,0.044705,0.367658,0.552965,-0.017865,0.483477,0.527524,0.093462,0.393368,0.385091,0.011027,0.369870,0.392510,-0.004918,0.346767,0.349522,-0.082266,0.471944,0.404162,0.030519,0.443971,0.426069,-0.005504,0.406778,0.677611,-0.012820,0.343144,0.640875,-0.180424,0.453649,0.577968,0.043753,0.469357,0.585499,0.046754,0.428715,0.686186,-0.007846,0.434532,0.686292,-0.001798,0.361692,0.380369,-0.014286,0.439307,0.577039,0.040063,0.426476,0.386744,0.023408,0.423940,0.371093,0.027273,0.414777,0.307725,-0.007059,0.353887,0.365024,-0.043705,0.420427,0.340030,0.011343,0.346111,0.399299,-0.040411,0.338442,0.392337,-0.078127,0.475432,0.660558,0.050712,0.457661,0.665396,0.039118,0.445976,0.671356,0.025472,0.458571,0.583021,0.040336,0.431722,0.686313,-0.004415,0.435878,0.695282,0.004963,0.437489,0.686573,-0.001261,0.462763,0.569201,0.070216,0.456034,0.680024,0.019362,0.466256,0.677225,0.028576,0.479924,0.676736,0.036048,0.464911,0.752547,0.001659,0.466742,0.740062,0.024617,0.469333,0.727902,0.030009,0.473432,0.715088,0.028101,0.477575,0.705166,0.025992,0.454353,0.695796,0.011947,0.448384,0.699739,0.014157,0.441746,0.705512,0.015491,0.436396,0.711411,0.011211,0.424883,0.637143,0.018464,0.325325,0.544807,-0.205772,0.499228,0.588374,0.066624,0.447251,0.691595,0.003838,0.441597,0.693799,0.005282,0.474352,0.594317,0.047149,0.445976,0.590867,0.026735,0.471912,0.590299,0.047519,0.431958,0.518003,0.005830,0.404263,0.531010,-0.001291,0.435866,0.566975,0.033930,0.372888,0.323790,-0.041875,0.379619,0.346958,-0.014714,0.387929,0.370099,0.007512,0.426430,0.717957,-0.004290,0.467216,0.378078,0.038139,0.464274,0.341760,0.026842,0.461524,0.302084,0.014733,0.384502,0.466873,-0.024661,0.346507,0.487632,-0.053234,0.454992,0.460955,-0.011123,0.361290,0.433688,-0.034316,0.464132,0.493651,0.021163,0.450753,0.557678,0.069416,0.330230,0.499824,-0.074338,0.356020,0.501891,-0.036197,0.376221,0.510058,-0.018012,0.408600,0.507543,-0.008056,0.432897,0.499322,-0.002740,0.451626,0.490892,0.003327,0.489139,0.468516,0.041895,0.333081,0.540845,-0.070264,0.349464,0.431355,-0.043972,0.489674,0.581322,0.090078,0.450037,0.526338,0.021342,0.321799,0.461356,-0.190019,0.466393,0.480258,0.006815,0.435159,0.569218,0.014873,0.370473,0.448105,-0.039533,0.450797,0.545711,0.062428,0.330949,0.590338,-0.198092,0.454828,0.454231,-0.016034,0.466584,0.533999,0.081427,0.368977,0.696224,-0.085285,0.371028,0.715130,-0.118389,0.321597,0.542365,-0.137881,0.354546,0.665653,-0.106874,0.329959,0.424926,-0.108036,0.419492,0.778306,-0.034538,0.492124,0.587480,0.065140,0.433445,0.541551,0.013330,0.334037,0.463275,-0.080820,0.399471,0.457458,-0.017688,0.413581,0.458728,-0.012470,0.431282,0.698495,0.001523,0.338871,0.579736,-0.077310,0.448546,0.812289,-0.040055,0.402613,0.769888,-0.073760,0.387343,0.746064,-0.093037,0.514690,0.345274,0.033323,0.488000,0.820705,-0.033467,0.427727,0.457785,-0.010751,0.441068,0.456047,-0.012633,0.450414,0.455453,-0.015941,0.339809,0.428071,-0.063515,0.439953,0.442173,-0.009664,0.425213,0.436909,-0.006777,0.410450,0.434989,-0.008594,0.395831,0.436903,-0.013989,0.386744,0.440697,-0.020517,0.324071,0.418275,-0.159265,0.390377,0.454714,-0.023950,0.498653,0.616235,0.049360,0.438696,0.624162,0.028365,0.453541,0.573481,0.051026,0.471848,0.616528,0.046160,0.509473,0.439198,0.036626,0.383119,0.726852,-0.069040,0.400357,0.751140,-0.052905,0.448261,0.799376,-0.017654,0.357804,0.682843,-0.150576,0.450187,0.449297,-0.013365,0.474411,0.499158,0.047327,0.488080,0.808697,-0.012143,0.421590,0.793239,-0.053836,0.328169,0.584662,-0.136360,0.464164,0.700852,0.019479,0.458453,0.707157,0.021782,0.452413,0.716912,0.022893,0.447621,0.727753,0.018560,0.441569,0.737180,0.001004,0.442923,0.681201,0.009745,0.437506,0.678748,0.009459,0.433157,0.675614,0.009226,0.414865,0.655540,0.003868,0.359632,0.593782,-0.039332,0.476808,0.479702,0.030386,0.470438,0.440075,-0.001203,0.458674,0.442170,-0.009146,0.447241,0.683111,0.007838,0.359273,0.641053,-0.069698,0.486246,0.440059,0.022744,0.433378,0.746332,-0.012836,0.503507,0.505421,0.083170,0.487594,0.488947,0.060638,0.504958,0.485987,0.065768,0.458841,0.529919,0.046526,0.488781,0.790678,-0.001805,0.490518,0.771693,-0.000881,0.459529,0.764384,-0.005205,0.399752,0.700763,-0.023859,0.421744,0.585210,0.009102,0.413708,0.725289,-0.019314,0.390449,0.580406,-0.002206,0.409394,0.606362,0.004826,0.379239,0.612465,-0.018335,0.452143,0.782220,-0.007722,0.447252,0.541647,0.032212,0.386091,0.709841,-0.044705,0.404779,0.735822,-0.036374,0.390113,0.673154,-0.024213,0.345029,0.613400,-0.085212,0.373498,0.668782,-0.044750,0.338735,0.625841,-0.129784,0.399408,0.634678,-0.005042,0.462545,0.512394,0.033459,0.456919,0.565750,0.073789,0.445414,0.572512,0.052962,0.464870,0.552529,0.087854,0.456662,0.419967,0.003821,0.427102,0.406517,0.005780,0.401550,0.403677,0.003182,0.380497,0.407585,-0.005612,0.366728,0.417166,-0.018378,0.360299,0.453843,-0.047318,0.319157,0.501776,-0.133228,0.371666,0.481921,-0.032133,0.388200,0.488065,-0.020028,0.410637,0.487840,-0.011281,0.432495,0.483586,-0.007046,0.449902,0.477569,-0.005056,0.462053,0.471918,-0.003384,0.323676,0.502520,-0.204049,0.446251,0.579433,0.043590,0.472275,0.516499,0.061793,0.469923,0.566576,0.089211,0.481198,0.578090,0.082282,0.470678,0.570257,0.080035,0.451695,0.587196,0.037530,0.483688,0.579992,0.087260,0.486153,0.585274,0.064986,0.461669,0.455214,-0.012452,0.472018,0.460982,-0.000621,0.477589,0.464747,0.012801,0.381748,0.444165,-0.027075,0.369820,0.434840,-0.028560,0.520120,0.509670,0.077569,0.639928,0.465285,-0.016150,0.517380,0.584724,0.066471,0.715554,0.403696,-0.100026,0.590783,0.477515,0.000460,0.607198,0.480811,0.000009,0.624547,0.482151,-0.004264,0.647336,0.474262,-0.018475,0.576117,0.472179,-0.002154,0.619830,0.424470,0.008838,0.599101,0.425106,0.007646,0.638910,0.429879,0.003611,0.650881,0.439135,-0.003648,0.662162,0.489699,-0.026696,0.560030,0.769691,-0.016272,0.646872,0.461100,-0.021607,0.716455,0.484529,-0.106504,0.684725,0.478005,-0.044433,0.596133,0.567597,0.016302,0.520766,0.651431,0.054897,0.515542,0.673358,0.045988,0.541919,0.662133,0.044746,0.554441,0.673315,0.031651,0.531531,0.677956,0.039761,0.543236,0.682623,0.027319,0.577329,0.711360,-0.001842,0.515131,0.572015,0.100255,0.518993,0.553834,0.106169,0.677453,0.423590,-0.008011,0.563336,0.512941,0.019279,0.564279,0.574269,0.055779,0.566811,0.564718,0.050342,0.646290,0.568883,-0.003657,0.519468,0.529384,0.095423,0.635524,0.395683,0.022401,0.660811,0.406598,0.009193,0.699735,0.368182,-0.064351,0.551948,0.406547,0.034263,0.581497,0.431749,0.001411,0.589114,0.688159,-0.003169,0.677339,0.660422,-0.161864,0.548818,0.583685,0.047779,0.532009,0.589124,0.048746,0.566879,0.695510,0.000392,0.561139,0.694875,0.005586,0.671557,0.395433,0.000750,0.564795,0.584796,0.045456,0.600293,0.393871,0.031245,0.604306,0.378296,0.035326,0.625639,0.318594,0.003472,0.685322,0.382141,-0.027171,0.613096,0.349371,0.020430,0.688210,0.416882,-0.023606,0.701864,0.411915,-0.059446,0.518584,0.663321,0.052861,0.536769,0.670465,0.043372,0.549341,0.678211,0.031193,0.544084,0.587934,0.043605,0.564634,0.695251,0.003240,0.558536,0.704098,0.011482,0.558584,0.694747,0.005856,0.538829,0.573424,0.073854,0.538066,0.684949,0.024283,0.527404,0.681348,0.032242,0.512870,0.679137,0.038064,0.519139,0.755499,0.003671,0.518486,0.743786,0.026903,0.517634,0.731575,0.032250,0.516113,0.717844,0.030494,0.513420,0.708511,0.028220,0.539353,0.701737,0.016899,0.544395,0.706313,0.019210,0.550164,0.713512,0.020773,0.555166,0.720026,0.016870,0.572683,0.645528,0.025733,0.710030,0.567562,-0.184627,0.547799,0.698297,0.009966,0.552628,0.701337,0.011608,0.525599,0.597337,0.049125,0.556687,0.598083,0.031061,0.528567,0.593943,0.049423,0.582289,0.526249,0.013291,0.609304,0.542779,0.008762,0.569631,0.575154,0.039721,0.671492,0.339204,-0.027124,0.657767,0.360742,-0.001246,0.643095,0.381494,0.019428,0.563003,0.726708,0.002365,0.558594,0.380698,0.042151,0.566732,0.346787,0.031789,0.575973,0.307779,0.019911,0.638921,0.479888,-0.011529,0.680104,0.506291,-0.036422,0.567154,0.466710,-0.005030,0.667807,0.449921,-0.018832,0.550147,0.498595,0.025793,0.551850,0.563974,0.073770,0.698622,0.520703,-0.056037,0.666594,0.519332,-0.020402,0.642671,0.525317,-0.004680,0.608893,0.518557,0.002099,0.584730,0.507539,0.005064,0.565693,0.496641,0.009221,0.525270,0.470289,0.043947,0.689720,0.561844,-0.051289,0.682081,0.449040,-0.027038,0.508370,0.582191,0.091036,0.561341,0.532878,0.026843,0.722118,0.483905,-0.168103,0.551568,0.484314,0.011533,0.571334,0.577608,0.020740,0.655745,0.462946,-0.024868,0.554447,0.552057,0.066893,0.698238,0.612234,-0.178164,0.567927,0.459930,-0.009761,0.537288,0.538458,0.084675,0.632147,0.712626,-0.070805,0.631425,0.731063,-0.104205,0.708065,0.564654,-0.117313,0.653631,0.683332,-0.089901,0.709937,0.446087,-0.088208,0.563700,0.788143,-0.027752,0.506608,0.587999,0.065732,0.577317,0.550120,0.020060,0.699288,0.482938,-0.062662,0.622400,0.468586,-0.006056,0.608608,0.468353,-0.002165,0.563362,0.707131,0.008588,0.679961,0.599426,-0.058863,0.529228,0.818271,-0.036302,0.586102,0.782835,-0.064767,0.607442,0.760490,-0.081599,0.594157,0.466182,-0.002041,0.581561,0.463268,-0.005113,0.572854,0.461417,-0.009229,0.695451,0.446951,-0.045060,0.583458,0.448689,-0.001909,0.598850,0.444863,0.002287,0.614531,0.445195,0.001993,0.628708,0.448975,-0.002102,0.638063,0.454161,-0.007812,0.722382,0.440050,-0.138154,0.632341,0.467407,-0.011427,0.559611,0.631257,0.033997,0.548870,0.579269,0.054880,0.525722,0.619836,0.048493,0.611235,0.741212,-0.057593,0.588662,0.763930,-0.043926,0.529641,0.805579,-0.013950,0.653161,0.700565,-0.133655,0.573097,0.454888,-0.006403,0.536101,0.502899,0.050517,0.560977,0.803411,-0.047012,0.695693,0.606590,-0.116395,0.528442,0.705387,0.023332,0.532238,0.712963,0.025645,0.537150,0.723772,0.027100,0.540330,0.734254,0.022970,0.545016,0.743686,0.005916,0.552721,0.688764,0.016160,0.557956,0.686471,0.016583,0.562730,0.684328,0.016763,0.582108,0.665690,0.012731,0.652568,0.610692,-0.024044,0.537377,0.482965,0.033562,0.552371,0.443228,0.002903,0.565118,0.446780,-0.003220,0.547636,0.689476,0.014027,0.648242,0.658063,-0.053998,0.533559,0.441745,0.025209,0.552603,0.753907,-0.007422,0.522843,0.491058,0.062317,0.549125,0.535002,0.050448,0.522652,0.768990,-0.002450,0.594508,0.712875,-0.014648,0.583565,0.594997,0.016242,0.576379,0.735216,-0.011804,0.617739,0.593849,0.008780,0.594202,0.617152,0.013655,0.626712,0.626660,-0.005683,0.527749,0.787587,-0.004351,0.561398,0.548432,0.037376,0.607854,0.723607,-0.033930,0.584988,0.747213,-0.027949,0.607137,0.685510,-0.013096,0.669223,0.632014,-0.067645,0.627381,0.684162,-0.031626,0.678666,0.645903,-0.110840,0.601086,0.646556,0.005274,0.548538,0.517258,0.037911,0.544143,0.570758,0.077744,0.557145,0.579607,0.057561,0.536327,0.556903,0.091150,0.568297,0.424490,0.009520,0.599297,0.413819,0.014083,0.625785,0.414205,0.013963,0.647781,0.420823,0.007414,0.661941,0.432020,-0.003774,0.667822,0.470236,-0.031640,0.714666,0.524582,-0.112061,0.651834,0.497336,-0.017913,0.632866,0.501171,-0.007662,0.609142,0.498461,-0.001143,0.587206,0.491510,0.000973,0.570245,0.483593,0.000986,0.557426,0.476755,0.001619,0.717041,0.525139,-0.182401,0.556791,0.586069,0.048235,0.535028,0.519947,0.064947,0.529718,0.570055,0.091877,0.518192,0.580142,0.083682,0.529499,0.573941,0.082695,0.551106,0.593469,0.041341,0.514593,0.581485,0.088573,0.513056,0.587428,0.066045,0.560480,0.459829,-0.007225,0.548299,0.464467,0.003353,0.541220,0.467790,0.016204,0.643205,0.458092,-0.013781,0.658050,0.449765,-0.014260,0.412286,0.445339,-0.001516,0.430124,0.445958,-0.001554,0.412898,0.429588,-0.001565,0.394553,0.444505,-0.001557,0.411734,0.461423,-0.001548,0.609282,0.455161,0.000551,0.627642,0.456293,0.000596,0.610426,0.439139,0.000597,0.590772,0.453523,0.000621,0.607511,0.470991,0.000620"; + +}; + + + +#endif \ No newline at end of file